Files
stack/docs/plans/reviews/2026-09-08_publication-trial-recovery-verdict.md
T

6.6 KiB
Raw Blame History

PUB-REC-FILBERT-RECOVERY-1 — independent recovery-evidence verdict

Reviewer: Filbert (independent). Worker evidence: Rocko. Coordinator and curated derivative: Darkwing. Trial #1497.

Independence: no authorship or review role in the checkpoint, inventory, restart, or summary; no conflict. This verdict is not the final launcher code review and not Jason's trial acceptance.

Verdicts

  1. Bounded planned-checkpoint recovery criterion (a useful development assignment survives one planned participating-agent restart without the owner reconstructing its briefing): SUPPORTED, with the inference and observation limits recorded below.
  2. Publishing the curated privacy-safe summary docs/plans/reviews/2026-09-08_publication-trial-recovery-summary.md: APPROVED as reviewed, under the conditions in the last section.

Admission and integrity

Snapshot /tmp/pub-rec-recovery-review-4em3lt1p: SHA256SUMS hashes to the declared b52a621551c9e6390a2ed3bb4d80431acd81e897b90660e60798d33767b0b5b1; all ten files verify; path set exact; snapshot read-only and left unchanged. Review was reading and hashing only: no launcher/test execution (the reserved action was not rerun as a substitute for historical evidence), no private runtime/pane/transcript reads, no hosted session links followed.

Independently verified facts

  • Hash continuity, recomputed by me inside the snapshot: trial plan ab908308…, task af673b60…, checkpoint 30c4e190…, inventory 51536b1d…, recovery full record df77133d…, reserved test 13c32cad…, launcher b65566e1…. All match every place they are quoted (checkpoint sections 1/3, readiness admission, recovery sections 1/3, summary identities).
  • The announced pre-send recovery hash 52778f1a… reproduces exactly as the byte prefix ending immediately before the appended delivery paragraph in section 6. The summary's prefix-claim is literally true, not rhetorical.
  • The reserved action was declared before the restart and unexecuted at restart time: the checkpoint reserves node --test scripts/test-rocko-launch.mjs, and the operator restart receipt independently records the recovery artifact absent and no execution inferred; the coordinator readiness record confirms the test was read but not run before restart.
  • The reserved test is genuinely isolated: I read scripts/test-rocko-launch.mjs in full. It builds a mkdtemp root, copies only agents/rocko, writes fixture contracts/AGENTS/USER and a stub common.sh, fronts PATH with a fake capture-only claude, drives the launcher under script(1), and removes the temp root in finally. It never reads real config, the data root, the checkout's .pi/state, or a model. One test function, matching the recorded # tests 1.
  • The recovery record's verbatim output (1 pass, 0 fail, exit 0, empty stderr, reporter prefix) is internally consistent with Node 26's reporter and the checkpoint's declared expectation; the record correctly classifies the -versus-# difference as formatting, not a count deviation.
  • The curated summary contains no runtime identifiers: no session UUID, hosted link, socket name, or launch-receipt name (scanned). Its hashes-without-contents approach is the right privacy shape.

Reported facts, correctly not overstated

  • The restart and neutral continue are owner-reported (done per the operator receipt); the coordinator supplied no reconstructed briefing and did not read private state. I did not observe the process.
  • Resume mode is inferred from retained context (same hosted link and prior conversation); launcher stdout is unobservable from inside the resumed process, and post-restart private-state reads were correctly not performed to confirm it. Normal-resume failure: none reported; no assisted recovery used.
  • One execution is the worker's recorded run count, not a runtime-enforced invariant; exactly-once is unobserved. Worktree preservation (HEAD unchanged, index empty, only two new untracked task records, no tracked change) is worker-reported with coordinator-side hash agreement; the summary already refuses to call it a literally unchanged worktree claim.
  • Single planned trial: no crash-recovery, reliability-rate, incarnation-authentication, or orchestration guarantee is claimed, and none may be inferred.

Procedural deviations and their handling (preserved, not erased)

  • Appended hash receipts: both the checkpoint and the recovery record append delivery paragraphs after announcing pre-send hashes; both record pre- and post-send identities explicitly, and the checkpoint carries an appended timestamp correction (send ~18:45 UTC, not 18:53) rather than a rewrite. Handled honestly.
  • Stale A9 statement: the checkpoint's conflict-check paragraph says the inspector package "awaits owner acceptance"; the coordinator ruled that stale (A9 already accepted) rather than an open gate. The stale sentence remains in the raw record with the correction beside it; the derivative does not propagate it.
  • Own-session metadata reads: before restart the worker read its own session pointer, launch-receipt directory name, and hosted link, which a literal "no private state" reading would exclude. The inventory discloses it, the coordinator ruling preserves the honest qualification, and the summary scopes its no-private-read claim to after restart, which is accurate.
  • Registration delegation: the worker followed its three-artifact write boundary and did not append to SESSIONS/BUILD-LOG; the coordinator took registration ownership by ruling. A deviation from the root AGENTS.md default, resolved explicitly rather than silently.

The curated summary accurately reflects the raw evidence on every point I could check, and its limits paragraph matches my own findings. Omissions (checkpoint pre-send hash evolution, A9 note, registration detail) are simplifications that do not misstate anything and remain available in the preserved local raw records.

Conditions

  1. Publish the curated summary byte-as-reviewed, SHA-256 0e17757cfd3af3bfd3003957550d78c37d32c2b11c75c2b10c76fb9bb5a28a07; any edit requires re-review. The raw recovery record (df77133d…) is evidence, not a publication unit.
  2. Raw checkpoint/inventory/recovery records stay local pending privacy handling; they contain runtime identifiers and are not publication candidates.
  3. Present the outcome as one bounded planned-checkpoint recovery, not trial acceptance, not crash recovery, and not a reliability claim; the final launcher candidate review and Jason's overall trial acceptance remain separate gates.

Evidence: frozen snapshot above; all checks offline and read-only. No git operations, source edits, live-seat mutation, or operator actions performed.