diff --git a/persistent-memory.md b/persistent-memory.md index d462cf6..0922105 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -1,6 +1,6 @@ # Persistent memory — ratatoskr -_Last updated: 2026-07-01_ +_Last updated: 2026-07-02_ This file captures durable intent and supporting evidence (goals, decisions, foot-gun warnings, in-flight state) across context resets. Read it at session @@ -39,7 +39,7 @@ upstream API key stays server-side (INV-003). ## Current state / in-flight -_As of 2026-07-01:_ +_As of 2026-07-02:_ **LATEST — SINDRA AFFECT/MEMORY INVESTIGATION COMPLETE; FOUR upstream items driven from the persistence side (the consumer/provider thesis at full tilt).** A ~40-turn controlled probe of Sindra's affect + a @@ -54,14 +54,29 @@ own "asymmetry" over-claim to "both-sides-compressed" mid-probe. confidence, no #296 subject-inversion). (3) **Salience scorer non-discriminating** (zero-shot-LLM-self-rating: 51/56 chunks at 0.9-1.0; a throwaway "17×23?" scored 1.0 tied with a real fact) + recall-utility untracked (`access_tally`=0) → -**Worldtree #335** (code fix, deferred) + **brokkr-smithy-dev R-target proposal** (scoring+eval -methodology, `01KWGM970H…`, awaiting) + ratatoskr eval-instrument offer. -(4) **relation_context coherence FIXED** — my earlier flag → Worldtree **Wave-0 IMPLEMENTED** (v1.0.0b5). -**INCOMING consumer-surface change (Wave-0, pending WT deploy):** emitted `relation_context` expands from -static "stranger" → monotonic ladder **{stranger, instrumental, mixed, expressive}** (WIRE-ONLY — -relation_edge/1 schema UNCHANGED, no version bump). **ratatoskr needs NO change** (pane renders it -value-agnostically; the canonical directive keys on context=user + trust/warmth/agency bands, not the -enum) — just expect the 4 enum values. worldtree-dev pings on deploy; confirm the render then. +**Worldtree #335** (code fix, deferred) + **brokkr R28 OPEN** — pre-scope panel reframed it to +**PROMOTION-WORTHINESS** (durable value) NOT salience (momentary attention: "17×23" genuinely IS salient +→ recalibrating gives a well-calibrated WRONG answer); unit = set-selection-under-budget, eval = +outcome-aligned (recall@budget). **ratatoskr delivered the P00 injection-corpus** +(`docs/diagnostics/r28-p00-injection-corpus.json` — 24 self-labeling items × 3 strata: admission-traps / +ranked priority-traps / calibration-control) + baked 2 run-validity pins (absent≠dropped without a +GUARANTEED promotion pass; fresh agent+end_user per run vs server-side dedup). **Standing by to RUN the +eval** once brokkr pins per-stratum N + the decision rule (gated on worldtree-dev's pipeline answer [does +salience feed priority/eviction?] + a dwarf pass). Key structural finding: salience gates PROMOTION not +RECALL-ranking (our search is cosine-only) → bad salience = storage bloat, not bad recall. +(4) **relation_context coherence FIXED + the whole RELATIONAL-DYNAMICS ARC is now LIVE on demo (v1.0.0b9).** +My flag → Worldtree #319/#320 Waves 0/1/2, deployed to demo (run 551 green). Now live on the wire ratatoskr +persists (relation_edge/1 schema UNCHANGED — all within existing fields; drift-pin + vendored canon +unaffected): **relation_context** varies on the Hwang ladder {stranger, instrumental, mixed, expressive} + +now DEMOTES/RUPTURES (Wave-2B); **other_stance** (0,0)→live (the user's displayed warmth/agency); +**agency** 0→live (pulled toward the COMPLEMENT of the user's dominance, Wave-2A) — which **shifts our +canonical directive render once agency crosses the canon ±0.2 deadband** (expected, non-breaking — we key +on the canon bands); **obligation_balance** None→人情 ledger {given,owed,currency,last_exchange} when tie is +"mixed" (given/owed stay 0, favor dynamics deferred). **ratatoskr needs NO code change** (renders all +value-agnostically; confirmed render-clean on the logic to worldtree-dev). **LIVE-CONFIRM PENDING:** our +Heimdall key is personal-`:8081`-ONLY (per-instance), so can't verify the varying values on demo — will +drive a turn + confirm the ladder/agency-clause render once PERSONAL picks up b9 (worldtree-dev pings). +Optional enhancement noted: surface `other_stance` (now a live signal, currently unrendered). **THE WEB SURFACE (`ratatoskr-web`, `:8765`) IS NOW THE OPERATOR'S PRIMARY DEBUG SURFACE, at full TUI pane parity + a rebuilt persona pane — `v0.19.5`.** The **persona/affect pane** was rebuilt: it read @@ -217,6 +232,9 @@ decision. Captures rationale that won't be obvious from code alone. - `[2026-07-01]` **relation_context coherence FIXED upstream (my flag → Worldtree Wave-0, IMPLEMENTED v1.0.0b5).** The static-"stranger"-next-to-high-trust incoherence the persona pane surfaced is now #319/#320 Wave-0. **Incoming consumer-surface change (pending WT deploy):** `relation_context` value expands "stranger" → monotonic ladder {stranger, instrumental, mixed, expressive} — WIRE-ONLY (relation_edge/1 schema unchanged, no version bump). **ratatoskr needs NO change** (pane value-agnostic; canonical directive doesn't key on the enum). agency stays 0 (Wave-2); other_stance is Wave-1 (in progress). - `[2026-07-01]` **Foot-gun (measurement, self-caught before flagging): establish the baseline before claiming a rate.** Nearly flagged "aggressive over-promotion (55 chunks / 7 turns)" to worldtree-dev — but the chunks spanned the whole 5-hour session (~1/turn), not 7 turns; I'd assumed memory.db was 0 immediately before the probe when it had been accumulating since the reset. Caught it via `created_at` spread before the flag went out. Also: the promoted corpus was the operator's ERP *test* content (wiped after each test) — not a privacy issue, but abstract test content out of any peer-shared diagnostic. +- `[2026-07-02]` **Salience finding matured into brokkr R28 (OPEN) — ratatoskr is the eval instrument.** brokkr-smithy-dev's pre-scope panel (3 dwarves + context-blind heid, 6/6) **reframed** the target: PROMOTION-WORTHINESS (durable value), NOT salience (momentary attention) — "17×23?" genuinely IS salient, so recalibrating salience yields a well-calibrated WRONG answer; the unit is SET-SELECTION under budget; eval must be OUTCOME-aligned (recall@budget / precision-at-rate), not discrimination-spread. Ties to prior art R15 (small-model memory write-policy → the granite pick) + R25 (worldtree-kb-quality). **ratatoskr delivered the P00 stratified injection-corpus** (`docs/diagnostics/r28-p00-injection-corpus.json`, committed `4a35512`; 24 self-labeling synthetic items × 3 strata) + 2 persistence-side run-validity pins (absent≠dropped without a guaranteed promotion pass; fresh agent+end_user per run vs server-dedup). **Key architectural constraint I surfaced: ratatoskr is DOWNSTREAM of the promotion gate (sees only PROMOTED chunks), so I can give keep/drop OUTCOMES via injection but NOT the pre-admission shadow pool** — that's Worldtree instrumentation. Standing by to RUN the eval once brokkr pins per-stratum N + the decision rule (gated on worldtree-dev's pipeline answer + a dwarf pass on the Snorri rule). brokkr owns methodology + takes the pipeline questions to worldtree-dev direct; ratatoskr = eval instrument. [consumer/provider thesis → a research target] +- `[2026-07-02]` **Relational-dynamics arc LIVE on demo (Worldtree v1.0.0b9) — driven by MY relation_context flag.** #319/#320 Waves 0/1/2 deployed. On the wire we persist (schema UNCHANGED): relation_context varies+demotes/ruptures; other_stance + agency now live; agency going live SHIFTS our canonical directive render past the canon ±0.2 deadband (expected, non-breaking — we key on bands); obligation_balance → 人情 ledger when tie="mixed". **ratatoskr needs NO code change** (value-agnostic renders; confirmed render-clean to worldtree-dev). **Can't live-confirm yet — our Heimdall key is personal-`:8081`-only (per-instance), demo is out of reach; will drive+confirm once PERSONAL gets b9.** Optional follow-up: surface `other_stance` (newly live, unrendered). The consumer/provider thesis: one persona-pane finding drove a full 3-wave upstream arc to production. + _41 older entries (2026-05-* — the original debug-TUI/web build era) archived to archival-memory.md._ _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._