Skip to content

feat(ui): display user full name in profile dropdown#122

Merged
4 commits merged intomasterfrom
feature/display-user-name-dropdown
Mar 12, 2026
Merged

feat(ui): display user full name in profile dropdown#122
4 commits merged intomasterfrom
feature/display-user-name-dropdown

Conversation

@pneumatic-seidler
Copy link
Collaborator

@pneumatic-seidler pneumatic-seidler commented Feb 13, 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.

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.yml volume mounts for the frontend to support local hot reloading, and hardens backend WorkflowActionService.continue_task to handle workflows with a missing template when 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.

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.
@macroscopeapp
Copy link

macroscopeapp bot commented Feb 13, 2026

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 processes.services.workflow_action.WorkflowActionService

Add firstName and lastName to TopNav props and state mapping to render a non-clickable full name item; introduce .user-name-item styling; add a null-safe check for workflow.template in backend/src/processes/services/workflow_action.py; include a dev frontend service in docker-compose.dev.yml.

📍Where to Start

Start with the TopNav rendering logic in frontend/src/public/components/TopNav/TopNav.tsx and the state mapping in frontend/src/public/components/TopNav/container.ts; then review the onboarding guard in backend/src/processes/services/workflow_action.py.


Macroscope summarized a3f61a5.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

if not task_start_event_already_exist:
WorkflowEventService.task_started_event(task)

if not self.workflow.template.is_onboarding:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delete changes

@@ -0,0 +1,5 @@
services:
Copy link
Collaborator

@pneumojoseph pneumojoseph Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@pneumojoseph
Copy link
Collaborator

pneumojoseph commented Feb 13, 2026

@pneumatic-seidler  link to a "pneumatic process" or Github issue is required. The task is now disconnected from the work process.

@pneumojoseph
Copy link
Collaborator

@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);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In css files, specify the unit of measurement in rem.

It should be like this border-bottom: .1rem solid var(--pneumatic-color-black10);

@Maria-Lordwill Maria-Lordwill closed this pull request by merging all changes into master in b5c2419 Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Frontend Web client changes request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants