feat: migrate workspace to shadcn sidebar and chat components
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# shadcn workspace migration
|
||||
|
||||
## Target
|
||||
|
||||
Replace the custom workspace UI with the Base UI version of shadcn sidebar-09
|
||||
at commit 98a1fe67b439324ddc857f47fbdce056600a4329. Preserve its icon rail,
|
||||
contextual second sidebar and SidebarInset. Adapt the rail to research chat and
|
||||
deck management, keeping the research panel mounted so SSE state remains live.
|
||||
On small screens, use the sidebar Sheet and keep all actions reachable.
|
||||
|
||||
Use official MessageScroller, Message, Bubble and Marker for the existing Codex
|
||||
conversation. Keep transport, history, retry, stop, account selection, Markdown
|
||||
and citation navigation. Use shadcn primitives for forms, dialogs, menus and
|
||||
post metadata throughout the app. Use Tailwind v4 and shared shadcn semantic
|
||||
tokens; remove legacy control styles that override primitives.
|
||||
|
||||
Install @shadcn/lint with an executable design-token policy alongside Biome.
|
||||
Update README and Nix dependency hash as needed.
|
||||
|
||||
## Verification
|
||||
|
||||
- Typecheck, Biome, design lint, unit suite, production build, unused-code check.
|
||||
- Browser integration suite: decks, source editing, connections, conversation,
|
||||
citation navigation, menus and keyboard focus.
|
||||
- Render desktop plus 320/375/414/768 px: rail collapse, mobile Sheet, independent
|
||||
column scrolling, chat composer visibility, no document horizontal overflow.
|
||||
- Inspect screenshots and run Axe on relevant states.
|
||||
|
||||
## Status
|
||||
|
||||
Completed on 2026-09-28.
|
||||
|
||||
- SidebarProvider, nested icon/context Sidebars and SidebarInset now implement
|
||||
the referenced sidebar-09 structure; the mobile Sheet keeps its content mounted.
|
||||
- Research state and deck-dialog drafts live above the responsive shell. Closing
|
||||
or resizing the sidebar preserves drafts, selected accounts and retry identity.
|
||||
- MessageScroller, Message, Bubble/BubbleContent, Marker/MarkerContent, InputGroup
|
||||
and Collapsible replace the chat UI. Markdown list markers and headings remain
|
||||
visible after Tailwind's reset; citation highlighting uses theme tokens.
|
||||
- Forms, dialogs, dropdown menus, avatars, badges and empty states use Base UI
|
||||
shadcn components. No backend transport, storage or access contracts changed.
|
||||
- @shadcn/lint runs in pnpm lint and rejects raw palette colors. Nix dependency
|
||||
hash and README/deck docs are updated.
|
||||
|
||||
Verification: 336 unit tests passed (one explicit live-relay test skipped), all
|
||||
56 desktop/mobile E2E tests passed. After the final isolated chat styling fixes,
|
||||
all 10 research E2E tests and 22 related unit tests passed again. Typecheck,
|
||||
Biome/design lint, Knip, production build and the Nix package build passed.
|
||||
Browser checks covered 320/375/414/768px, rendered chat and post screenshots,
|
||||
Axe, dialog focus restoration, breakpoint draft preservation and closed-sidebar
|
||||
SSE deck updates. Automated browser tests use mock relay/research data.
|
||||
A subsequent dev-server smoke check through the Tailscale HTTPS URL confirmed
|
||||
the real relay displayed 14 posts across six columns without UI alerts.
|
||||
No production deployment was performed.
|
||||
Reference in New Issue
Block a user