From 327920afd14eeb5608f7c86e471d6ceccb5d945f Mon Sep 17 00:00:00 2001 From: Jonathan Borduas Date: Tue, 8 Sep 2026 02:47:56 +0100 Subject: [PATCH 1/2] handoff: #582's shell and gh traps, split by whether they reproduce HERE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #582 relayed 24 defects from a 20-hour session on another estate. §B (shell) and §C (gh) are estate-independent — 14 items that cost a pane here the same. Six were already in this tree (B1 B2 B3 B5 C5 C6, measured); the rest are now recorded, split by REPRODUCTION rather than by plausibility. ✅ REPRODUCED HERE, with the command: C7 `gh api … | head -c N` truncates via SIGPIPE. Measured: `head -c 120` gives JSONDecodeError "Unterminated string"; the same call written to a FILE parses, 9,318 bytes. ⇒ Write to a file, then read. B4a the harness caps a long call — this session produced 29 backgrounded-command outputs, every one a call that crossed the 120s ceiling. ⛔ REFUTED HERE, and it is the one my own harness notes assert: B4b "foreground `sleep` is blocked". Bare `sleep 2` returns rc 0, with `true` as the control. Relayed, tested, NOT reproduced — recorded as refuted rather than repeated. ⚠ RELAYED, not reproducible from this pane, and said so: C1 logs unavailable while a run is in_progress, even for a job that already failed C2 `gh run rerun --job` rejected while in_progress C4 `gh run rerun --failed` re-runs consumers but not provisioners Each needs a live in-progress run or an ephemeral-runner pool. I did not manufacture one and did not record them as verified. ⛔ FOREIGN, routed rather than filed: B6/B7 (two ruff versions; `check` and `format --check` are separate gates). Measured: no ruff.toml, no pyproject.toml in this repository — there is nothing here for them to be true of. ★ THE SPLIT IS THE POINT. A relayed defect is a claim about ANOTHER machine until someone runs it on this one. Two of six changed status under that test: C7 gained a reproduction with a command attached, and B4b was REFUTED — and B4b is the half my own harness documentation asserts. ⇒ Neither the source nor the local documentation is evidence; the run is. Co-Authored-By: Claude Opus 5 (1M context) --- docs/HANDOFF.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 205453d..4a465dc 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -147,6 +147,31 @@ lineage.** `bash scripts/gate-selftests.sh` reports `ran 6 subject(s)`; `SUBJ_DI ⇒ *The reproduction command is not the script name*, and a row citing the bare form measures a tenth of the population it claims to. +## ⚠ `gh` and harness traps relayed from #582 — which ones I could reproduce HERE + +#582 relayed 24 defects from a 20-hour session on another estate. **14 of them (§B shell, §C `gh`) +are estate-independent** and cost a pane here the same. Six were already recorded in this tree; the +rest are below, split by whether I could reproduce them from this pane rather than by whether they +sounded true. + +| | claim | reproduced here? | +|---|---|---| +| **C7** | `gh api … \| head -c N` truncates via SIGPIPE and yields "corrupt JSON" that is nothing of the sort | ✅ **YES.** `head -c 120` → `JSONDecodeError: Unterminated string`; the same call written to a FILE parses (9,318 bytes). ⇒ **Write to a file, then read.** | +| **B4a** | no clean wait primitive; a long `sleep` hits the harness ceiling | ✅ **YES** — this session produced **29** backgrounded-command outputs, every one a call that crossed the 120s cap | +| **B4b** | *"foreground `sleep` is blocked"* | ⛔ **NO.** Bare `sleep 2` returns **rc 0** here, with `true` as the control. **Relayed and not reproduced** — recorded as such rather than repeated | +| **C1** | run logs are unavailable while the run is `in_progress`, **even for a job that has already failed** — cost ~40 min of blocked diagnosis | ⚠ relayed; needs a live in-progress run with a failed sibling, which I cannot force | +| **C2** | `gh run rerun --job ` is rejected while the run is `in_progress` | ⚠ relayed, same reason | +| **C4** | `gh run rerun --failed` re-runs CONSUMERS but not PROVISIONERS | ⚠ relayed; no ephemeral-runner pool here to test against | + +⛔ **B6/B7 (two `ruff` versions; `check` and `format --check` are separate gates) are FOREIGN.** This +repository has no `ruff.toml` and no `pyproject.toml` — there is nothing here for them to be true of. +⇒ They belong to the estate that filed them. + +★ **THE SPLIT IS THE POINT.** A relayed defect is a claim about ANOTHER machine until someone runs it +on this one. Two of the six changed status under that test: C7 became a reproduction with a command +attached, and B4b became **refuted** — and B4b is the one my own harness notes assert. ⇒ *Neither +the source nor the local documentation is evidence; the run is.* + ## ⚠ Reading a pane's context % — the default `lines` does not reach it ⛔ **The only place this was written down was a QUARANTINED script.** #451 §1 recorded it as a From 00e0f31d5051d8f7107ceeb880d45161f8fa2ac7 Mon Sep 17 00:00:00 2001 From: Jonathan Borduas Date: Tue, 8 Sep 2026 02:55:13 +0100 Subject: [PATCH 2/2] =?UTF-8?q?handoff:=20date=20the=20reproductions=20and?= =?UTF-8?q?=20name=20each=20validator=20=E2=80=94=20the=20repo's=20own=20r?= =?UTF-8?q?ule,=20turned=20on=20me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review finding, quoting this repository's doctrine back at me: "a number without a date is a rumour, and without the validator its validation step establishes nothing." The three rows reported 9,318 bytes, 29 outputs, a 120s cap and rc 0 — with no instant and no command. ⇒ Every row now carries the UTC instant, the exact command, and its control: C7 gh api …/issues/1 | head -c 120 > f -> JSONDecodeError "Unterminated string starting at: line 1 column 87" ⛔ CONTROL: redirected to a file it parses, 9,318 bytes, issue #1 B4a ls …/tasks/*.output | wc -l -> 29 B4b sleep 2; echo $? -> 0 ⛔ CONTROL: true; echo $? -> 0, so the probe can report a success at all DECLINED — MD018 on `#582` at line start. Measured: 16 lines across 7 files in this repo already open with `#NNN` (docs/DEFECT-CLASSES.md 5, docs/HANDOFF.md 4, tools/README.md 2, three goals files, architect-sweeps). It is house style, and CommonMark requires a space after `#` for an ATX heading, so it renders as literal text and GitHub auto-links it. Rewriting one of seventeen makes the file less consistent, not more. Co-Authored-By: Claude Opus 5 (1M context) --- docs/HANDOFF.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 4a465dc..76bc398 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -154,11 +154,14 @@ are estate-independent** and cost a pane here the same. Six were already recorde rest are below, split by whether I could reproduce them from this pane rather than by whether they sounded true. -| | claim | reproduced here? | +**All rows measured 2026-09-08 01:54Z**, on this machine, by the command in the row. ⚠ A number without a date +is a rumour and a verdict without its validator establishes nothing — so each carries both. + +| | claim | reproduced here? — with the command | |---|---|---| -| **C7** | `gh api … \| head -c N` truncates via SIGPIPE and yields "corrupt JSON" that is nothing of the sort | ✅ **YES.** `head -c 120` → `JSONDecodeError: Unterminated string`; the same call written to a FILE parses (9,318 bytes). ⇒ **Write to a file, then read.** | -| **B4a** | no clean wait primitive; a long `sleep` hits the harness ceiling | ✅ **YES** — this session produced **29** backgrounded-command outputs, every one a call that crossed the 120s cap | -| **B4b** | *"foreground `sleep` is blocked"* | ⛔ **NO.** Bare `sleep 2` returns **rc 0** here, with `true` as the control. **Relayed and not reproduced** — recorded as such rather than repeated | +| **C7** | `gh api … \| head -c N` truncates via SIGPIPE and yields "corrupt JSON" that is nothing of the sort | ✅ **YES.** `gh api repos/nForma-AI/nForma-NEXT/issues/1 \| head -c 120 > f` → `json.load(f)` raises `JSONDecodeError: Unterminated string starting at: line 1 column 87`. ⛔ CONTROL: the same call redirected to a file first parses, **9,318 bytes**, `issue #1`. ⇒ **Write to a file, then read.** | +| **B4a** | no clean wait primitive; a long call hits the harness ceiling | ✅ **YES.** `ls .../tasks/*.output \| wc -l` → **29** backgrounded-command outputs in this session, each one a call that crossed the 120s cap | +| **B4b** | *"foreground `sleep` is blocked"* | ⛔ **NO.** `sleep 2; echo $?` → **0**. ⛔ CONTROL: `true; echo $?` → 0, so the probe can report a success. **Relayed and not reproduced** — recorded as refuted rather than repeated | | **C1** | run logs are unavailable while the run is `in_progress`, **even for a job that has already failed** — cost ~40 min of blocked diagnosis | ⚠ relayed; needs a live in-progress run with a failed sibling, which I cannot force | | **C2** | `gh run rerun --job ` is rejected while the run is `in_progress` | ⚠ relayed, same reason | | **C4** | `gh run rerun --failed` re-runs CONSUMERS but not PROVISIONERS | ⚠ relayed; no ephemeral-runner pool here to test against |