From 28dd516be1d3b301dbecccca32dd84041f82e583 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Tue, 1 Sep 2026 22:28:13 -0700 Subject: [PATCH] =?UTF-8?q?memory:=20snapshot=20=E2=80=94=203.2.0=20migrat?= =?UTF-8?q?ion=20complete,=20and=20a=20miss=20of=20my=20own=20worth=20keep?= =?UTF-8?q?ing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All four notified seats re-declared within about twelve minutes and the log went quiet. Five of five pane routes now carry the guard fields, and delivery is confirmed on a claude seat, a pi seat and a grok seat. Two findings survive the close-out. The herald's exclusion reason is false for the migration case -- every declaring process was alive and four days old with no pid wrap, and the real cause is simply that the route predates the fields the guard needs. And the uv trap stands as the thing most likely to bite the next person. The third is mine. I raised non-Claude pane delivery with forseti as an open risk on their release when forseti had personally measured it days earlier, on the exact seats in question, and the resulting matrix is what characterised the settle bug they fixed. The error was not caution, it was calling something open without checking whether it was already settled, with the peers who knew right in front of me. Recorded because "I don't know" and "this is an open risk" are different claims and I made the second when only the first was true. Still open with forseti: the uv --force runbook fix, an exclusion-message third branch, --discover-pid against a non-Claude process tree, the one-tick latency note, and status not being durable evidence. --- .../2026-09-01-althing-320-deploy.md | 95 +++++++++++++------ persistent-memory.md | 35 +++---- 2 files changed, 78 insertions(+), 52 deletions(-) diff --git a/persistent-memory.d/2026-09-01-althing-320-deploy.md b/persistent-memory.d/2026-09-01-althing-320-deploy.md index a759c9e..5106148 100644 --- a/persistent-memory.d/2026-09-01-althing-320-deploy.md +++ b/persistent-memory.d/2026-09-01-althing-320-deploy.md @@ -106,43 +106,76 @@ confirming it is up."** Both waiters reported `push`/`reachable` immediately aft - **Do not loop on re-arming.** Two kills is the pattern; declare a pane route instead. Raised both consequences with forseti on the deploy thread. -## ⚠ THE FOUR REVOKED ROUTES — the herald's stated reason is FALSE, and all four are non-Claude +## ✅ MIGRATION COMPLETE — 5/5 pane routes pinned by 22:26, all four re-declared in ~12 min -Operator directed notification (2026-09-01); all four told individually with their own pid, -pane and start time. Measured **before** writing, which is what turned up both findings: +Operator directed notification; all four told individually with their own measured pid, pane +and start time. Every one re-declared within ~12 minutes and needed no help beyond the +pre-filled pid. - handle pid declaring proc started alive running - bil-smithy-dev 98493 Aug 28 10:33:02 4d11h kimi - dvalin-smithy-dev 96050 Aug 28 10:29:26 4d11h grok - eitri-smithy-dev 103662 Aug 28 10:39:30 4d11h codex - regin-smithy-dev 96864 Aug 28 10:30:59 4d11h pi + handle pid started_at command status + bil-smithy-dev 98493 1713267 kimi push, poked via pane + dvalin-smithy-dev 96050 1691681 grok push + eitri-smithy-dev 103662 1752089 node/codex push + regin-smithy-dev 96864 1700952 pi push, poked via pane + infra-ops 2175612 38608652 claude push, poked via pane -**FINDING 1 — the exclusion message misdescribes the migration case.** The herald says *"the -process that declared this route is gone, or its pid was reused by something that started at a -different time."* **Neither disjunct is true for any of the four.** Each declaring process -started 1-3 min *before* its route was written and is still running four days later; `pid_max` -is 4,194,304 against a current ~2.86M, so the counter has not wrapped and there is no reuse to -suspect. The real reason is a third one the message never offers: **the route predates the -guard fields, so identity cannot be verified and the herald declines.** Correct behaviour, -wrong explanation — and it sends a debugger hunting a dead agent that is alive. Raised with -forseti with a suggested third branch. ⚠ **Do not trust that log line at face value.** +Zero stale routes; last exclusion line 22:25:01, everything after is `poked via pane`. -**FINDING 2 — all four seats are non-Claude CLIs** (`kimi`, `grok`, `codex`, `pi`), and the -pane poke is designed around Claude Code: it types a line into the pane and presses Enter. -Two things unverified, both raised with forseti and stated plainly to the four rather than -papered over: +## ⚠ FINDING — the herald's exclusion reason is FALSE for the migration case -- **Does `--discover-pid` recognise a non-Claude process tree?** It walked to `claude` - correctly for infra-ops. Unknown for a `codex` or `pi` tree. Sidestepped by handing each - agent their measured pid (`althing-route declare --pid `) — but a fresh agent following - the skill reaches for `--discover-pid` first. -- **What does a pane poke do to a non-Claude TUI?** Might be input; might be a keystroke the - TUI did not expect. Each was offered the choice: re-declare and treat the first poke as a - test (reporting anything odd + `althing-route release`), or stay pull-only until forseti - confirms. Not decided for them. +The herald logs *"the process that declared this route is gone, or its pid was reused by +something that started at a different time."* **Neither disjunct was true for any of the +four.** Measured before notifying: each declaring process started 1-3 min *before* its route +was written and was still running four days later; `pid_max` 4,194,304 against a current +~2.86M, so no wrap and no reuse to suspect. bil-smithy-dev independently confirmed it against +pid 98493. -⚠ If non-Claude seats are out of scope for the pane path, that belongs in the skill — those -four are exactly the seats the migration moved off the waiter path. +Real cause is a third branch the message never offers: **the route predates the guard fields, +so identity cannot be verified and the herald declines.** Right behaviour, wrong explanation — +it sends a debugger hunting a dead agent that is alive and healthy. ⚠ **Do not trust that log +line at face value.** Raised with forseti with a suggested third branch. + +## ⚠ MY MISS — I called an open risk on something the release author had already measured + +I flagged "what does a pane poke do to a non-Claude TUI?" to forseti as an **open risk on the +release**. It was never open: **forseti's own Aug 28 submit-byte and race probes were pane +pokes typed into the kimi seat**, with a characterised matrix (LF fires the turn, delayed pokes +split, no-delay bursts coalesce) that is what identified the settle bug they then fixed. regin +had also smoke-tested 3.0.3 on the `pi` seat. + +**The failure was not caution — it was not checking whether the thing was already settled +before calling it open**, with the peers who knew right in front of me. This is exactly the +ignorance-of-context category in the cross-frontier triage discipline, pointed inward: a +"you missed X" claim from someone who had not checked what the other party already read. +⚠ **"I don't know" and "this is an open risk on the release" are different claims.** Saying the +first was honest; asserting the second was not warranted. Retracted with forseti and with all +three seats. → [[feedback_canonical_sourced_values]] + +## Verified: pane delivery works on Claude AND non-Claude seats + +- **infra-ops** (`claude`) — `poked infra-ops on nh3-dev via pane (rung 0)`, landed as own turns. +- **regin-smithy-dev** (`pi`) — first **3.2.0-era** typed-Enter poke, reported by the seat: + own turn, `[ALTHING-HERALD]` prefix, nothing batched, no interference. +- **dvalin-smithy-dev** (`grok`) — pre-3.2.0 pokes landed as own submitted turns, no leftover + unsubmitted text. + +## ⚠ ONE-TICK LATENCY LOOKS LIKE FAILURE + +`postbox status` immediately after `althing-route declare` still reports `mode: pull` until the +herald ticks (~26 s). Two of four hit it. regin's framing: *"one tick of latency, not a +failure, in case anyone else reports it as one."* Asked forseti for a line in the skill. + +## Open with forseti (nothing blocking) + +1. `uv tool install .` runbook fix (`--force`) — the one that would bite the next person. +2. Exclusion-message third branch. +3. **`--discover-pid` against a non-Claude process tree is still untested** — all four used the + explicit `--pid`, so the ancestry walk has never met a codex/pi/kimi/grok tree. +4. One-tick-latency note in the skill. +5. `postbox status` push/reachable is not durable evidence. + +**Withdrawn:** non-Claude delivery risk (was forseti's own prior work). +**Moot:** log back-off — zero stale routes, the log went quiet on its own. ## Rollback (unused) diff --git a/persistent-memory.md b/persistent-memory.md index f17a48a..33114d0 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -135,27 +135,20 @@ _As of 2026-09-01 — **the GX10 is on the operator's desk, NOT racked. Standing instead**, which is the power answer rather than a power triage. Do not relaunch on ana-ml2 without deciding that first. Exactly TWO 3c launches, only one died. → `persistent-memory.d/2026-08-27-run3c-launch-count-reconstruction.md` -- **🟢 ALTHING 3.2.0 DEPLOYED on nh3-dev (2026-09-01 22:13).** forseti authored, infra-ops - deployed: `uv tool install --force .` (3.1.2 -> 3.2.0, **7** binaries — `althing-route` is - the new one the SessionStart hook calls by name), herald restart, skill sync. Pane-poking - replaces detached waiters because **CC 2.1.257 reaps detached tasks when the seat sits in - `shell`** — corroborated by our own waiter dying with status `killed` 30 min earlier. - ⚠ **`uv tool install .` is a SILENT NO-OP on reinstall** — uv matches the source *spec*, not - its contents; exits 0 having done nothing. **Always `--force` from a local path.** - ⚠ 4 pane routes revoked by the new guards (bil-/dvalin-/eitri-/regin-smithy-dev); they - re-declare with `althing-route declare --pid `. **All four notified individually - 2026-09-01 on operator direction.** ⚠ Two findings from measuring first: the herald's - exclusion reason ("process gone, or pid reused") is **FALSE for the migration case** — all - four declaring processes are alive 4 days, no pid wrap; the real cause is the route - predating the guard fields. And **all four seats are non-Claude CLIs** (kimi/grok/codex/pi) - while the pane poke types into a Claude Code pane — `--discover-pid` and poke behaviour - against a non-Claude TUI are both UNVERIFIED. Both raised with forseti. - ⚠ **infra-ops now runs on a PANE ROUTE, not a waiter** (`althing-route declare - --discover-pid` — walks to the long-lived `claude` pid, never `$$`). The reap killed our - `althing-listen` **twice in one session, the second within minutes of arming**, each time - after it had reported `push`/`reachable`. **A green `postbox status` is not durable evidence - of monitoring, and re-arming in a loop is not a fix.** - → `persistent-memory.d/2026-09-01-althing-320-deploy.md` +- **🟢 ALTHING 3.2.0 DEPLOYED + MIGRATION COMPLETE on nh3-dev (2026-09-01 22:13-22:26).** + forseti authored, infra-ops deployed; **5/5 pane routes pinned**, all four affected seats + re-declared within ~12 min of individual notice, log clean. Pane-poking replaces detached + waiters because **CC 2.1.257 reaps detached tasks when the seat sits in `shell`**. + ⚠ **`uv tool install .` is a SILENT NO-OP on reinstall** — matches the source *spec*, not + contents; exits 0 having done nothing. **Always `--force` from a local path.** + ⚠ **The herald's exclusion reason ("process gone, or pid reused") is FALSE for the migration + case** — all four declaring processes were alive 4 days, no pid wrap; real cause is the route + predating the guard fields. Don't debug a dead agent that isn't. + ⚠ **My miss:** I called non-Claude pane delivery an "open risk" when forseti had personally + measured it on Aug 28 — didn't check whether it was already settled before calling it open. + Delivery now confirmed on `claude`, `pi` and `grok` seats. + ⚠ One-tick latency after `declare` reads as failure; `--discover-pid` on a non-Claude process + tree remains untested. → `persistent-memory.d/2026-09-01-althing-320-deploy.md` - **✅ A6000 window CLOSED 2026-09-01 — operator freed ComfyUI's VRAM instead of anyone stopping it.** ⚠ It was a **model unload, not a stop**: `comfyui` still up 8 days, same pid, HTTP 200, 18,500 -> 612 MiB. ⚠ **The resulting ~43.8 GB free is a snapshot, not a floor** —