docs: document the settings surface and repoint the moved settings paths

A docs pass landed in this worktree while the preview was up (a respawn loop on
the throwaway session it was serving), and it is the documentation this work
needed, so it is reviewed and kept rather than thrown away.

- docs/architecture-invariants.md gains a "Settings surface" section: the one
  `:is()` scope and why the id-only list preserves specificity, the anatomy,
  the two meanings of the rail, the deliberate two sizes, the phone strip, the
  Add Case adapter, the flex-summary chevron trap, the Respawn ordering, the
  retired tab chrome, and the live preview's clone-the-chip-icon rule.
- Settings paths are repointed everywhere they moved: Display -> Header &
  Panels (header buttons, cron, multi-monitor, response viewer, file viewer),
  Settings -> App Settings -> System -> Updates, Panels -> Header & Panels ->
  Cross-session features (Read My Mind), Display -> Terminal & Input (gesture
  control), Claude Model -> Models -> New Claude sessions.
- Stale counts refreshed (route modules, frontend modules, type files, config
  files) and the typecheck script named.
- browser-testing-guide gains the three modal ids and the `set-*` selectors.
- The styles.css block comment covers all three modals.

Two claims it got wrong are corrected here: an external-CLI session opens
Session Options on the Session tab (`switchOptionsTab('context')`), not
Summary - measured in the browser - and the Cron toggle lives under Header &
Panels -> Scheduling, with no "Header Displays" step under it any more.
This commit is contained in:
Codeman maintainer
2026-08-10 12:18:08 +02:00
parent 7da9fb4d53
commit 8d094b086c
6 changed files with 78 additions and 37 deletions
+12 -7
View File
@@ -14609,15 +14609,15 @@ html[data-skin="daylight-blue"] .welcome-btn-tunnel.active:hover {
}
/* ═══════════════════════════════════════════════════════════════════════════
Settings surface (#appSettingsModal + #sessionOptionsModal)
Settings surface (#appSettingsModal + #sessionOptionsModal + #createCaseModal)
The `set-*` language: a left rail, a document of grouped rows, each row text
on the left and its control pinned right. Both modals use it, hence the
on the left and its control pinned right. All three modals use it, hence the
`:is()` scope — which keeps the old id specificity exactly (an `:is()` list
takes the specificity of its most specific argument, and both are ids), so
nothing downstream of this block shifts in the cascade.
takes the specificity of its most specific argument, and all three are ids),
so nothing downstream of this block shifts in the cascade.
The two differ in what the rail DOES, and only there:
They differ in what the rail DOES, and only there:
• #appSettingsModal — a TABLE OF CONTENTS over ONE scrolling document.
Every section stays mounted, the rail follows the scroll, find-in-page
reaches all of it.
@@ -14625,9 +14625,14 @@ html[data-skin="daylight-blue"] .welcome-btn-tunnel.active:hover {
`.hidden` on the rest (switchOptionsTab in session-ui.js). Summary owns
its own scroller and Respawn is long, so stacking them into one document
would bury both.
• #createCaseModal: a real switcher too (switchCaseModalTab), over six
independent forms that keep their legacy `.form-row` markup; the adapter
block near the end of this file maps that markup onto the row language.
`.modal-tabs`/`.modal-tab-btn`/`.modal-tab-content` still belong to
#createCaseModal and must not be restyled from here.
The two task modals also take a size-up that App Settings does not (their
own blocks further down): they are short panels you act on, not a document
you scan. `.modal-tabs`/`.modal-tab-btn`/`.modal-tab-content` are RETIRED:
no modal uses them and their rules are deleted from both stylesheets.
═══════════════════════════════════════════════════════════════════════════ */
/* Deliberately narrower than the other .modal-lg users: the document is a