feat(ui): show the session title in the header bar#340
Conversation
Render the current session title in the instance header for both compact and regular layouts, while keeping the existing status indicators and command controls in place.
Display the active session title next to the new-tab control, and only when the left session drawer is closed so the title adds context without competing with the sidebar.
|
I want you to perform the gatekeeper checks for latest PR state check for regressions |
|
Gatekeeper review for the latest PR state. Assumption: you wanted a strict review pass on the current branch state, focused on regressions and implementation quality, not additional code changes. Findings No blocking regressions stood out in the current diff. Non-blocking concerns / things to confirm
Validation I attempted the PR’s stated build check: That could not run in this bot environment because the workspace dependencies are not installed here. The failure was environment-level, not a code-level type/build error from this diff: Bottom line From a code review standpoint, I do not see a blocker in the implementation as submitted. The only thing I would explicitly confirm before merge is the sidecar-tab behavior described above. -- |
|
@pascalandr - Thanks for working on this. I think the best would be to show the session title in the session view header instead of the tab bar. It gives a better mental model. I do need to relayout the header anyway so I can implement as part of that work if that's ok. |
|
@shantur |
|
I have have way too much PRs opened so closing this. |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/24606059189 Artifacts expire in 7 days. |
|
as the issue #299 is tagged as ready-to-work, opening this again, i Have an idea to make it work in the header |
Show the active session title in the session header when the left sidebar is not pinned so the tab strip stays focused on workspace tabs. The header slot reserves the sidebar width and reuses existing session title styling to avoid layout jumps while preserving the compact/mobile toolbar controls. Validated with git diff --cached --check, npm run typecheck --workspace @codenomad/ui, and npm run build --workspace @codenomad/ui.
Subtract the Material toolbar inset from the reserved header title slot so the active session title ends at the same edge as the floating session sidebar. This prevents the title background from peeking out beside the open drawer while keeping the closed-drawer menu button and title aligned with the sidebar width. Validated with npm run typecheck --workspace @codenomad/ui and npm run build --workspace @codenomad/ui.
@shantur what do you think ? |
|
I want you to perform the gatekeeper checks for latest PR state check for regressions |
|
Gatekeeper review for the latest PR state. Assumption: this was a strict review request only, not a request for me to change the PR branch. I reviewed the new implementation that moved the session title into the session header. Findings
There is an embedded sidebar toggle in Recommended fix: decouple the drawer button from the title visibility. The slot can always render when the floating drawer is closed, while only the title itself is gated by
Implementation quality notes
Validation I attempted: It could not run in this bot environment because dependencies are not installed here: Bottom line I would not merge this latest state as-is because of the lost left-drawer reopen control. Fixing the button/title coupling should be small and keeps the scope tight. -- |
Keep the floating-sidebar reopen control available even when the active session title is absent, so info and empty states do not strand the user after closing the drawer. Render the header session title as a quiet two-line text treatment with subtle vertical separators instead of reusing the active session item highlight. This preserves the drawer-width alignment while reducing visual weight in the toolbar. Validated with git diff --check, npm run typecheck --workspace @codenomad/ui, npm run build --workspace @codenomad/ui, and a rebuilt raw Tauri executable for visual review.
Keep the header left slot mounted while the unpinned session drawer is open so toolbar controls remain offset from the floating panel instead of sliding underneath it. The slot now acts as an empty spacer in the floating-open state, while the reopen button and quiet two-line session title remain limited to the floating-closed state. Validated with git diff --check and npm run typecheck --workspace @codenomad/ui.
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/25605390334 Artifacts expire in 7 days. |
1 similar comment
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/25605390334 Artifacts expire in 7 days. |
Keep the quiet header session title mounted in the left slot for all unpinned drawer states, so opening the floating sidebar covers the title instead of pushing it to the right. The reopen control is still limited to the closed state, while the slot width remains reserved when the floating drawer is open to keep toolbar controls out from under the overlay. Validated with git diff --check and npm run typecheck --workspace @codenomad/ui.
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/25605511004 Artifacts expire in 7 days. |
|
I want you to perform the gatekeeper checks for latest PR state check for regressions |
|
Gatekeeper review for the latest PR state. Assumption: this is another strict review pass only. I reviewed the current branch after the follow-up commits and compared it with the updated PR description: show the active session title in the header after the menu switch, and only when the left session drawer is closed. Findings
The prior drawer-button regression is fixed: However, const showHeaderSessionTitle = createMemo(() => showHeaderLeftSlot() && Boolean(activeSessionTitle()))That means the title renders whenever the left drawer is unpinned and there is an active session title. It does not require This is not just a wording nit. The implementation is relying on layout/overlay behavior to make the title effectively hidden or “under” the floating sidebar, but the component still renders the title while the drawer is open. That can create visual duplication depending on stacking/layout details and it keeps duplicate title text in the DOM/accessibility tree while the sidebar already shows it. Recommended fix: encode the product rule directly: const showHeaderSessionTitle = createMemo(
() => leftDrawerState() === "floating-closed" && Boolean(activeSessionTitle()),
)Keep the drawer button/slot visibility separate from the title visibility, as the current patch already started doing.
leftDrawerState() === "floating-open" || showHeaderSessionTitle()If the intended behavior is to keep toolbar controls out from under the floating drawer, this may be deliberate. If the title is changed to only render when closed, double-check that the open-drawer state does not leave an awkward blank left header slot on widths where the drawer does not actually cover the toolbar. This is mostly a visual validation point, not necessarily a code blocker by itself. Implementation quality notes
Validation I attempted: It still cannot run in this bot environment because dependencies are missing: Bottom line The previous hard regression with the missing reopen button looks addressed. I would still hold merge until -- |
|
Thanks for the re-check. This finding was based on stale PR wording, not the final product behavior we validated. The title is intentionally rendered whenever the left drawer is not pinned. When the drawer is open as a floating overlay, the title stays in the same left header slot and is covered by the overlay instead of being moved or unmounted. That keeps the toolbar layout stable: the command/status controls do not slide under the floating drawer, and they also do not jump horizontally when the drawer opens or closes. I updated the PR description to make that behavior explicit:
So I am not applying the suggested |
|
@CodeNomadBot |
|
Gatekeeper review for the latest PR state, taking the updated product behavior into account. Assumption: this remains a strict review-only request. I treated the latest PR description and your follow-up comment as the source of truth: the title intentionally remains mounted/visible whenever the left drawer is unpinned, and the floating drawer covers that left header slot instead of causing toolbar controls to shift. Findings No blocking regressions found in the current diff under the clarified behavior. Review notes
Residual risks / things I would visually verify before merge
File-size notes
Validation
Bottom line With the clarified behavior, I do not see a merge-blocking issue in the current implementation. The main remaining confidence gap is visual validation across compact/RTL/floating-drawer states, which the PR author says was validated in the rebuilt desktop app. -- |
|
Probably should come with the header improvements as separate work. I am not suggesting to be done here |


Fixes #299
Summary
Validation
git diff --checknpm run typecheck --workspace @codenomad/uinpm run build --workspace @codenomad/ui