Repository navigation
feat(chat): show project breadcrumb and inline title editing - #1831
Merged
Merged
Conversation
added 4 commits
October 23, 2026 09:50
The conversation top bar only named the task, so the project a task belongs to was hidden in a tooltip. Put the session's project beside the title as a quiet crumb and let the title be renamed in place, matching the rest of the app's direct-manipulation surfaces. The crumb resolves from the active session rather than the globally selected workspace, so a task opened from another project stays labeled correctly. Remote and scheduled transcripts keep a plain title because their titles are host-owned, and the inline editor keeps the existing title limit, IME behavior, and error path. Update the component spec and its source-contract test to match.
The English component spec now describes the project breadcrumb, the inline title editor, and the expanded state table. Mirror those changes in the Chinese page so the locale pair keeps the same table and fence structure and the docs checks stay green.
An empty chat has no session yet, so the crumb previously disappeared even though the app still has an active project. Fall back to the workspace name only in that state; temporary sessions keep the plain title because they belong to no project. Extend the topbar rendering test and both spec pages.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
The conversation top bar now names the active session's project beside its title and lets a local task title be renamed in place.
/+ task title, using the quiet 11px / 12.5px type scale from the supplied design. The right action lane is untouched, and the demo's row hairline is intentionally not added.Why
The project a task belongs to was previously hidden in the title tooltip, and renaming required the sidebar dialog. Showing the crumb and editing the title in place matches the project/task hierarchy the rest of the app already exposes, without duplicating the whole top bar or changing its drag geometry.
Files
apps/desktop/src/components/ConversationTopbar.tsxapps/desktop/src/styles/chrome.cssapps/desktop/test/topbar-title-inline-rename.test.mjs(new)apps/desktop/test/{topbar-title-rendering,thinking-ui,plan-mode-source-contract}.test.mjsdocs/spec/04-ux/08-component-spec.md+docs/zh-CN/spec/04-ux/08-component-spec.mdValidation
auto-update,background-tasks,chat-error-message,live-work-concrete-adapters,pending-interactive-restore,session-turn-ended,shutdown-regenerate-persistence).tsc -p apps/desktop/tsconfig.json --noEmit→ exit 0.node scripts/check-style-tokens.mjs→style tokens OK.node docs/scripts/check-locales.mjs→ 86 pairs verified;node docs/scripts/check-docs.mjs→ 585 pages verified.git merge-base --is-ancestor origin/main HEAD→ 0.CI status
All required checks pass on head
b67f2e249, which mergesorigin/main86944c05d:Electron/
verify:ui:*E2E was not run locally; this is a renderer-only surface and the user did not request UI E2E.Known limitations
The repo has no DOM test harness, so the inline editor's focus, Enter/Escape/blur, and IME paths are covered by SSR markup and source-contract tests rather than driven events. No live visual pass was run.