docs(evidence): narrow the D0a conclusion; retire D0b as a precondition
Three findings, all upheld. 1. The causal conclusion overreached, in the same way this lane has overreached before. Uniform-red at both endpoints today proves only that the two commits DO NOT DISCRIMINATE UNDER CURRENT CONDITIONS. "Source hypothesis eliminated", "the interval cannot contain the transition" and "unreachable by source" are withdrawn from the framing, the manifest and the ledger: a historical regression could be masked by a later environmental effect, or by a source/environment interaction under which both commits now fail. Failing to discriminate is not the same as not differing. "No bisect is justified under current conditions" is what survives, and the approved endpoint table's two uniform-same rows are corrected to say the same thing. 2. D0b was still mandatory, and going to D1/D2 would have skipped an approved step. It is now RETIRED AS A PRECONDITION with the reason recorded: it existed to make the reduction matrix trustworthy so the subset-vs-full comparison could locate the mechanism indirectly, and D0a has since produced a reliable direct reproduction that D1/D2 measure against. Re-running ten reduction rows to sharpen an indirect instrument while a direct one is in hand is the wrong order of work. The obligation is NOT discharged: A3 still binds, so if D1/D2 fail to account for why every subset passed, D0b runs before this lane closes. 3. Provenance is now portable. The exact per-run command and a transcribed ten-row table --- start time, class, red bins, load, freeMB, daemon count, log digest --- are committed, rather than delegated to a machine-local results.tsv. Raw logs stay local by design. The transcription also surfaces something the delegation hid: the leaked-daemon count climbs 72 -> 108, four per run, monotonically while every run classifies identically. Recorded, not implicated. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
parent
24a84b5381
commit
18b74d7a97
|
|
@ -290,10 +290,14 @@ from #171 and #215.
|
||||||
detached worktrees with isolated target dirs, `dirty=0` per run, zero
|
detached worktrees with isolated target dirs, `dirty=0` per run, zero
|
||||||
voids, zero splits. **A (`7599661`) uniform-red; B (`724b785`)
|
voids, zero splits. **A (`7599661`) uniform-red; B (`724b785`)
|
||||||
uniform-red.** So `7599661`, which passed inside `sweep-crdt` on
|
uniform-red.** So `7599661`, which passed inside `sweep-crdt` on
|
||||||
08-15, fails 5/5 clean today: **the source hypothesis is eliminated
|
08-15, fails 5/5 clean today: **the two commits do not discriminate
|
||||||
and no bisect will run.** The onset window is demoted to a true but
|
under current conditions, so no bisect will run.** That is the whole
|
||||||
unreachable-by-source observation. No package activity in the window
|
claim — "source hypothesis eliminated" and "unreachable by source"
|
||||||
(`pacman.log`), which is a cheap negative and not pursued further.
|
are **withdrawn**, since a historical regression could be masked by a
|
||||||
|
later environmental effect or a source/environment interaction.
|
||||||
|
Failing to discriminate is not the same as not differing. The onset
|
||||||
|
window is deprioritised, not excluded. No package activity in the
|
||||||
|
window (`pacman.log`) — a cheap negative, not pursued further.
|
||||||
- **The useful product is a RELIABLE REPRODUCTION** — 10/10 across two
|
- **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
|
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`
|
the next step. Per-run provenance in `docs/probe-sigint-evidence.md`
|
||||||
|
|
@ -439,7 +443,12 @@ from #171 and #215.
|
||||||
- **D0 precedes every other diagnostic**, in two parts: **(a)
|
- **D0 precedes every other diagnostic**, in two parts: **(a)
|
||||||
reproduce the onset endpoints `7599661` and `724b785` clean, in
|
reproduce the onset endpoints `7599661` and `724b785` clean, in
|
||||||
isolated target dirs**, under the N = 5 interleaved clean-split
|
isolated target dirs**, under the N = 5 interleaved clean-split
|
||||||
contract below — a bare difference decides nothing; **(b)** re-run
|
contract below — a bare difference decides nothing. **(a) is DONE.**
|
||||||
|
**(b) is RETIRED as a precondition** (2026-08-19) because D0a yielded
|
||||||
|
a reliable direct reproduction and D1/D2 measure the mechanism
|
||||||
|
itself; **its obligation survives under A3** — if D1/D2 do not
|
||||||
|
account for the subset-vs-full difference, D0b runs before the lane
|
||||||
|
closes. It read: re-run
|
||||||
the matrix at `main` under a harness capturing provenance **and the
|
the matrix at `main` under a harness capturing provenance **and the
|
||||||
artifact hashes executed at run time**, since command shape silently
|
artifact hashes executed at run time**, since command shape silently
|
||||||
changed the binary once already and a hash computed later reflects
|
changed the binary once already and a hash computed later reflects
|
||||||
|
|
|
||||||
|
|
@ -178,10 +178,39 @@ precondition then the `sweep-crdt` command. `dirty=0` verified per run.
|
||||||
| A#5 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-5.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` |
|
| B#5 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-5.log` |
|
||||||
|
|
||||||
Full per-run provenance — timestamp, HEAD, dirty count, exit, both copy
|
**Exact commands.** Per run, with `TMPDIR=…/tmp/d0a` and
|
||||||
results, unrelated red-bin count, Cargo suffixes, `uptime`, `free`,
|
`CARGO_TARGET_DIR=…/d0a-A` or `…/d0a-B`, executed in
|
||||||
`/tmp` usage, leaked-daemon count, log digest — is in
|
`/home/jeans/Repos/personal/pmacs-d0a-A` (detached at `7599661`) or
|
||||||
`/home/jeans/build/pmacs-gate-targets/d0a/results.tsv`.
|
`…-d0a-B` (detached at `724b785`):
|
||||||
|
|
||||||
|
```
|
||||||
|
cargo build --workspace --no-default-features --features luajit,crdt \
|
||||||
|
&& cargo test --workspace --features crdt --no-fail-fast -- --skip basedpyright
|
||||||
|
```
|
||||||
|
|
||||||
|
**Per-run provenance, transcribed** (all runs `exit=101`, `dirty=0`,
|
||||||
|
`ok=0 failed=2`, suffixes `-5d9105cb` / `-d4dae4f0`). Times are local
|
||||||
|
2026-08-19; `load` is the 1/5/15 average at run start; `freeMB` is
|
||||||
|
`MemFree`; `daemons` counts live `pmacs --daemon` processes:
|
||||||
|
|
||||||
|
| start | run | class | red bins | load | freeMB | daemons | log sha256/16 |
|
||||||
|
|---|---|---|---|---|---|---|---|
|
||||||
|
| 12:21:20 | A#1 | red | 3 | 2.51, 2.85, 3.57 | 1549 | 72 | `1c0fe47d55d8f5e…` |
|
||||||
|
| 12:26:55 | B#1 | red | 2 | 7.86, 13.48, 8.97 | 9405 | 76 | `105794d515e6ec3…` |
|
||||||
|
| 12:32:12 | B#2 | red | 2 | 8.04, 18.28, 13.23 | 9761 | 80 | `7a662fb5ca15687…` |
|
||||||
|
| 12:35:39 | A#2 | red | 4 | 11.34, 21.23, 16.20 | 8933 | 84 | `50aacb9d15244c9…` |
|
||||||
|
| 12:39:35 | A#3 | red | 3 | 13.40, 26.07, 20.45 | 10628 | 88 | `9156bbbc852e2d3…` |
|
||||||
|
| 12:43:26 | B#3 | red | 2 | 8.66, 22.18, 20.82 | 8778 | 92 | `f0d768a76ed9cb0…` |
|
||||||
|
| 12:47:20 | B#4 | red | 2 | 17.96, 33.10, 27.07 | 10403 | 96 | `5a043a3d5568598…` |
|
||||||
|
| 12:50:49 | A#4 | red | 3 | 10.99, 27.07, 26.52 | 10702 | 100 | `1b6d88c08764d9a…` |
|
||||||
|
| 12:54:47 | A#5 | red | 3 | 9.75, 28.50, 28.70 | 8494 | 104 | `ae21a3f53fc1a1a…` |
|
||||||
|
| 12:58:38 | B#5 | red | 2 | 11.43, 26.69, 28.97 | 8562 | 108 | `2c5baa0c7e49e37…` |
|
||||||
|
|
||||||
|
Note the leaked-daemon count climbing 72 → 108, four per run. Recorded,
|
||||||
|
not implicated: it rises monotonically while every run classifies the
|
||||||
|
same. Raw logs stay machine-local at
|
||||||
|
`/home/jeans/build/pmacs-gate-targets/d0a/`; the table above is the
|
||||||
|
portable record.
|
||||||
|
|
||||||
**Endpoint verdicts: A uniform-red, B uniform-red.** By the approved
|
**Endpoint verdicts: A uniform-red, B uniform-red.** By the approved
|
||||||
table this is the *both endpoints uniform the same way* row:
|
table this is the *both endpoints uniform the same way* row:
|
||||||
|
|
@ -192,12 +221,21 @@ table this is the *both endpoints uniform the same way* row:
|
||||||
|
|
||||||
### What this settles
|
### What this settles
|
||||||
|
|
||||||
- **The source hypothesis is eliminated for this interval.** `7599661`
|
- **The two commits do not discriminate under current conditions.**
|
||||||
passed inside `sweep-crdt` on 08-15 and now fails **5/5** clean. No
|
`7599661` passed inside `sweep-crdt` on 08-15 and now fails **5/5**
|
||||||
bisect of `7599661..724b785` is justified, and none will be run.
|
clean. **No bisect of `7599661..724b785` is justified under current
|
||||||
- **The onset window is demoted as a lead.** It remains a true
|
conditions**, and none will be run.
|
||||||
observation, but since neither endpoint reproduces the old green, the
|
- **That is the whole of the causal claim.** An earlier wording here
|
||||||
window cannot be probed by source at all.
|
said "the source hypothesis is eliminated" and that "the interval
|
||||||
|
cannot contain the transition"; both are **withdrawn**. Uniform-red
|
||||||
|
today is silent about what was true on 08-15 — a historical source
|
||||||
|
regression could be **masked** by a later environmental effect, or by
|
||||||
|
a source/environment interaction that makes both commits fail now.
|
||||||
|
Not discriminating is not the same as not differing.
|
||||||
|
- **The onset window is deprioritised, not excluded.** It remains a
|
||||||
|
true observation, and it remains *possible* that source matters
|
||||||
|
within it; what is established is only that source cannot be
|
||||||
|
probed **by this comparison, now**.
|
||||||
- **A reliable reproduction now exists.** 10/10 today, on two different
|
- **A reliable reproduction now exists.** 10/10 today, on two different
|
||||||
commits, at ~4 minutes per run. **This is the most useful thing D0a
|
commits, at ~4 minutes per run. **This is the most useful thing D0a
|
||||||
produced**: the mechanism diagnostics D1/D2 no longer depend on a
|
produced**: the mechanism diagnostics D1/D2 no longer depend on a
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue