cocottetech/@platform/codebase/@features/ai-copilot/docs/settings-root.screen.md
natalie 1b719e1fd7 chore(bootstrap): initial V4 commit
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>
2026-05-18 08:11:41 -07:00

97 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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: 2208 ▼ ] [ 🛡 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 → 2208 (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 (S1S8). 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 (S1S8) — 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).