feat(web): nav split — add chat + specs entries, drop merged workspace label #1117
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Blocks
#1118 feat(web): /specs route — list + markdown editor (no AI drawer)
charles/claude-hooks
Reference
charles/claude-hooks#1117
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
As an operator,
I want the WORK section of the sidebar to list Chat and Specs as distinct entries,
so that I can jump straight to the surface I need without route mode-flipping.
Foundation story for the workspace split. Adds paraglide strings + nav entries only — does not yet change route bodies.
Acceptance criteria
Paraglide
nav_sections_item_chat(EN: "Chat", FR: "Chat") andnav_sections_item_specs(EN: "Specs", FR: "Specs") toapps/web/messages/{en,fr}.json.apps/web/src/paraglide/messages/committed.nav_sections_item_workspacekey kept (removed in cleanup story).Nav
components/nav-sections.tsxgetNavSections()WORK section emits two entries:{ path: "/workspace", label: m.nav_sections_item_chat(), icon: MessageSquare, testId: "nav-chat" }and{ path: "/specs", label: m.nav_sections_item_specs(), icon: FileText, testId: "nav-specs" }, in that order, beforeflows.aria-current="page"on the matching link.aria-label+titlematching the visible label.Tests
nav-sections.test.tsxupdated: both entries render in WORK section, in order; both carry the correctdata-testid.Out of scope
routes/workspace.index.tsx(story wsplit-5).routes/specs*.tsx(story wsplit-2).nav_sections_item_workspace(story wsplit-6).References
docs/specs/workspace-split.md.apps/web/CLAUDE.md→ Navigation primitives.🧹 janitor: this ticket has been idle-assigned since 2026-05-11T23:41:16.000Z. Re-dispatching.
🧹 janitor: this ticket has been idle-assigned since 2026-05-12T05:50:56.000Z. Re-dispatching.
🦵 @charles kicked the queue — re-running implement on @dev.
🧹 janitor: this ticket has been idle-assigned since 2026-05-12T09:37:02.000Z. Re-dispatching.
🦵 @charles kicked the queue — re-running implement on @dev.
🧹 janitor: this ticket has been idle-assigned since 2026-05-12T14:12:36.000Z. Re-dispatching.
🧹 janitor: this ticket has been idle-assigned since 2026-05-12T16:16:44.000Z. Re-dispatching.
🧹 janitor: this ticket has been idle-assigned since 2026-05-12T16:59:57.000Z. Re-dispatching.