Follow-up from the #399 review (merged while the review was being finalised).
The Settings tab state and the URL can diverge, after which a ⌘K settings search silently does nothing:
- ⌘K → "AI provider" → navigates to
/settings?tab=ai (works)
- Click "General" in the nav rail →
SettingsNav onSelect={setTab} changes only local state; the URL still says ?tab=ai
- ⌘K → "AI provider" again →
navigate('/settings?tab=ai') bails because the hash is unchanged (router.ts early-return), the route effect never fires, the palette closes, and the visible tab stays General.
Fix directions: make the route the single source of truth (nav-rail clicks call navigate('/settings?tab=<id>') and the existing route effect switches the tab), or clear/normalise the param on manual tab switches. The T1 spec covers a distinct hash transition only - the search-after-manual-switch sequence above is the regression test to add.
Two smaller leftovers from the same review:
SETTINGS_INDEX lists macOS-only settings unconditionally ("Record system audio", "Hide dock icon" are behind isMac in GeneralTab) - on Windows they navigate to a tab where the row doesn't exist. Filter on isMac.
- "Discord" (AboutTab) and "Show in menu bar / system tray" (GeneralTab) are still missing from the index; a T1 assertion that each index title matches a rendered label would stop the drift that already needed one fix commit.
Follow-up from the #399 review (merged while the review was being finalised).
The Settings tab state and the URL can diverge, after which a ⌘K settings search silently does nothing:
/settings?tab=ai(works)SettingsNav onSelect={setTab}changes only local state; the URL still says?tab=ainavigate('/settings?tab=ai')bails because the hash is unchanged (router.tsearly-return), the route effect never fires, the palette closes, and the visible tab stays General.Fix directions: make the route the single source of truth (nav-rail clicks call
navigate('/settings?tab=<id>')and the existing route effect switches the tab), or clear/normalise the param on manual tab switches. The T1 spec covers a distinct hash transition only - the search-after-manual-switch sequence above is the regression test to add.Two smaller leftovers from the same review:
SETTINGS_INDEXlists macOS-only settings unconditionally ("Record system audio", "Hide dock icon" are behindisMacin GeneralTab) - on Windows they navigate to a tab where the row doesn't exist. Filter onisMac.