cocottetech/@platform/codebase/@features/ai-copilot/docs/surfaces-settings.screen.md

141 lines
8.7 KiB
Markdown
Raw Normal View History

# Surfaces settings · screen
The operational view of every surface Quinn touches. Reached from chat-home settings overlay or from any surface chip's long-press. Pairs with [brief O](./O-surfaces-roster.brief.md) (canonical roster), [brief F](./00-system-visual-system.md) §F5 (iconography + status-state overlays), [brief L](./L-specialists-fleet.brief.md) §L1 (specialist routing per surface).
Voice register: **plain** — this is an operational surface, not a hearth one.
## Layout (iPhone, scrollable)
```
┌────────────────────────────────────────┐
│ ← Surfaces │
├────────────────────────────────────────┤
│ [filter: live · pending · blocked] │
├────────────────────────────────────────┤
│ N1 · Content (11) ▾ │
│ ◉ OnlyFans live · last post 2h │
│ ◉ X (Twitter) live · last post 47m │
│ ◌ Instagram thin · draft-only │
│ ◌ TikTok thin · draft-only │
│ ◌ Threads thin · cross-post │
│ ◌ Bluesky not active · enable │
│ ◌ Reddit not active · enable │
│ ◌ Fansly not active · enable │
│ ◌ YouTube not active │
│ ◌ Twitch not active │
│ ◌ Facebook not active │
├────────────────────────────────────────┤
│ N2 · Escort directories (12) ▾ │
│ ◉ Tryst live · bumping 4h │
│ ◉ TS4Rent live · bumping 4h │
│ ◉ Seeking live · listing │
│ ⚠ PrivateDelights pending verification│
│ ◉ TSEscorts live · Berkeley CA │
│ ◉ AdultSearch live · ID 3809904 │
│ ◉ AdultLook live · plain-text │
│ 🔒 Eros blocked · legal name │
│ ⚠ EroticMonkey verification video │
│ ⚠ SkipTheGames photo rejected │
│ ◌ MegaPersonals not started │
│ ⚠ ts.live email-verify pending │
├────────────────────────────────────────┤
│ N3 · Brand sites (3) ▾ │
│ ⬛ transquinnftw.com live · canonical │
│ ⬛ adult-therapy… live · tour pages │
│ ⬛ futa-waifu-tour live · niche │
├────────────────────────────────────────┤
│ N4 · Channels (6) ▾ │
│ ▣ iMessage live · auto-reply │
│ ▣ SMS live · draft-only │
│ ▣ Email (Proton: hi@cocotte.maison) │
│ live · draft-only │
│ ▣ Email (Proton: myprivatedelights@…) │
│ live · auto-archive │
│ ▣ Email (Gmail) read-only │
│ ▣ Sniffies light · hands-off │
├────────────────────────────────────────┤
│ N5 · Commerce (4) — P5+ enumerated only │
└────────────────────────────────────────┘
```
## Status-state glyphs (per brief F F5b overlays)
| Glyph | Meaning | Color |
|---|---|---|
| ◉ filled circle | live, active | accent-rose |
| ◌ hollow circle | live but thin / not in use | neutral |
| ⚠ amber | pending verification or verification problem | amber |
| 🔒 lock | blocked (legal / policy) | neutral-low-opacity |
| ⬛ rounded square | Quinn-owned brand site (N3) | rose |
| ▣ rounded square (channel) | N4 channel (geometry distinguishes from surface) | channel tint |
Status glyph + display name + one-line context (last action / current policy / verification state).
## Row interactions
- **Tap row**: opens surface-detail sheet (below).
- **Long-press**: bulk-select for "snooze all selected" / "set posture to draft-only on selected" / "open audit for selected."
- **Swipe left**: snooze (per H1 vacation pattern, scoped to this surface).
- **Swipe right**: shortcut to the corresponding specialist drawer (brief B6).
## Surface-detail sheet (the per-row deep-dive)
```
┌────────────────────────────────────────┐
│ Tryst ✕ │
│ N2 · Escort directory │
│ Specialist: bookings-tryst │
├────────────────────────────────────────┤
│ Status live │
│ Policy 4h bumps (active 1002) │
│ Last bump 11:02 · OK │
│ Next bump 15:02 · in 1h 23m │
│ Last fail 03:14 → recovered 03:16 │
├────────────────────────────────────────┤
│ Trust (last 30d) 0.94 ▰▰▰▰▰▰▰▱▱▱ │
│ Actions 247 · 3 corrections│
│ Profile edited 2 days ago │
├────────────────────────────────────────┤
│ [ Edit policy ] │
│ [ Open audit (Tryst slice) ] │
│ [ Pause bumps ] [ Snooze ] │
│ [ Re-auth ] [ Archive surface ] │
└────────────────────────────────────────┘
```
## States to render
1. **Default** — all surfaces grouped, filter "all", live + pending visible.
2. **Filter: live only** — N3 brand sites and live N2 directories shown.
3. **Filter: pending** — surfaces needing Quinn attention (verification, photo rejected, email pending).
4. **Filter: blocked** — surfaces locked behind external dependencies (Eros legal name).
5. **Empty after filter** — "No surfaces in this state right now."
6. **Surface-detail sheet for a live surface** (Tryst pattern above).
7. **Surface-detail sheet for a pending surface** — replaces policy block with verification-status block + a "What's needed" list.
8. **Surface-detail sheet for a blocked surface** — replaces actions with a single "What's blocking" note (e.g. "Legal name change must complete first") and a "Notify me when ready" toggle.
9. **N5 commerce stub** — section collapsed by default with explainer: "Enumerated for completeness. No design effort until Quinn opts in."
## Edge cases
- **Newly-active surface** (e.g. Quinn just turned Bluesky on) — appears with a small `new` chip until Quinn acknowledges by opening the detail sheet once.
- **Status drift** (Tryst lost auth overnight; system flips status to pending behind the scenes) — appears as ⚠ with banner inside the detail sheet: "Auth expired at 04:12. Re-auth to resume."
- **Specialist promotion proposal** (`bookings-directories` is suggesting `seeking` graduate to its own specialist per brief L promotion path) — surface-detail sheet for seeking shows an inline card: "Cocotte thinks Seeking has earned its own specialist. Promote to `bookings-seeking`? — Approve / hold."
- **Bulk-select with mixed states** — disable bulk actions that don't apply (e.g. "pause bumps" disabled if selection includes a non-bumping surface).
## Brief O open questions that touch this screen
- **O-Q1 Sniffies** — currently rendered under N4 channels with `light surface` label; if reclassified to N2 directory the row moves and gets a bump policy.
- **O-Q2 Seeking** — currently under N2; if reclassified to its own category, a new section appears between N2 and N3.
- **O-Q3 Bluesky / Reddit / Fansly priority** — rendered as `not active · enable` rows; if deprioritized to noise, they should be filterable to hidden.
These three are blocking for the rendering choices made above. See [OPEN-DECISIONS.md](./OPEN-DECISIONS.md).
## Related
- [brief O](./O-surfaces-roster.brief.md) — canonical roster.
- [brief F](./00-system-visual-system.md) §F5 — iconography + status overlays.
- [brief L](./L-specialists-fleet.brief.md) §L1 — specialist routing per surface.
- [brief H](./H-recurring-chores.brief.md) §H5 — multi-surface card density (relevant when "snooze N selected" fans out).
- [brief K](./K-safety-blocklist.brief.md) §K3c-4 — Eros blocked-state hard rule.
- [`degraded-mode.flow.md`](./degraded-mode.flow.md) — what happens when a surface row flips to ⚠.