feat(ui): display user full name in profile dropdown#122
Conversation
Fixes PNEUMATIC-BACKEND-DEV-148 The workflow.template FK can be None when a Template is deleted (on_delete=SET_NULL). The continue_task method accessed self.workflow.template.is_onboarding without a null check, causing AttributeError on orphaned workflows during the continue_delayed_workflows Celery periodic task. This has generated 20,533+ errors since Jan 28, 2026.
Problem: The user's full name was not displayed in the top-right profile dropdown, making it less personalized and harder to verify which account is logged in at a glance. Solution: Updated the TopNav component to receive firstName and lastName from the Redux store and display them as the first item in the dropdown menu. What was done: - Modified frontend/src/public/components/TopNav/container.ts to map firstName and lastName from state.authUser to the component props. - Modified frontend/src/public/components/TopNav/TopNav.tsx to add firstName and lastName to the props interface and render a new list item in profileDropdownOptions. - Verified .user-name-item class exists in frontend/src/public/components/TopNav/TopNav.css for styling. - Updated docker-compose.yml to include volume mounts for the frontend to enable local development and hot reloading. How to test it: 1. Log in to the application. 2. Click the user avatar in the top right. 3. Verify the full name appears at the top of the dropdown.
Display the user’s full name as a non-interactive first item in the TopNav profile dropdown and add a null-safe onboarding check in
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| WorkflowEventService.task_started_event(task) | ||
|
|
||
| if not self.workflow.template.is_onboarding: | ||
| if not self.workflow.template or not self.workflow.template.is_onboarding: |
There was a problem hiding this comment.
Unrelated backend change silently alters notification behavior
Medium Severity
This backend change to workflow_action.py is completely unrelated to the PR's stated purpose of displaying user names in the profile dropdown, and is not mentioned anywhere in the PR description. The condition change from if not self.workflow.template.is_onboarding to if not self.workflow.template or not self.workflow.template.is_onboarding alters notification behavior: when template is None (possible since it's a SET_NULL FK), the old code would raise an AttributeError, while the new code silently proceeds to send task notifications. This behavioral change to the notification system deserves its own PR with dedicated review and testing.
| if not task_start_event_already_exist: | ||
| WorkflowEventService.task_started_event(task) | ||
|
|
||
| if not self.workflow.template.is_onboarding: |
| @@ -0,0 +1,5 @@ | |||
| services: | |||
There was a problem hiding this comment.
Changes not related to the task, remove.
Frontend developer works in the frontend directory and uses frontend/docker-compose.yml and follow frontend/README.md
|
@pneumatic-seidler link to a "pneumatic process" or Github issue is required. The task is now disconnected from the work process. |
|
@pneumatic-seidler It is necessary to assign reviewers and labels |
| color: var(--pneumatic-color-blacktext); | ||
| font-weight: 600; | ||
| cursor: default; | ||
| border-bottom: 1px solid var(--pneumatic-color-black10); |
There was a problem hiding this comment.
In css files, specify the unit of measurement in rem.
It should be like this border-bottom: .1rem solid var(--pneumatic-color-black10);


Problem:
The user's full name was not displayed in the top-right profile dropdown, making it less personalized and harder to verify which account is logged in at a glance.
Solution:
Updated the TopNav component to receive firstName and lastName from the Redux store and display them as the first item in the dropdown menu.
What was done:
How to test it:
Note
Medium Risk
Low-impact UI changes, but includes a backend guard in workflow task continuation that could alter notification behavior when workflows have no template; plus a new dev compose file that may affect local setups.
Overview
Adds the current user’s full name to the profile dropdown in
TopNav, sourced from Redux (authUser.firstName/lastName), and styles it as a non-clickable header item.Also adds
docker-compose.dev.ymlvolume mounts for thefrontendto support local hot reloading, and hardens backendWorkflowActionService.continue_taskto handle workflows with a missingtemplatewhen deciding whether to send new-task notifications (treating missing templates as non-onboarding).Written by Cursor Bugbot for commit a3f61a5. This will update automatically on new commits. Configure here.