diff --git a/persistent-memory.md b/persistent-memory.md index c312d33..ca9e652 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -1,6 +1,6 @@ # Persistent memory — eshpfi-management -_Last updated: 2026-09-21 ~16:45 PT (⭐ **the ops log is BUILT** and then failed four ways in its first hours — every one recording something unfindable; the day's subject was instruments that report without looking. ⭐ Draupnir engine COMPLETE and acceptance-tested on irv-ml1. ⭐ Booth gained blur + a closed keep round trip after shipping two dead controls. ⭐ claude-bot is an org Owner; cicada+draupnir moved to `pfi`; vh-token use standing-authorized from the vault. ⭐ nh3-dev 84%→72%, and a LoRA adapter rescued from a 3-day-swept /tmp. ⭐⭐⭐ lv-mccarthy SHIPPED (ckpt300, fourth voice on the seat) — memorisation identical to the author, voice best-of-five, at a cost of 35% out-of-band generations; the two-epoch recipe is 0 for 3 with the loss curve CONFIDENTLY wrong; I held the ship three times and only the first hold was right; and every voice on the seat has been emitting empty tags since 2026-09-16.)_ +_Last updated: 2026-09-21 ~21:05 PT (⭐ **the ops log is BUILT** and then failed four ways in its first hours — every one recording something unfindable; the day's subject was instruments that report without looking. ⭐ Draupnir engine COMPLETE and acceptance-tested on irv-ml1. ⭐ Booth gained blur + a closed keep round trip after shipping two dead controls. ⭐ claude-bot is an org Owner; cicada+draupnir moved to `pfi`; vh-token use standing-authorized from the vault. ⭐ nh3-dev 84%→72%, and a LoRA adapter rescued from a 3-day-swept /tmp. ⭐⭐⭐ lv-mccarthy SHIPPED (ckpt300, fourth voice on the seat) — memorisation identical to the author, voice best-of-five, at a cost of 35% out-of-band generations; the two-epoch recipe is 0 for 3 with the loss curve CONFIDENTLY wrong; I held the ship three times and only the first hold was right; and every voice on the seat has been emitting empty tags since 2026-09-16.)_ > **Always check for `/tmp/infra-ops-handoff.md`** — if it exists and its > `Written:` stamp is under **8 hours** old, read it (it carries the in-flight @@ -115,51 +115,49 @@ no longer deployed sidecars here. See Recent decisions.) ## Current state / in-flight -_As of 2026-09-21 ~16:40 PT._ +_As of 2026-09-21 ~21:05 PT._ -### ✅ lv-mccarthy SHIPPED 2026-09-21 — ckpt300 live on voices-seat as the fourth voice +### NEXT UP — the Booth (`services/booth`) -The run was complete all along (2026-09-18 00:49 PT) — three days of "unverified" -was a reporting gap, not a failure. The v2 gate has now RUN, 720 generations, and -both candidates are **disqualified by axis C**. Full record: -`persistent-memory.d/2026-09-21-lv-mccarthy-gate.md`. ⚠ `pfi-gx10` does not -resolve from nh3-dev by name — it is **10.100.50.60**. +The operator is moving to Booth work this session. Nothing is specified yet; ask +what they want rather than assuming from the backlog below. Context worth having +before the first question: -**The shape of it:** voice PASSES on both candidates and both reads (ckpt450 at -2.9× its floor, and ~3/4 of the gain survives having every punctuation mark -stripped, so it is not the cheap win). Memorisation on **ckpt450 is the cleanest -result in the line** — 0.12 against the author's own held-out 0.12, longest match -11 words against the author's coincidental 12, all 96 matches read and every one -stock grammar. **Damage is the blocker**: 20% (ckpt450) / 28% (ckpt900) of -generations overshoot the 90–140 band against base's 1%, worst case a degenerate -`he looked at X and he looked at Y` loop at 279 words. +- **What it is:** ephemeral media board on nh3-dev, `http://10.100.10.50:8090`, + drop a folder in `~/booth-data`, 24 h TTL, A/B renders. `booth link ""` + is the fleet link-board every session is told to post operator-facing links to. +- ⚠ **Its last two sessions each shipped a control that did nothing** — a reveal + handler Jinja discarded for sitting after `{% endblock %}`, and a `×` a sibling + form covered by 30×22 px. **Both were found by the operator, not by me, because + I read templates instead of rendering them.** `scripts/layout-probe.py` exists + now and took four iterations to become trustworthy — use it. + → `persistent-memory.d/2026-09-21-booth-two-dead-controls.md` +- The ASKS primitive (`booth ask|asks|answer --wait`) and inline asks-in-a-custom- + report are both live; see the 2026-09-09 decisions. -**SUPERSEDED by the five-arm round — read the record, not this summary's first -draft.** Two more arms were gated after the frozen axis C was proven -**arithmetically unsatisfiable** (a perfect adapter fails it by 0.09), and the -governing rule reverted to the operator's own ratified v2 (ran-on only, 2026-09-15). +### ✅ lv-mccarthy SHIPPED — ckpt300 is the fourth voice on `voices-seat` -**⭐ ckpt300 (epoch 0.652) is the best arm on every axis**: voice +0.177 at **3.2×** -its floor (and +0.128 at 2.8× with all punctuation stripped) — best point estimate -AND best margin; memorisation **0.12 against real unseen McCarthy's own 0.12**, max -10 against the author's coincidental 12, all 31 matches read and all stock; and the -**least overshoot of any checkpoint**. +Live on fv-ml1 GPU0 `:8027` as `lv-mccarthy`, verified by read-back: seat healthy, +five models, GPU0 96,012 MiB (a LoRA costs nothing beside the existing seat), live +smoke 96 words / 0 quote marks / `wasnt`, other three voices unregressed. Full +record and every number: `persistent-memory.d/2026-09-21-lv-mccarthy-gate.md`. +⚠ `pfi-gx10` does not resolve from nh3-dev by name — it is **10.100.50.60**. -**It is NOT shipped for one reason: `ran-on` +0.12 against a bar of 0.100 that I set -myself.** It clears the operator's ratified 0.200 floor with 40% headroom. The bar's -*number* excludes it; the bar's *stated rationale* — written against ckpt450's pass -by 0.01 — does not. **That is an operator call and the only thing standing between -this adapter and the voices seat.** +**Two things carried forward, neither blocking:** -⚠ **Three claims from this session's earlier turns are REFUTED by the five-arm data** -and a next session should not carry them: the damage is NOT flat across epochs -(ran-on is non-monotonic, 0.38 → 0.13 → 0.20 → 0.28, minimum near epoch 0.65); -ckpt225 runs **long**, not short (48% out-of-band, worst arm in the run); and the -"gate an earlier checkpoint" recommendation was RIGHT — retracting it on a three-arm -read was the error. The retraction rested on **six generations of one arm**. - -⚠ **ckpt325/350/375 were deliberately NOT gated.** One may sit under 0.100. -Searching the checkpoint space until something clears the bar is candidate-shopping. +1. **The length cost is real and shipped documented, not fixed.** In-band 0.65 + against base's 0.89; **35% of generations miss the requested 90–140 band against + base's 11%.** No checkpoint choice fixes it — every adapted arm is 33–48% out. + **The open follow-up is a retrain targeting length (pair construction or the + length target), and the operator's steer was to fold it into Faulkner's pair + build rather than run it standalone**, since Faulkner is the measured next voice + and would otherwise inherit the same defect. +2. ⚠ **Check Skaldsong for the think-tag defect.** Every voice on the seat prefixes + an empty `` unless the caller sends + `chat_template_kwargs: {"enable_thinking": false}`. It is the Qwen3 chat + template, so it has affected lv-yarros/bronte/hemingway since 2026-09-16. No + gate number is affected; a caller that omits it gets 17 junk characters at the + head of every passage, and any word-count over that string counts tags as prose. ### Draupnir engine — COMPLETE on irv-ml1, acceptance passing @@ -180,7 +178,9 @@ the althing thread. its mechanism is still unexplained. - **Disk:** nh3-dev at 72%, 66 GB free after the 2026-09-21 triage. - **ops-log:** clean audit across 6 hosts; commit attribution working. -- **19 commits unpushed on main**, plus the memory changes from this snapshot. +- **main is PUSHED and clean** — operator confirmed 2026-09-22 ~04:00Z; `git rev-list + --count origin/main..HEAD` = 0, verified rather than assumed. + only the hook-generated `graphify-out/GRAPH_REPORT.md` is dirty. ### Open, low-urgency