Mark's 6/1 + 6/3 calls drew a hard line: stop spreading effort, finish things. Get Outcomes + Leverage Loops (UI + submit/modify/draft) to 100%, then Mem0, then docs. This report shows every item's status, the live dogfood proof, and where we sit against the full 5-scope plan. Dated 2026-06-04.
Five scopes, strictly ordered — each gates the next. Scope 1 is the deliverable in PR #415; Scopes 2–3 are gated on Robert's go; 4–5 are paused per the 6/3 call.
SCOPE 1
Outcomes / LL UI + submit / modify / draft
✅ 100% — in PR #415
SCOPE 2
Deploy Mem0 (retire Zep)
◷ Gated — next
SCOPE 3
Document how every chat works (Mintlify)
◷ Gated
SCOPE 4
Meeting Prep — true multi-turn
⏸ Paused
SCOPE 5
How I Know X — finish + integrate
⏸ Paused
Scope-1 items — status
Every punch-list item from the 6/1 + 6/3 calls. All shipped on branch feat/outcomes-punchlist-100 and verified green.
Cosmetic 12 / 12 ✅
#38
Tonal Submit Outcome restyle — was "too loud"; quiet primary-tint fill, hover-gated shimmer, no outset glow. Shared by Outcomes + LL.
#42
Removed the word / char counter from the summary panel.
Draft-on-engage in Outcomes (mirrors Leverage Loops).
#5/#6/#26
State reset on mode switch + when starting a new conversation; kill stale last-thread content.
#8
find_speakers tile fix — click works, no UI trap.
#27
Dispatch-ready state must not un-arm once ON.
#58
Conversation history no longer empty in the Outcomes sidebar.
#59/#61
Right-panel + welcome-page content flash on navigation/switch — fixed.
#60
Welcome hero — Show Options no longer clips the top of the hero.
Flask levers (demo-clean default) 2 / 2 ✅
#62
Flask-gated the right-rail "Active dispatch levers" mirror — OFF = absent, ON = visible.
#64
Flask-gated the right-rail Modify tab — identical gate; no empty tab shell with the flask off.
Leverage Loops parity 3 / 3 ✅
#56
Fork composer parity — mic dropdown + waveform + attach on the minimal input.
#7
Ported voice controls (waveform + mic + device selector + tooltips) into the LL composer.
#23
LL right-panel no longer flashes the legacy ContextPanel on arrival.
Memory plumbing (Zep → Mem0 pivot) 5 / 5 ✅
#31
Frontend stable per-conversation thread id.
#32
Backend ep 8497 user+thread provisioning.
#33
Verified durable + user-linked round-trip.
#30/#34
Integration history doc + temporary proof endpoint cleaned up.
note
Per the 6/2 Coda pivot, Zep is superseded by Mem0 (Scope 2). Shipped Zep code stays in dev for now.
Gated / paused / deferred
#44–49
Scope 2 — Mem0 client, login provisioning, backfill, retrieve/write, ep 8497 swap. awaiting go
#50
Scope 3 — document how every chat works in Mintlify. awaiting go
#51/#52
Scope 4/5 — Meeting Prep multi-turn · How I Know X. paused
#55
9 pre-existing tsc errors on the branch — predate this work; Robert/Charles scope call.
One open item — backend, not frontend
#39 modify→new-row is frontend-complete and server-confirmed end-to-end, but the new row never renders cards. Live 6/4: Submit on suggestion 245 minted row 1718 (start-outcome 200 → submit-request-meta 200), and the find-investors dispatch reached the server (/openui05/dispatch ep 8497 200 + /openui05/find-investors ep 8491 200).
But row 1718 stays processing / outcome_suggestion_count:0 at +285s (find_investors completes in ~74s — stuck, not slow). The dispatch returns 200 yet its results are never written back as outcome_suggestions + a status flip — the M10 backend lifecycle automation gap that affects every row. Charles/Mark backend territory. F1's actual subject (new ROW on resubmit, history preserved) is done.
Live dogfood proof
click any image to open full size · captured 2026-06-04 against pnpm dev, authed session
Cosmetics & composer (C1–C4)
#38 #40 #42 #53 Clean Outcomes composer — bars waveform glyph, mic + chevron device dropdown, + attach, no word/char counter.#53 (C4) Mic chevron dropdown open on the Outcomes reference surface — lists real input devices (System default ✓ · Microphone 1).#24 Show Options reveal → full outcome-type tile grid; toggle flips to "Hide Options" with a second close at the grid foot.#41 #38 Genuine status:"suggestion" row (245) — editable rail: Outcome Summary fills the column, Results count, Deliver picker, tonal Submit.
Flask levers — demo-clean off, tooling on
#62 — flask OFF Default surface: the "Active dispatch levers" mirror is absent.#62 — flask ON Flask opened → the dispatch-lever mirror appears for Mark to tune.#64 — flask OFF The Modify tab is gone with the flask off — no empty tab shell. The fix this report's commit landed.#25 #43 The Context Inspector (flask) open — confirms full context loaded: You/company YAML, master_person_id, result count, delivery format.
#39 — Modify → new row, fired live
#39 — before The pre-Submit editable rail on completed suggestion 245 ("Identify ideal VCs", find_investors).#39 — toast "Outcome submitted — Orbiter is on it." Rail resets to clean compose; new row 1718 minted (start-outcome 200 → submit-request-meta 200).#39 — original intact Re-opening 245 post-Submit: summary still 379 chars, all 6 VC cards — original deselected, never mutated.#39 — second run Second authorized live run — captured new-row id 1718 + server-side dispatch 200s. 245 still in SUGGESTIONS with badge-6.
Draft restore (F2 / #57 / #63)
#57 / F2 Clicking a status:"draft" row replays the conversation end-to-end + shows the editable draft fork (Submit, no read-only lock, no Modify tab).#57 / #58 Real-history draft (1713) replays its turns into the chat — proves conversation history is hydrated, not blanked.#63 Legacy empty draft (1657, no stored conversation) auto-resumes from its stored query rather than dead-ending.#61 Real-click switch 245 → 246 with no welcome/main-page flash on the center canvas.
Leverage Loops parity + welcome hero
LL Leverage Loops mode=create PersonPicker entry — the fork composer reuses the shared QueryInput.#56 The LL fork composer with mic chevron dropdown open — same waveform glyph, mic, device picker, and attach as Outcomes.#60 — collapsed Welcome hero with Show Options collapsed — top of the hero no longer clipped.#60 — expanded Expanded state — hero header stays fully visible above the options grid.
Read-only fork & the one P2 finding (documented, not fixed)
read-only fork A status:null saved row (568) renders the read-only Outcome Summary — confirming the editable fork is gated on status==="suggestion", not merely on having a saved row. Complements the editable rail (245) shown above.LL rail — clean A Leverage Loop suggestion renders a clean synthesized summary in the right rail.LL rail — archive, clean The Seth Rogen archive loop in the same section also renders a clean synthesized summary.P2 — per-row data variance One legacy "Costa Rica" loop persists its raw transcriptRef as its stored summary (1000-char-capped). Same section, different stored data → per-row variance, not a frontend rule. Charles's rail lane; legacy-data-only; not a live-flow regression.