docs: mark off-screen AW memory as shipped in architecture §5

This commit is contained in:
2026-06-05 20:08:20 -04:00
parent c855731c39
commit 6d296bf743
+10 -6
View File
@@ -185,8 +185,9 @@ mode would just route a thought. The runtime state machine becomes the loop in
Off-screen mode, from the phone, end to end — **this is what ships today**: Off-screen mode, from the phone, end to end — **this is what ships today**:
1. **Collect** — today's Marvin tasks (`am --json`) + the `~/owc/goals-2026.md` 1. **Collect** — today's Marvin tasks (`am --json`) + the `~/owc/goals-2026.md`
goals + the life-domain `~/owc/resources/bug-*.md` notes, assembled into a goals + the life-domain `~/owc/resources/bug-*.md` notes — plus recent
single budgeted brief. proposals and their outcomes recalled from the `keel.events` AW bucket —
assembled into a single budgeted brief.
2. **Brain** — the chosen brain (`ai.Proposer`) returns one worthwhile off-screen 2. **Brain** — the chosen brain (`ai.Proposer`) returns one worthwhile off-screen
action plus a short rationale. action plus a short rationale.
3. **Surface** — the phone-first web UI renders a proposal card and asks Felix to 3. **Surface** — the phone-first web UI renders a proposal card and asks Felix to
@@ -196,10 +197,13 @@ Off-screen mode, from the phone, end to end — **this is what ships today**:
No new store touched. The brain was rented for one call. Everything else was Keel. No new store touched. The brain was rented for one call. Everything else was Keel.
**Next increment:** memory. Off-screen does not yet read or write Keel's AW **Shipped:** memory. Off-screen now writes its decisions to the `keel.events` AW
buckets, so it cannot remember what it proposed last time. Adding a *remember* bucket (`proposal_made` / `action_taken` / `proposal_dismissed`, correlated by a
step (read `keel.state` for prior proposals) and an *act* event random `proposal_id`) and reads its recent history back into the brief — so a
(`proposal_made`/`action_taken` to `keel.events`) closes the loop per §7. proposal can avoid repeating itself and follow up on what was dismissed or left
undone. Storage sits behind a thin `memory.Store` port (AW-backed, or a nop when
AW is down), the seam every later mode reuses; see §7. The `keel.state` bucket and
the trend/spiral detection that reads this data remain future increments.
--- ---