98 lines
6.2 KiB
Markdown
98 lines
6.2 KiB
Markdown
|
|
# 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).
|