docs(evidence): D0a executed --- the source hypothesis is eliminated

Ten runs under the approved contract: counterbalanced A B B A A B B A A
B, N = 5 per endpoint, clean detached worktrees at 7599661 and 724b785,
isolated target directories, the gate's build-crdt precondition then its
sweep-crdt command, dirty=0 verified per run. Zero voids, zero splits.

A (7599661) uniform-red. B (724b785) uniform-red. By the approved
endpoint table that is the both-endpoints-uniform-same row: the
difference is NOT captured by those two commits.

What it settles:

  - No bisect of 7599661..724b785 is justified, and none will run.
    7599661 passed inside sweep-crdt on 08-15 and fails 5/5 clean today,
    so the interval cannot contain the transition.
  - The onset window is demoted --- still a true observation, but not
    reachable by source.
  - A RELIABLE REPRODUCTION now exists: 10/10 today across two commits
    at ~4 minutes per run. This is D0a's most useful product, because
    D1/D2 no longer depend on catching a rare event.

What it does not settle: anything about the mechanism. One cheap
negative on "what else changed" --- no package activity in the window per
pacman.log, nearest on 08-18 --- and it is not pursued further, because
with a reproduction in hand direct measurement dominates archaeology.

A's three extra failing binaries are recorded rather than swept up:
a54_real_daemon_real_pty_and_headless_gpu_render..., a v21/v20 row
expected to differ at that older commit, and m6_1_pty_mode_lifecycle.
Two of the three are process/PTY-spawn rows, the same family as the
target. None affect classification, which reads only the two target
copies.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
Levi Neuwirth 2026-08-19 13:04:59 +02:00
parent bdef05cd02
commit 24a84b5381
No known key found for this signature in database
3 changed files with 106 additions and 2 deletions

View File

@ -270,7 +270,7 @@ hazard in a shape that looks committed. **A documented error message
that never appears is worse than no documentation**, because the reader that never appears is worse than no documentation**, because the reader
waits for a signal that is not coming. waits for a signal that is not coming.
## GPU launcher / probe SIGINT teardown — FRAMING APPROVED, diagnostics not started ## GPU launcher / probe SIGINT teardown — D0a DONE, mechanism unknown
**Written with the branch's FIRST commit**, per the standing correction **Written with the branch's FIRST commit**, per the standing correction
from #171 and #215. from #171 and #215.
@ -285,6 +285,19 @@ from #171 and #215.
rather than guessing. Revisions 1, 2 and 3 were each rejected on rather than guessing. Revisions 1, 2 and 3 were each rejected on
findings, all upheld; run provenance lives in findings, all upheld; run provenance lives in
`docs/probe-sigint-evidence.md`. `docs/probe-sigint-evidence.md`.
- **D0a EXECUTED 2026-08-19 — verdict: difference NOT captured by the
two commits.** 10 runs, counterbalanced, N=5 per endpoint, clean
detached worktrees with isolated target dirs, `dirty=0` per run, zero
voids, zero splits. **A (`7599661`) uniform-red; B (`724b785`)
uniform-red.** So `7599661`, which passed inside `sweep-crdt` on
08-15, fails 5/5 clean today: **the source hypothesis is eliminated
and no bisect will run.** The onset window is demoted to a true but
unreachable-by-source observation. No package activity in the window
(`pacman.log`), which is a cheap negative and not pursued further.
- **The useful product is a RELIABLE REPRODUCTION** — 10/10 across two
commits at ~4 min/run. D1/D2 no longer wait on a rare event and are
the next step. Per-run provenance in `docs/probe-sigint-evidence.md`
§D0a and `/home/jeans/build/pmacs-gate-targets/d0a/results.tsv`.
- **Why it exists.** `ctrl_c_on_launcher_group_does_not_reach_spawned_daemon` - **Why it exists.** `ctrl_c_on_launcher_group_does_not_reach_spawned_daemon`
fails in gate stage `sweep-crdt` with "child did not exit within 5s". fails in gate stage `sweep-crdt` with "child did not exit within 5s".
**Pre-existing on `main`** — `72da24a` fails it in a clean worktree **Pre-existing on `main`** — `72da24a` fails it in a clean worktree

View File

@ -1,6 +1,8 @@
# GPU launcher / probe SIGINT teardown — framing # GPU launcher / probe SIGINT teardown — framing
Revision 9. Status: **approved 2026-08-19 at `15c25ec`. No implementation.** Revision 9, approved 2026-08-19 at `15c25ec`.
Status: **D0a EXECUTED — see §4b. No fix implemented; mechanism still
unknown.**
Revisions 1 and 2 were each rejected on five findings. Every correction Revisions 1 and 2 were each rejected on five findings. Every correction
is recorded in place rather than quietly rewritten, because three of is recorded in place rather than quietly rewritten, because three of
@ -267,6 +269,32 @@ rule; a bare difference decides nothing.)
move**, as endpoint reproduction — which is a decision procedure, not a move**, as endpoint reproduction — which is a decision procedure, not a
prediction. prediction.
## 4b. D0a result — the source hypothesis is eliminated
Executed 2026-08-19 under the approved contract: 10 runs,
counterbalanced `A B B A A B B A A B`, N = 5 per endpoint, clean
detached worktrees, isolated target directories, `dirty=0` verified per
run. **Zero voids, zero splits.**
**A (`7599661`) uniform-red. B (`724b785`) uniform-red.** By the
endpoint table this is *both endpoints uniform the same way*: the
difference is **not captured by those two commits**.
- **No bisect of `7599661..724b785` is justified, and none will run.**
`7599661` passed inside `sweep-crdt` on 08-15 and fails 5/5 clean
today, so the interval cannot contain the transition.
- **The onset window is demoted.** Still a true observation, but not
reachable by source.
- **A reliable reproduction now exists** — 10/10 today across two
commits, ~4 minutes per run. This is D0a's most useful product:
**D1/D2 no longer wait on a rare event.**
- One cheap negative on "what else changed": **no package activity in
the window** (`/var/log/pacman.log`, 08-15 19:57 → 08-16 06:33;
nearest 08-18). Not pursued further — with a reproduction in hand,
direct measurement dominates archaeology.
Per-run provenance: `docs/probe-sigint-evidence.md` §D0a.
## 5. Two retracted claims, both mine, kept as warnings ## 5. Two retracted claims, both mine, kept as warnings
**Claim A — "mechanism located".** Reported the launcher blocked in **Claim A — "mechanism located".** Reported the launcher blocked in

View File

@ -157,6 +157,69 @@ source/environment interaction, or a fix before `7599661` followed by a
regression before `724b785`. And an ancestor outside the interval is regression before `724b785`. And an ancestor outside the interval is
irrelevant to whether the interval contains a regression. irrelevant to whether the interval contains a regression.
## D0a — EXECUTED 2026-08-19. Verdict: difference NOT captured
Ten runs, counterbalanced `A B B A A B B A A B`, N = 5 per endpoint,
**zero voids, zero splits**. Endpoints checked out detached and clean
in dedicated worktrees (`pmacs-d0a-A`, `pmacs-d0a-B`), each with its own
target directory, each run performing the gate's `build-crdt`
precondition then the `sweep-crdt` command. `dirty=0` verified per run.
| run | endpoint | HEAD | class | ctrl_c ok/failed | red bins | log |
|---|---|---|---|---|---|---|
| A#1 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-1.log` |
| B#1 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-1.log` |
| B#2 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-2.log` |
| A#2 | A | `7599661` | **red** | 0 / 2 | 4 | `d0a/A-2.log` |
| A#3 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-3.log` |
| B#3 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-3.log` |
| B#4 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-4.log` |
| A#4 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-4.log` |
| A#5 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-5.log` |
| B#5 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-5.log` |
Full per-run provenance — timestamp, HEAD, dirty count, exit, both copy
results, unrelated red-bin count, Cargo suffixes, `uptime`, `free`,
`/tmp` usage, leaked-daemon count, log digest — is in
`/home/jeans/build/pmacs-gate-targets/d0a/results.tsv`.
**Endpoint verdicts: A uniform-red, B uniform-red.** By the approved
table this is the *both endpoints uniform the same way* row:
> **the difference is not captured by those two commits** under current
> conditions, and the question becomes what else changed across the
> window.
### What this settles
- **The source hypothesis is eliminated for this interval.** `7599661`
passed inside `sweep-crdt` on 08-15 and now fails **5/5** clean. No
bisect of `7599661..724b785` is justified, and none will be run.
- **The onset window is demoted as a lead.** It remains a true
observation, but since neither endpoint reproduces the old green, the
window cannot be probed by source at all.
- **A reliable reproduction now exists.** 10/10 today, on two different
commits, at ~4 minutes per run. **This is the most useful thing D0a
produced**: the mechanism diagnostics D1/D2 no longer depend on a
rare event, and can proceed immediately.
- **A's three extra failures are recorded, not swept up**:
`a54_real_daemon_real_pty_and_headless_gpu_render_one_panel_hosted_terminal`,
`one_daemon_serves_a_v21_panel_session_and_a_shipped_v20_client`, and
`m6_1_pty_mode_lifecycle_started_then_exited`. The v21/v20 row is
expected to differ at that older commit; the other two are
process/PTY-spawn rows, the same family as the target. They do not
affect classification, which reads only the two target copies.
### What it does not settle
Nothing about the mechanism. "What else changed across the window" has
one cheap negative result so far: **no package activity in the window**
(`/var/log/pacman.log` shows nothing between 08-15 19:57 and 08-16
06:33; nearest is 08-18). The `1.88` rust toolchain directory has mtime
08-15 22:39, inside the window, but the gate builds with `1.95.0`.
Neither is pursued further, because with a reliable reproduction in
hand **direct measurement (D1/D2) dominates archaeology**.
## D0 — re-run the matrix with captured provenance ## D0 — re-run the matrix with captured provenance
Before any §4 row is relied on for a conclusion, re-run the reductions Before any §4 row is relied on for a conclusion, re-run the reductions