#2150

feat: add an icon rail with Home and Settings

DraftDouglasymlaiwants to merge intofrom

Pull Request

Related Issue

N/A. This is maintainer-directed work, the first of three pull requests that build the plan in #2113.

Description

Draft. Part 1 of 3, stacked in this order:

  1. This PR: the rail, with Home and Settings.
  2. Pin Spaces to the rail (based on this branch).
  3. List every Space and its Sessions in Home (based on part 2).

Problem

Home and Settings share one page, and people reach it through the Home pill in the top bar. Nothing on screen says where you are or which place you came from. Settings is a section inside Home, not a place of its own.

Fix

  • Rail: a 48px column on the far left of the main window holds Home, the active Space, Settings and the account menu. It renders once in the layout, so it doesn't remount as pages change, and it stays visible when the page sidebar folds. Sign-in, the install screen and Session windows don't show it.
  • Pages: Home (/home) and Settings (/settings) are separate pages again. Settings keeps its sections in ?tab=.
  • Old links: every earlier address still works. That includes /home?section=settings&tab=…, /settings?section=…, /setting and /setting/<section>, which all redirect to /settings?tab=… and keep their other parameters (provider, skillId, …).
  • Top bar: the Home pill is gone. A Space name in the top bar leads back to the Space view from Home and Settings.
  • Design system: the rail width is registered in the design-token exception registry, because the top bar's sidebar controls are measured from it.

Testing

  • npm run type-check passes on this branch.
  • npm run check:i18n, npm run check:design-tokens and ESLint on the changed files pass on the top of the stack (part 3).
  • Full vitest run: no new failures. The tests that fail here fail on main too, apart from two that depend on the local setup: the Electron build-config test, and the session-execution integration test, which needs a running backend.
  • New and updated unit tests:
    • the rail: places, selection, aria-current and where it's hidden;
    • the Settings routes and every legacy redirect;
    • the Settings route bridge's back state;
    • shellRoutes;
    • the top bar.
  • Not yet tested by hand. Screenshots will follow before this leaves Draft.

Testing Evidence (REQUIRED)

  • I have included human-verified testing evidence in this PR.
  • This PR includes frontend/UI changes, and I attached screenshot(s) or screen recording(s).
  • No frontend/UI changes in this PR.

Manual testing and screenshots are still to do.

What is the purpose of this pull request?

  • Bug fix
  • New Feature
  • Documentation update
  • Other

Contribution Guidelines Acknowledgement

Activity

2

This pull request is a draft

Merging is unavailable until it is marked ready for review.