# settings-root.screen The settings overlay landing — 8 categories grid + search + quick toggles + recently-changed audit. Implements [brief S](./S-settings-ia.brief.md). Reached from chat-home top-bar overflow → "Settings" or voice ("settings"). Voice register: working throughout (settings are deliberate operations). ## Layout (full-screen overlay) ``` ┌─────────────────────────────────────────────────┐ │ ◄ Chat Done │ 56pt — top bar ├─────────────────────────────────────────────────┤ │ │ │ 🔍 Search settings │ global-search scoped to settings │ │ │ ─── Quick ─── │ 1-tap from anywhere │ [ Pause all auto-actions ] [ Vacation mode ] │ │ [ Quiet hours: 22–08 ▼ ] [ 🛡 Kill switch ] │ K kill-switch entry │ │ │ ─── Categories ─── │ │ ┌──────────────┬──────────────┐ │ │ │ S1 Account │ S2 Voice & in│ │ │ │ 4 settings │ 6 settings │ │ │ ├──────────────┼──────────────┤ │ │ │ S3 Notifs │ S4 Specialis │ │ │ │ 11 settings │ 12 settings │ │ │ ├──────────────┼──────────────┤ │ │ │ S5 Surfaces │ S6 Safety │ │ │ │ 24 settings │ 9 settings │ │ │ ├──────────────┼──────────────┤ │ │ │ S7 Tours │ S8 Privacy │ │ │ │ 7 settings │ 8 settings │ │ │ └──────────────┴──────────────┘ │ │ │ │ ─── Recently changed ─── │ │ • Quiet hours → 22–08 (you, 2d ago) │ │ • content-x posture → draft (Cocotte, 1w) │ │ • Tryst cadence → 4h (you, 2w) │ │ [ See all in audit → ] │ │ │ │ ─── Advanced ─── │ gate │ [ Show advanced toggles ] │ │ │ └─────────────────────────────────────────────────┘ ``` ## Components | Component | Notes | |---|---| | Top bar | Back + Done. | | Search bar | Reuses global-search component scoped to settings type. Operators work. | | Quick toggles | 4 one-tap actions. Kill switch is the rightmost; styled per brief K §K5. | | Categories grid | 8 cards (S1–S8). Each shows category name + setting count. Tap → category drawer. | | Recently changed | Last 3 audit-shadow entries showing setting + new value + who/when. Builds trust (per brief I append-only). | | Advanced gate | Hides power-user toggles by default. Tap reveals (per S-Q2 open question). | ## States 1. **Default** — full layout. 2. **Quick toggle in progress** (e.g. tap "Pause all") — toggle button shows in-flight spinner; chat-home banner reflects pause once committed. 3. **Vacation mode on** — Quick button shows "Resume" instead of "Vacation mode"; banner across top: "Vacation through {date}." 4. **Kill switch armed** — Quick button red; tap routes to kill-switch.flow.md. 5. **Advanced shown** — extra cards appear below the 8 base categories (e.g. "Developer," "Diagnostics"). 6. **Search active** — categories collapse; search results stream below input. 7. **Recently-changed empty** — section omitted. 8. **Offline** — Quick toggles disabled with banner: "Some settings need a connection. Try again when you're back online." 9. **Conflict warning** (e.g. user enables "auto-bumps everywhere" while vacation mode is on) — inline warning chip on the conflicting card. 10. **VoiceOver** — category grid read row-by-row; recently-changed read as list; quick toggles read as button group. ## Interactions - **Tap a category card** → settings-{category}.screen.md (per-category drawer; not all yet specced). - **Tap a recently-changed row** → audit-row-detail.screen.md. - **Tap "Pause all auto-actions"** → confirms (medium-stakes), commits, records audit row. - **Tap "Vacation mode"** → vacation-mode setup sheet (asks "through when?"). - **Tap "Quiet hours" picker** → time-range editor. - **Tap kill switch** → kill-switch.flow.md. - **Swipe-down** → dismiss. ## Edge cases - **All settings at defaults** (first day) — Recently-changed shows "No changes yet — Cocotte's running on defaults." - **Audit-shadow lookup fails** — section shows "Couldn't load recent changes" but rest of settings remains functional. - **Setting referenced from a brief that doesn't exist yet** (forward-looking placeholder) — category card shows count but the missing setting is hidden in the drawer. - **Reduced motion** — grid stack vertically. - **Dynamic Type XXL** — 2-column grid becomes 1-column. ## Related - [Brief S](./S-settings-ia.brief.md) — parent design. - [Brief I](./I-audit-trust-replay.brief.md) — recently-changed pulls from audit. - [Brief K §K5](./K-safety-blocklist.brief.md) — kill switch quick toggle. - [global-search.screen.md](./global-search.screen.md) — search component. - Per-category drawers (S1–S8) — each will get its own screen when specced. ## Out of scope - Per-category drawer interiors (one screen per category, written as needed). - Setting export / import (P3+). - Multi-account settings (single-user-Quinn at P0).