Goal
Rewrite the Settings surface end-to-end (frontend + code) to match the two-layer takeover design preview, replacing the current tab-router layout. Remove legacy toggles and dead code along the way.
This issue body was originally framed as an audit-first incremental refactor. After ground-truth check against the design preview, that frame was retired — see the v4 plan comment for the pivot rationale.
Scope
In scope:
- New settings shell: two-layer takeover, 240px nav, 7 nav items.
- 7 sub-pages (some new, some carrying business logic forward from existing files): General · Keybinds · AI · Remote access · Integrations · Worktrees · Memory.
- Deletion of obsolete
settings-*.tsx files, the right-panel Connections tab, and the sound effects subsystem (including audio assets).
- Migration of LSP master toggle from General to Integrations.
- Migration of right-panel Connections content (Servers / MCP / LSP / Plugins) into Settings.Integrations.
- Removal of
shellToolPartsExpanded / editToolPartsExpanded settings; per-tool default fold for bash / edit preserved via grouping.ts hard-coded return false.
- Removal of
settings-general.tsx L299-325 commented-out WSL block and related dead i18n keys.
Out of scope:
Relevant context
Parent: #599
Files to reference for business-logic preservation (will be rewritten or deleted, not refactored):
packages/app/src/components/settings-general.tsx
packages/app/src/components/dialog-connect-provider.tsx (+ 7 already-extracted siblings)
packages/app/src/components/dialog-select-server.tsx (+ 4 already-extracted siblings)
packages/app/src/components/session/session-status-connections.tsx
packages/app/src/context/settings.tsx
Closed by this issue:
Verification
bun typecheck clean.
bun test clean.
bun test packages/app/e2e clean — settings shell + 7 nav routing covered; right-panel no longer has Connections tab.
bun run dev:desktop manual walk — single bash tool defaults to folded; single grep tool defaults to expanded; LSP master in Integrations actually disables LSP.
bun run snap settings — new snap target added for shell + 7 sub-pages; PNG attached to PR.
- Linux Wayland — verified locally if possible, otherwise note CI screenshot dependency in PR.
Execution mode
Single hard-cutover PR (~25 files touched, ~400 lines deleted net). Plan v4 is in this comment. Soft-transition fallback (feature flag, old + new coexist) is available if the PR proves too heavy in review.
Goal
Rewrite the Settings surface end-to-end (frontend + code) to match the two-layer takeover design preview, replacing the current tab-router layout. Remove legacy toggles and dead code along the way.
This issue body was originally framed as an audit-first incremental refactor. After ground-truth check against the design preview, that frame was retired — see the v4 plan comment for the pivot rationale.
Scope
In scope:
settings-*.tsxfiles, the right-panel Connections tab, and the sound effects subsystem (including audio assets).shellToolPartsExpanded/editToolPartsExpandedsettings; per-tool default fold for bash / edit preserved viagrouping.tshard-codedreturn false.settings-general.tsxL299-325 commented-out WSL block and related dead i18n keys.Out of scope:
Relevant context
Parent: #599
Files to reference for business-logic preservation (will be rewritten or deleted, not refactored):
packages/app/src/components/settings-general.tsxpackages/app/src/components/dialog-connect-provider.tsx(+ 7 already-extracted siblings)packages/app/src/components/dialog-select-server.tsx(+ 4 already-extracted siblings)packages/app/src/components/session/session-status-connections.tsxpackages/app/src/context/settings.tsxClosed by this issue:
Verification
bun typecheckclean.bun testclean.bun test packages/app/e2eclean — settings shell + 7 nav routing covered; right-panel no longer has Connections tab.bun run dev:desktopmanual walk — single bash tool defaults to folded; single grep tool defaults to expanded; LSP master in Integrations actually disables LSP.bun run snap settings— new snap target added for shell + 7 sub-pages; PNG attached to PR.Execution mode
Single hard-cutover PR (~25 files touched, ~400 lines deleted net). Plan v4 is in this comment. Soft-transition fallback (feature flag, old + new coexist) is available if the PR proves too heavy in review.