Skip to content

feat(web): establish redesign primitives and shell - #28839

Open
maria-rcks wants to merge 38 commits into
mainfrom
maria/redesign/1-primitives-shell
Open

maria-rcks wants to merge 38 commits into
mainfrom
maria/redesign/1-primitives-shell

Conversation

@maria-rcks

@maria-rcks maria-rcks commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Part 1 of 6 of the T3 Code redesign. The web client's controls, overlays and shell use a mix of one-off sizes and styles that don't follow the new design canvas.

This layer adds the redesign's shared foundation, which the other five build on:

  • components/ui primitives (buttons, menus, pickers, fields, dialogs, popovers, tooltips) restyled to the canvas, with relaxed picker spacing, compact key hints and the inset field surface.
  • type roles and the /design-system catalog, kept in sync with the primitives.
  • the app shell: sidebar, titlebar, project search, browser address toolbar, floating browser preview frame.
  • reduced motion honored in overlay primitives.

Needs approval: Theo for vite.config.ts and components/ui/scroll-area.tsx; Theo or Julius for packages/contracts (ipc, server, settings).

Stack

Do not merge: this stack still needs review. Each PR targets the one below it.

  1. feat(web): establish redesign primitives and shell #28839 1-primitives-shell (this PR)
  2. feat(web): redesign composer and conversation timeline #28840 2-composer-timeline
  3. feat(web): redesign review panels and supporting pages #28841 3-panels-pages
  4. feat(web): redesign settings and setup surfaces #28842 4-settings-setup
  5. feat(web): style dictation with the redesign primitives #28844 5-voice
  6. feat(web): add workspace panes and transitions #28845 6-workspace-panes

Evidence

compared upstream main 57d764ea1aaa0227ed851641c155765525df9273 with 9873e800af8e7205038528dbe52ec556f11c079b in isolated worktrees, using the same seed and todo-list replay. captures are 1280×720, except the add action dialog at 1280×900. replay timestamps and measured turn duration differ between runs.

the sidebar and titlebar use inset panes, revised type and compact controls in dark mode.

before: app shell with the todo-list replay in dark mode

after: app shell with the todo-list replay in dark mode

the same shell and replay in light mode.

before: app shell with the todo-list replay in light mode

after: app shell with the todo-list replay in light mode

project filtering keeps the same two results for "t3" with revised field and picker geometry.

before: project picker filtered to t3

after: project picker filtered to t3

the thread action menu uses wider rows, revised spacing, icons and surface styling.

before: thread action menu for the todo-list replay

after: thread action menu for the todo-list replay

the add action dialog uses the new type roles, inset fields, buttons and switches.

before: add action dialog with empty fields

after: add action dialog with empty fields

the sidebar toggle tooltip uses the revised surface and type styling.

before: sidebar toggle tooltip with its keyboard shortcut

after: sidebar toggle tooltip with its keyboard shortcut

the browser address toolbar uses an inset address field and revised spacing around navigation controls.

before: browser address toolbar with example.com loaded

after: browser address toolbar with example.com loaded

the new web titlebar back and forward controls navigate between the seeded thread and replay.

after: titlebar history navigation between two threads

the browser floats into the revised landscape frame while retaining its loaded page.

after: loaded browser moving into the floating landscape frame

the /design-system catalog is new in this layer, so there is no before equivalent. these captures show the live foundation tokens and button specimens.

after: new design-system catalog foundation tokens

after: new design-system catalog button variants and sizes

all images were inspected at full size. uploaded images were opened at their original dimensions. both trimmed recordings were inspected, played through, and seeked in the uploaded browser player. project filtering, thread menus, dialog open/cancel, tooltips, sidebar collapse/restore, titlebar history navigation, browser URL navigation and floating preview opening were exercised in the real web client with the dev replay provider.

unverified: returning the floating preview to the right panel, because the automation click timed out; native desktop chrome, mobile, reduced-motion behavior and narrow layouts were outside this capture pass. no code checks were run for this evidence-only task. no pr edits, comments, commits or pushes were made.

Verification

Every layer, rebased on main 9469095, passes typecheck, knip, lint and format on Blacksmith on its own. At layer 6, the web suite passes (unit and browser). The desktop suite fails one libsecret test, which fails the same way on main. GitHub CI runs the full suite on every layer.

Done with Claude Code (Opus 5.5) and Codex (gpt-6.1-sol high) children in T3 Code.

🤖 Generated with Claude Code

@maria-rcks maria-rcks added the DO NOT MERGE Experimental pull request. Do not merge. label Nov 1, 2026
@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Nov 1, 2026
@github-actions github-actions Bot added the size:XXL 1,000+ changed lines (additions + deletions). label Nov 1, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — The redesign introduces gradient-rim as the default button and composer appearance and removes existing appearance preferences. Human review is needed to confirm these changes to the standard product experience.

You can add or adjust custom eligibility rules. Learn more.

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 21.5 KiB 21.5 KiB 0 B (0.0%) 24.4 KiB ✅
Codex Live turn messages 1 1 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.9 KiB 21.9 KiB 0 B (0.0%) 24.4 KiB ✅
Claude Live turn messages 1 1 0 (0.0%) 8 ✅

Baseline: c6ca605 · PR result: 75e54f6 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Finishing Touches

Generate docstrings

  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@maria-rcks
maria-rcks force-pushed the maria/redesign/1-primitives-shell branch 2 times, most recently from de9a00a to 9802f93 Compare November 3, 2026 00:00
@maria-rcks
maria-rcks force-pushed the maria/redesign/1-primitives-shell branch from 9802f93 to 15320fd Compare November 3, 2026 00:05
maria-rcks and others added 28 commits November 9, 2026 08:24
…s drop "Until" (#29134)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* fix(web): project location keeps its machine name when the path truncates
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… and shell

- ThreadStatusIndicators.linkedPr: drop the five-row hover cap table; pullRequestListLines in client-runtime already covers the cap, order and counts.
- UsageToggleShortcut: drop the close-button row of the route modal table; it runs the same Dialog close path as Escape.
- AttachmentFilePreview: drop the ods tooltip copy check for "2 columns".
- no-styled-raw-controls: drop the nullish-coalescing case; it shares the logical OR branch.
Drops the lint ceilings for the composer meter and plan banner main removed, keeps the compact reason ChatView passes, shows the palette's Current marker as its own item instead of a dot, restyles main's t3 install steps and Add to PATH button with the redesign roles and variants, and drops the removed plan prompt from the top drawer.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DO NOT MERGE Experimental pull request. Do not merge. size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants