Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac working tree at ~/Code/@projects/@cocottetech/. node_modules and build artifacts excluded via .gitignore. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6.2 KiB
6.2 KiB
settings-root.screen
The settings overlay landing — 8 categories grid + search + quick toggles + recently-changed audit. Implements brief S. 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
- Default — full layout.
- Quick toggle in progress (e.g. tap "Pause all") — toggle button shows in-flight spinner; chat-home banner reflects pause once committed.
- Vacation mode on — Quick button shows "Resume" instead of "Vacation mode"; banner across top: "Vacation through {date}."
- Kill switch armed — Quick button red; tap routes to kill-switch.flow.md.
- Advanced shown — extra cards appear below the 8 base categories (e.g. "Developer," "Diagnostics").
- Search active — categories collapse; search results stream below input.
- Recently-changed empty — section omitted.
- Offline — Quick toggles disabled with banner: "Some settings need a connection. Try again when you're back online."
- Conflict warning (e.g. user enables "auto-bumps everywhere" while vacation mode is on) — inline warning chip on the conflicting card.
- 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 — parent design.
- Brief I — recently-changed pulls from audit.
- Brief K §K5 — kill switch quick toggle.
- 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).