Skip to content

refactor(workbench): split src into domain folders - #2389

Merged
DeliciousBuding merged 3 commits into
masterfrom
refactor/workbench-domains
Oct 19, 2026
Merged

DeliciousBuding merged 3 commits into
masterfrom
refactor/workbench-domains

Conversation

@DeliciousBuding

Copy link
Copy Markdown
Collaborator

What changed

app/workbench/src/ was 170 flat files: composer parts, transcript chrome, route views and inspector panels all side by side. Split by domain, no behaviour change.

Folder Files Contents
composer/ 35 UnifiedComposer, agent/target/approval pickers, attachments, mention popover, dispatch queue, host + pure helpers
transcript/ 32 ConversationHost/Sidebar, ChatViewBridge, ChatEngineeringColumn, transcript chrome, goal banner, mainchain strip
routes/ 51 route views, hooks, helpers, planners, page models (agents, tasks, docs, projects, settings, usage)
inspector/ 37 inspector panel, resizer, mode panel, auto-open hook

Root keeps only the shell and cross-cutting files, plus every package.json export entry point (index.ts, designIcons.tsx, WorkbenchRoutes.tsx, hubDataMapping.ts, desktopChromeEvents.ts), so web/desktop imports are untouched.

Relative imports were rewritten mechanically from git's rename data; the diff is 124 renames + import lines. app/workbench/README.md now documents the layout.

Also dropped ./shadcn/ai-elements/* from @agenthub/shared — it pointed at a directory that has never existed.

Verification

  • tsc -b shared / workbench / web: clean.
  • Vitest: workbench 163 files / 1605 tests, shared 151 / 2758, web 33 / 275 — all pass.
  • lint:css clean; eslint 0 errors (pre-existing warnings only).
  • Web production build OK; visual:qa:shell 4 shots overflow=false; visual:qa:chat 16 shots overflow=false.
  • Rendered chat surface is pixel-identical to the pre-move build (checked against the capture from the previous change).

DeliciousBuding and others added 3 commits October 20, 2026 01:39
src/ was 170 flat files: composer parts, transcript chrome, route views and inspector panels all side by side, so every import was a puzzle.

- composer/ (35) - UnifiedComposer, pickers, attachments, mention, approval, dispatch queue, helpers
- transcript/ (32) - ConversationHost/Sidebar, ChatViewBridge, transcript chrome, goal banner, mainchain strip
- routes/ (51) - route views, hooks, helpers, planners, page models
- inspector/ (37) - inspector panel, resizer, mode panel

Root keeps only shell + cross-cutting files and the package.json export entry points (index.ts, designIcons.tsx, WorkbenchRoutes.tsx, hubDataMapping.ts, desktopChromeEvents.ts), so external imports are untouched. Relative imports inside src were rewritten mechanically; package exports and visual output are unchanged.

Co-authored-by: Codex <codex@delicious233.com>
The export pointed at src/shadcn/ai-elements, a directory that does not exist. Vendored shadcn files live in shadcn/ui only.

Co-authored-by: Codex <codex@delicious233.com>
Every composer file opened with an eight-line ASCII banner that repeated its own filename and issue number, and UnifiedComposer carried five more section dividers explaining what the next block already says.

Keep comments that carry a constraint a reader cannot infer from the code: the memo rationale for keystroke re-renders, the cross-platform approval-mode mapping, and the dispatch-queue invariant that entries never resend the transcript message.

Co-authored-by: Codex <codex@delicious233.com>
@DeliciousBuding
DeliciousBuding merged commit b46571b into master Oct 19, 2026
33 checks passed
@DeliciousBuding
DeliciousBuding deleted the refactor/workbench-domains branch October 19, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant