Skip to content

[Feature] UI rewrite v2 Area D: settings modular rollout #604

@Astro-Han

Description

@Astro-Han

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priorityappApplication behavior and product flowsenhancementNew feature or requestuiDesign system and user interface

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions