chore(web): workspace-split cleanup — drop legacy keys, trim palette, prune handoff (#1122) #1130

Merged
reviewer merged 1 commit from code-lead/1122 into main 2026-05-13 17:00:43 +00:00
Collaborator

Summary

Final cleanup after the workspace ↔ specs split lands. No new behaviour, just dead-code removal so the wsplit bridge doesn't carry forward. Closes #1122.

  • Drop nav_sections_item_workspace paraglide key (en + fr) and refresh the obsolete nav-sections.tsx comment that flagged it for deletion.
  • Trim the workspace command palette: drop the unused command_palette_specs message + specs from the placeholder / search label (palette now searches sessions / agents / repos). Wire the placeholder through the i18n key instead of a hardcoded string. The palette stays — 3 facet groups remain, all non-spec.
  • Rename lib/use-workspace-keymap.tslib/use-chat-keymap.ts (the hook owns ⌘K only, and /workspace is chat-only after #1121). Cross-refs in use-specs-keymap + workspace.test.tsx comments updated. SHORTCUTS registry needs no change — ⌘K isn't a registered entry.
  • Drop a stray unused screen const in specs.test.tsx flagged by Biome.
  • Document the migration: new docs/specs/workspace-split.md (surface boundaries, URL contracts, keymaps, wsplit-1..6 story trail); docs/workspace.md's planner-surface section now describes the chat-only /workspace, slash-command intercept, and dropped ?spec= / ?task= params, and links to the spec.

task was already gone from validateSearch in #1121. No orphaned SpecEditor / BreakdownPreview imports outside /specs/$specName and the workspace breakdown-drawer slash-command path.

Acceptance criteria (from #1122)

  • Remove nav_sections_item_workspace paraglide key + generated message files if no longer referenced.
  • WorkspaceCommandPalette: remove spec-creation entries that moved to /specs. Palette retained (3 facet groups: sessions / agents / repos); placeholder + l10n trimmed.
  • Delete the task search param from any remaining validateSearch (already gone in #1121).
  • Rename use-workspace-keymap.tsuse-chat-keymap.ts — every shortcut it owns is chat-scoped after the split.
  • Update docs/workspace.md planner-surface section + reference docs/specs/workspace-split.md.
  • bun run test + just qa clean.
  • No orphaned import of SpecEditor / BreakdownPreview outside /specs/$specName and /workspace chat slash-command path.

Test plan

  • just qa — typecheck + biome lint + format + sql-layer-check + paraglide-check + i18n-string-check + flow-schema-check (all green).
  • apps/web Vitest browser-mode suite (1139 tests, including workspace.test.tsx 29 / 29 and specs.test.tsx).
  • apps/server Bun test suite (3305 tests).
  • Paraglide codegen leaves no nav_sections_item_workspace / command_palette_specs artefacts under apps/web/src/paraglide/messages/.
  • useWorkspaceKeymap symbol is gone from the source tree (only the historical doc-comment reference in the renamed file remains).

🤖 Generated with Claude Code

## Summary Final cleanup after the workspace ↔ specs split lands. No new behaviour, just dead-code removal so the wsplit bridge doesn't carry forward. Closes #1122. - Drop `nav_sections_item_workspace` paraglide key (en + fr) and refresh the obsolete `nav-sections.tsx` comment that flagged it for deletion. - Trim the workspace command palette: drop the unused `command_palette_specs` message + `specs` from the placeholder / search label (palette now searches sessions / agents / repos). Wire the placeholder through the i18n key instead of a hardcoded string. The palette stays — 3 facet groups remain, all non-spec. - Rename `lib/use-workspace-keymap.ts` → `lib/use-chat-keymap.ts` (the hook owns ⌘K only, and `/workspace` is chat-only after #1121). Cross-refs in `use-specs-keymap` + `workspace.test.tsx` comments updated. `SHORTCUTS` registry needs no change — ⌘K isn't a registered entry. - Drop a stray unused `screen` const in `specs.test.tsx` flagged by Biome. - Document the migration: new `docs/specs/workspace-split.md` (surface boundaries, URL contracts, keymaps, wsplit-1..6 story trail); `docs/workspace.md`'s planner-surface section now describes the chat-only `/workspace`, slash-command intercept, and dropped `?spec=` / `?task=` params, and links to the spec. `task` was already gone from `validateSearch` in #1121. No orphaned `SpecEditor` / `BreakdownPreview` imports outside `/specs/$specName` and the workspace breakdown-drawer slash-command path. ## Acceptance criteria (from #1122) - [x] Remove `nav_sections_item_workspace` paraglide key + generated message files if no longer referenced. - [x] `WorkspaceCommandPalette`: remove spec-creation entries that moved to `/specs`. Palette retained (3 facet groups: sessions / agents / repos); placeholder + l10n trimmed. - [x] Delete the `task` search param from any remaining `validateSearch` (already gone in #1121). - [x] Rename `use-workspace-keymap.ts` → `use-chat-keymap.ts` — every shortcut it owns is chat-scoped after the split. - [x] Update `docs/workspace.md` planner-surface section + reference `docs/specs/workspace-split.md`. - [x] `bun run test` + `just qa` clean. - [x] No orphaned import of `SpecEditor` / `BreakdownPreview` outside `/specs/$specName` and `/workspace` chat slash-command path. ## Test plan - [x] `just qa` — typecheck + biome lint + format + sql-layer-check + paraglide-check + i18n-string-check + flow-schema-check (all green). - [x] `apps/web` Vitest browser-mode suite (1139 tests, including `workspace.test.tsx` 29 / 29 and `specs.test.tsx`). - [x] `apps/server` Bun test suite (3305 tests). - [x] Paraglide codegen leaves no `nav_sections_item_workspace` / `command_palette_specs` artefacts under `apps/web/src/paraglide/messages/`. - [x] `useWorkspaceKeymap` symbol is gone from the source tree (only the historical doc-comment reference in the renamed file remains). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chore(web): workspace-split cleanup (#1122)
All checks were successful
qa / sql-layer-check (pull_request) Successful in 10s
qa / dockerfile (pull_request) Successful in 11s
qa / db-schema (pull_request) Successful in 19s
qa / i18n-string-check (pull_request) Successful in 21s
qa / qa-1 (pull_request) Successful in 3m25s
qa / qa (pull_request) Successful in 0s
a25bfeb35d
Final pass after the workspace ↔ specs split. No new behaviour, just
removing dead code carried forward from the migration:

- Drop `nav_sections_item_workspace` paraglide key (en + fr) — the rail
  now uses `nav_sections_item_chat` / `nav_sections_item_specs`. Refresh
  the nav-sections.tsx comment that flagged the key for deletion.
- Trim the workspace command palette: drop the unused
  `command_palette_specs` message + "specs" from the search
  placeholder / label (the palette searches sessions, agents, repos).
  Wire the placeholder through the i18n key instead of a hard-coded
  string.
- Rename `use-workspace-keymap` → `use-chat-keymap`. The hook owns ⌘K
  only, and `/workspace` is chat-only after #1121; the new name matches
  the surface. No SHORTCUTS registry change needed — ⌘K isn't a
  registered entry. Cross-references in use-specs-keymap + the
  workspace.test.tsx comments updated.
- Drop a stray unused `screen` const in `specs.test.tsx` that Biome
  flagged.
- Document the migration: new `docs/specs/workspace-split.md` covers
  the surface boundaries, URL contracts, keymaps, and the wsplit-1..6
  story trail; `docs/workspace.md`'s planner-surface section now
  describes the chat-only `/workspace`, the slash-command intercept,
  and the dropped `?spec=` / `?task=` params, and links to the spec.

`task` was already gone from `validateSearch` (#1121); no orphaned
`SpecEditor` / `BreakdownPreview` imports outside `/specs/$specName`
and the workspace breakdown-drawer slash-command path.

`just qa` + `bun run test` clean (3305 server, 1139 web).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
reviewer approved these changes 2026-05-13 17:00:34 +00:00
reviewer left a comment

All AC from #1122 satisfied, CI green (6/6), no behavioural changes.

Notable: the hardcoded placeholder in WorkspaceCommandPalette is now correctly wired through m.command_palette_search_placeholder() — good latent-bug catch. The use-workspace-keymapuse-chat-keymap rename chain is complete (file, interface, function, all call sites, test comments, doc comments). New docs/specs/workspace-split.md is a solid reference artefact.

LGTM — squash-merging.

All AC from #1122 satisfied, CI green (6/6), no behavioural changes. **Notable:** the hardcoded placeholder in `WorkspaceCommandPalette` is now correctly wired through `m.command_palette_search_placeholder()` — good latent-bug catch. The `use-workspace-keymap` → `use-chat-keymap` rename chain is complete (file, interface, function, all call sites, test comments, doc comments). New `docs/specs/workspace-split.md` is a solid reference artefact. LGTM — squash-merging.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/agent-hooks!1130
No description provided.