From f533464c54391572a954223194fc96f0f2a8db39 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Thu, 18 Jun 2026 00:04:30 -0700 Subject: [PATCH] =?UTF-8?q?memory:=20snapshot=20=E2=80=94=20persona-pane?= =?UTF-8?q?=20reframe=20(worldtree-dev):=20persona=5Fstate=20GET=20is=20Ti?= =?UTF-8?q?er-1-only=20by=20ADR-0009=20(colon-404=20correct-by-design,=20n?= =?UTF-8?q?ot=20a=20stub);=20Tier-3=20affect=20is=20CLIENT-persisted=20?= =?UTF-8?q?=E2=80=94=20we=20already=20hold=20PAD/valence=20@=20:8390=20fro?= =?UTF-8?q?m=20affect.emit,=20so=20the=20pane=20is=20an=20OUR-side=20rende?= =?UTF-8?q?r=20via=20#17=20affect-binding=20(=E2=86=92=20affect.emit=20?= =?UTF-8?q?=E2=86=92=20:8390=20=E2=86=92=20render),=20NOT=20a=20WT=20endpo?= =?UTF-8?q?int=20wait.=20WT=20#289=20affect.fetch=20=3D=20optional=20media?= =?UTF-8?q?ted-read;=20#300=20=3D=20WT=20client-impl=20guide.=20Expands=20?= =?UTF-8?q?#17=20payoff:=20memory=20AND=20the=20persona=20pane.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- persistent-memory.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/persistent-memory.md b/persistent-memory.md index 263f0f3..e5fb8ba 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -79,7 +79,8 @@ to `:8391`/`:8390` (#17 unbuilt) → web chat = persona + debug only; no memory **NEXT (fresh context): #17 — bifrost-binding the chat client.** The single unblock for BOTH (a) memory persistence in the web/TUI/CLI chat (Sindra remembering in a real session, not just scripts) AND (b) feeding the persona pane -affect telemetry once WT ships Tier-3 persona_state. Contract `docs/contracts/issues/17.contract.md` is WRITTEN + +from OUR `:8390` affect store — `affect.emit` PAD/valence, ours to render per ADR-0009 (NOT a WT persona_state to +wait for; see the reframe in Recent decisions). Contract `docs/contracts/issues/17.contract.md` is WRITTEN + Heid-reviewed + drift-clean; **TDD is the next step** — slice 1 = the `create_session` bifrost-binding primitive (consumer-key per-request bearer + missing-key precondition + 502→`BifrostHandshakeFailed`, respx-mocked), then `endpoint_for_plane` → dispatch-layer op-feed → CLI/TUI/web triggers → live smoke. althing monitor armed. @@ -265,7 +266,7 @@ decision. Captures rationale that won't be obvious from code alone. - `[2026-06-18]` **FULL-COVERAGE proof — verbose-persona memory works under Stage 2 (v0.36.0).** Re-smoked `ratatoskr:sindra-probe` (sindra's theatrical prompt; FRESH agent + end_user `verbose-v2` to dodge the WT promotion-dedup): the high-volume turn promoted the user fact CLEANLY (not a meta-description) and cold-recalled @ 0.694. Confirms `:8081` is on v0.36.0 and closes the verbose-persona caveat end-to-end. Then started `ratatoskr-web` (`:8765`, consumer key, `ratatoskr:sindra` in the picker) for the operator's Sindra session — **persona + debug only; the web client does NOT bind to `:8391` (#17 unbuilt), so no memory persistence in the web chat** (memory-enabled chat is the #17 build, or a manual bound session). -- `[2026-06-18]` **Tier-3 persona_state is a Worldtree limitation (not ours); sindra → thoughtful-character.** The web Persona-pane 404 ("persona not available") = `persona_state` hard-404s ALL Tier-3 (colon-id) agents by design (`api.py:1220`); a persona block in the define doesn't help (endpoint short-circuits before the row). Pinged worldtree-dev on the Tier-3 persona_state roadmap (thread `01KVCR6P…`) + de-uglied our web pane (`index.html loadPersona`) to render a clear message (v0.17.7). Separately switched `ratatoskr:sindra` to the `thoughtful-character` role (→ `mistral-small-4-reasoning`) via DELETE+redefine (kept her prompt; added an inert persona block — inert because the pane's 404 is endpoint-side + we don't bind affect). Tier-3 persona/affect observability is gated on BOTH WT shipping Tier-3 persona_state AND our #17 affect-binding. +- `[2026-06-18]` **Tier-3 persona_state is a Worldtree limitation (not ours); sindra → thoughtful-character.** The web Persona-pane 404 ("persona not available") = `persona_state` hard-404s ALL Tier-3 (colon-id) agents by design (`api.py:1220`); a persona block in the define doesn't help (endpoint short-circuits before the row). Pinged worldtree-dev on the Tier-3 persona_state roadmap (thread `01KVCR6P…`) + de-uglied our web pane (`index.html loadPersona`) to render a clear message (v0.17.7). Separately switched `ratatoskr:sindra` to the `thoughtful-character` role (→ `mistral-small-4-reasoning`) via DELETE+redefine (kept her prompt; added an inert persona block). **REFRAME (worldtree-dev `01KVCRK9…`):** persona_state GET is **Tier-1-only by ADR-0009**, the colon-id 404 is correct-by-design (NOT a stub to wait for). Tier-3 affect is **CLIENT-persisted** — we ALREADY hold the PAD `{pleasure,arousal,dominance}` + valence at `:8390` from the `affect.emit` payload. So the Persona-pane fix is **OUR side**: #17 affect-binding → WT dispatches `affect.emit` → `:8390` → the web pane renders PAD/valence from our own store. WT #289 (`affect.fetch`/`affect:read`) = optional mediated-read (their intelligence over our raw store), NOT a prerequisite. WT #300 = their forthcoming v1 client-impl guide (who-owns-what), folding in this exact case. _For per-issue TDD implementation notes, Volva findings, and contract amendments, see the git log — every per-issue commit carries a structured message capturing the trail._