docs(framing): revision 6 --- the ancestry argument shows less than claimed
Three findings on revision 5, all upheld.
1. The ancestry argument overreached. 72da24a failing today while its
descendant 7599661 passed on 08-15 shows exactly one thing: outcome
is not determined by commit alone, since the observations come from
different environments at different times. Revision 5 said a source
cause was "positively discouraged", that the ancestry "says to
expect" equal endpoints, and that the change was environmental.
None follows. It cannot discriminate an environmental change, a
source/environment interaction, or a fix before 7599661 with a
regression before 724b785 --- and an ancestor OUTSIDE the interval
is irrelevant to whether the interval regressed, since a bisect over
7599661..724b785 needs only that the clean endpoints differ now.
D0a is unchanged as an action but is now stated as a decision
procedure with NO predicted outcome: endpoints differ -> bisect that
interval; endpoints agree -> ask what else changed across the window.
2. The byte-identity withdrawal was incomplete in both ledgers. This
branch's said the artifacts "are byte-different" and then withdrew
it two lines later, still said R9 ran "different binaries", and
still promised an "artifact family". The held ledger still said
"byte-different" and still called the window a bisect target with
revision 4's onset conclusion. Both now say "different Cargo
suffixes/compilations" throughout; historical byte identity is
UNKNOWN and is never claimed.
3. Provenance slips: R9's observation-table row listed only -6b4b8223
although it executed both -91f51d0b and -6b4b8223; R10's suffixes
are at log lines 3 and 24, not 3 and 4; R9's are at 3066 and 3087,
not 3066 alone. All corrected against the logs.
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
55053c601a
commit
e2084fbba5
|
|
@ -279,7 +279,7 @@ from #171 and #215.
|
|||
**`72da24a`**, worktree
|
||||
`/home/jeans/Repos/personal/pmacs-probe-sigint`. Recover with
|
||||
`git fetch githubsucks && git checkout gpu-probe-sigint-teardown`.
|
||||
- **No PR. Framing revision 5 at `docs/gpu-probe-sigint-framing.md`;
|
||||
- **No PR. Framing revision 6 at `docs/gpu-probe-sigint-framing.md`;
|
||||
NO IMPLEMENTATION and no fix proposed** — the mechanism is not known
|
||||
yet, and the framing says so rather than guessing. Revisions 1, 2 and
|
||||
3 were each rejected on findings, all upheld; run provenance lives in
|
||||
|
|
@ -300,13 +300,13 @@ from #171 and #215.
|
|||
R1–R10 is green.** Each run is enumerated with exact command, worktree, HEAD,
|
||||
cleanliness and log digest in `docs/probe-sigint-evidence.md` — "0/N"
|
||||
is not a record.
|
||||
- **But R9 did NOT run the same binaries as the sweep.** It executed
|
||||
`…-91f51d0b…` / `…-6b4b8223…`; the sweeps executed `…-5d9105cb…` /
|
||||
`…-d4dae4f0…`, and those artifacts are byte-different. Command shape
|
||||
changes Cargo's fingerprint. R9 establishes **same target names and
|
||||
order**, not same compilations — and "byte-different" is withdrawn,
|
||||
since the bytes a historical run executed are unknowable now; only
|
||||
the differing Cargo suffixes are. What the evidence is **consistent
|
||||
- **But R9 did NOT run the same compilations as the sweep.** It
|
||||
executed `…-91f51d0b…` / `…-6b4b8223…`; the sweeps executed
|
||||
`…-5d9105cb…` / `…-d4dae4f0…`. **Differing Cargo suffixes mean
|
||||
differing metadata hashes — different compilations.** Historical byte
|
||||
identity is **UNKNOWN** and is never claimed: target dirs have been
|
||||
overwritten, so a hash computed today is the current occupant's. R9
|
||||
establishes **same target names and order**, not same compilations. What the evidence is **consistent
|
||||
with**, not what it isolates: prior targets alone (R9) green,
|
||||
workspace selection alone (R10) green, both together (F1–F7) red.
|
||||
That is an observation, not a finding. `--workspace` selection
|
||||
|
|
@ -318,8 +318,8 @@ from #171 and #215.
|
|||
available 27G→45G, still red); leaked daemons; inotify.
|
||||
- **NOT ruled out, contrary to earlier entries here:** `--workspace`
|
||||
artifact selection, and the preceding tests. R9 appeared to clear
|
||||
them but ran **different binaries**, so the comparison was never
|
||||
made. Both are open.
|
||||
them but ran **different Cargo compilations**, so the comparison was
|
||||
never made. Both are open.
|
||||
- **Ground truth, and what it does NOT establish.** Neither binary
|
||||
contains signal-handling code: `run_gpu` (`src/main.rs:324`) blocks
|
||||
in `command.status()` with no handler, and grepping all of
|
||||
|
|
@ -360,8 +360,8 @@ from #171 and #215.
|
|||
default disposition" contradicted its own hypothesis and is
|
||||
withdrawn; the assertion no longer appears above it either.
|
||||
- **Run provenance is a pushed document**, `docs/probe-sigint-evidence.md`:
|
||||
exact command, worktree, HEAD, cleanliness, artifact family, result
|
||||
and log digest per physical run. Three caveats stated there rather
|
||||
exact command, worktree, HEAD, cleanliness, the Cargo suffixes
|
||||
executed, result and log digest per physical run. Three caveats stated there rather
|
||||
than smoothed over — **R1 and R2 have no preserved log** (revision 2
|
||||
double-counted one log as both R2 and R6), **cleanliness is UNKNOWN**
|
||||
for every pre-manifest run, and **R1–R10 ran in the
|
||||
|
|
@ -382,8 +382,13 @@ from #171 and #215.
|
|||
08:45:41, after that run ended 08:42:01). **Cleanliness captured for
|
||||
neither.** And `72da24a` is an **ancestor** of `7599661` yet fails
|
||||
today while `7599661` passed — no source-monotonic cause does that.
|
||||
So D0a reproduces clean endpoints first; a Git bisect is justified
|
||||
only if they differ.
|
||||
The ancestry shows only that **outcome is not determined by commit
|
||||
alone**; it does NOT discriminate an environmental change, a
|
||||
source/environment interaction, or a fix before `7599661` with a
|
||||
regression before `724b785`, and an ancestor outside the interval is
|
||||
irrelevant to whether the interval regressed. D0a is a **decision
|
||||
procedure with no predicted outcome**: endpoints differ → bisect
|
||||
`7599661..724b785`; endpoints agree → ask what else changed.
|
||||
- **Red full-sweep count is SEVEN, not five** (F1–F7 in the manifest),
|
||||
each with its own log digest; revision 3 said 5/5 while the framing
|
||||
separately cited a gate run the manifest never listed.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# GPU launcher / probe SIGINT teardown — framing
|
||||
|
||||
Revision 5. Status: **awaiting approval. No implementation.**
|
||||
Revision 6. Status: **awaiting approval. No implementation.**
|
||||
|
||||
Revisions 1 and 2 were each rejected on five findings. Every correction
|
||||
is recorded in place rather than quietly rewritten, because three of
|
||||
|
|
@ -20,6 +20,10 @@ them were claims this document itself had advanced:
|
|||
(manifest); ledgers still carried the falsified R9 conclusions (§11).
|
||||
**And a finding that reframes the lane: the failure has a datable
|
||||
onset (§4a) and is not long-standing.**
|
||||
- r5 → r6: the ancestry argument overreached (§4a) — it shows outcome
|
||||
is not determined by commit alone, and nothing more; residual
|
||||
byte-identity and "artifact family" wording in both ledgers (§11);
|
||||
and three provenance slips (§4, manifest).
|
||||
- r4 → r5: the section summaries still carried revision-3 counts and
|
||||
groupings (§4); the onset count was 13/1/3, not 14 (§4a); "byte-
|
||||
different" overstated what is knowable about historical artifacts
|
||||
|
|
@ -149,8 +153,8 @@ different Cargo compilations:
|
|||
|
||||
| prior targets execute | compilation set | result |
|
||||
|---|---|---|
|
||||
| yes | `-6b4b8223` (subset selection) | R9 green |
|
||||
| no | `-5d9105cb` + `-d4dae4f0` (workspace selection) | R10 green |
|
||||
| yes | `-91f51d0b` + `-6b4b8223` (subset selection; `prefix.log:3066`, `:3087`) | R9 green |
|
||||
| no | `-5d9105cb` + `-d4dae4f0` (workspace selection; `wsonly.log:3`, `:24`) | R10 green |
|
||||
| yes | workspace selection | **F1–F7 red (7)** |
|
||||
|
||||
Neither factor alone reproduced it **in these runs**. That is the
|
||||
|
|
@ -203,14 +207,32 @@ after that run ended at 08:42:01. **Cleanliness was captured for
|
|||
neither**, and the tree was under active edit throughout. So the window
|
||||
dates a **machine/worktree-state transition**, not two clean revisions.
|
||||
|
||||
The evidence in fact argues *against* a source cause: `72da24a` is an
|
||||
**ancestor** of `7599661` (verified by `git merge-base --is-ancestor`),
|
||||
yet `72da24a` fails today while `7599661` passed on 08-15. No
|
||||
source-monotonic cause produces that. Unless clean endpoints say
|
||||
otherwise, whatever changed is environmental, cached, or uncommitted.
|
||||
One further relationship is worth stating **only for what it shows**:
|
||||
`72da24a` is an **ancestor** of `7599661` (verified by
|
||||
`git merge-base --is-ancestor`), yet `72da24a` fails today while
|
||||
`7599661` passed on 08-15. That establishes exactly one thing —
|
||||
**outcome is not determined by commit alone** — because the two
|
||||
observations are from different environments at different times.
|
||||
|
||||
**This still supersedes the reduction matrix as the lane's first move**
|
||||
— but as endpoint reproduction, not as a bisect.
|
||||
**Revision 5 drew more from it than it carries, and that is
|
||||
withdrawn.** It said a source cause was "positively discouraged", that
|
||||
the ancestry "says to expect" equal endpoints, and that "whatever
|
||||
changed is environmental, cached, or uncommitted". None of that
|
||||
follows. The observation cannot distinguish:
|
||||
|
||||
- an environmental change;
|
||||
- a source/environment interaction; or
|
||||
- a source fix landing before `7599661` and a regression landing before
|
||||
`724b785`.
|
||||
|
||||
And an older ancestor outside the interval behaving badly is simply
|
||||
**irrelevant** to whether `7599661..724b785` contains a regression: a
|
||||
bisect over that interval needs only that the two clean endpoints
|
||||
differ *now*.
|
||||
|
||||
**This still supersedes the reduction matrix as the lane's first
|
||||
move**, as endpoint reproduction — which is a decision procedure, not a
|
||||
prediction.
|
||||
|
||||
## 5. Two retracted claims, both mine, kept as warnings
|
||||
|
||||
|
|
@ -268,11 +290,13 @@ group.
|
|||
|
||||
- **D0a — reproduce the onset endpoints CLEANLY** (§4a): `7599661`
|
||||
(last observed green) and `724b785` (first observed red), each
|
||||
checked out clean, each in its own isolated target directory. **Only
|
||||
if they differ is a Git bisect justified.** If they agree, the
|
||||
changed state is environmental, cached or uncommitted — which the
|
||||
ancestry argument says to expect — and bisecting source would burn
|
||||
runs proving nothing.
|
||||
checked out clean, each in its own isolated target directory. This is
|
||||
a **decision procedure with no predicted outcome**:
|
||||
- **endpoints differ** → a regression lives in `7599661..724b785`
|
||||
and a Git bisect over that interval is justified;
|
||||
- **endpoints agree** → the difference is not captured by those two
|
||||
commits under current conditions, and the next question is what
|
||||
else changed across the window.
|
||||
- **D0b — re-run the §4 matrix with captured provenance**, at `main`,
|
||||
recording the artifact hashes actually executed **at run time**.
|
||||
Revision 2's strongest claim collapsed because command shape silently
|
||||
|
|
|
|||
|
|
@ -82,8 +82,8 @@ except `WT=main`, which uses `…/pmacs-fdccc423`.
|
|||
| R6 | `test --features crdt --no-fail-fast --test gpu_font_acceptance --test gpu_initial_target_acceptance --test gpu_invocation_acceptance` | mg | ~`5174f73`–`b72843a` | UNKNOWN | reduction | green, 11+15+15 | `332693a39c73731a` 4569 |
|
||||
| R7 | `test --features crdt --no-fail-fast --lib --bins --test acceptance --test ambient_isolation_acceptance --test auto_indent_acceptance --test auto_indent_crdt_acceptance --test auto_pair_acceptance --test auto_pair_crdt_acceptance --test autosave_acceptance --test bottom_panel_stage1_acceptance --test bottom_panel_stage2a_acceptance --test bottom_panel_stage2b_daemon_acceptance --test bottom_panel_stage2b_gpu_acceptance --test bottom_panel_stage2b_protocol_acceptance --test comment_toggle_acceptance --test compile_mode_acceptance --test gpu_invocation_acceptance` | mg | ~`b72843a` | UNKNOWN | `gpu_invocation…-6b4b8223` **only** — R7 does not select `gpu_initial_target` | green | `9e1ebc59ed9f0dd4` 187531 |
|
||||
| R8 | `test --features crdt --no-fail-fast --test compile_mode_crdt_acceptance --test completion_popup_acceptance --test config_registry_acceptance --test cua_region_acceptance --test desktop_acceptance --test destination_capture_acceptance --test dired_acceptance --test discovery_acceptance --test discovery_stage2_acceptance --test editops_acceptance --test find_file_acceptance --test folding_acceptance --test folding_stage2_acceptance --test full_grid_resync_acceptance --test gate_script_acceptance --test git_status_stage1_acceptance --test gpu_font_acceptance --test gpu_initial_target_acceptance --test gpu_invocation_acceptance` | mg | ~`b72843a` | UNKNOWN | `-91f51d0b` / `-6b4b8223` per log | green | `8b26ebfcf5f871b4` 28677 |
|
||||
| R9 | `test --features crdt --no-fail-fast --lib --bins --test acceptance --test ambient_isolation_acceptance --test auto_indent_acceptance --test auto_indent_crdt_acceptance --test auto_pair_acceptance --test auto_pair_crdt_acceptance --test autosave_acceptance --test bottom_panel_stage1_acceptance --test bottom_panel_stage2a_acceptance --test bottom_panel_stage2b_daemon_acceptance --test bottom_panel_stage2b_gpu_acceptance --test bottom_panel_stage2b_protocol_acceptance --test comment_toggle_acceptance --test compile_mode_acceptance --test compile_mode_crdt_acceptance --test completion_popup_acceptance --test config_registry_acceptance --test cua_region_acceptance --test desktop_acceptance --test destination_capture_acceptance --test dired_acceptance --test discovery_acceptance --test discovery_stage2_acceptance --test editops_acceptance --test find_file_acceptance --test folding_acceptance --test folding_stage2_acceptance --test full_grid_resync_acceptance --test gate_script_acceptance --test git_status_stage1_acceptance --test gpu_font_acceptance --test gpu_initial_target_acceptance --test gpu_invocation_acceptance` | mg | ~`b72843a` | UNKNOWN | **`-91f51d0b` / `-6b4b8223`** (log `:3066`) | green | `b31d98ee2f427eca` 214566 |
|
||||
| R10 | `test --workspace --features crdt --no-fail-fast --test gpu_initial_target_acceptance --test gpu_invocation_acceptance -- --skip basedpyright` | mg | ~`b72843a` | UNKNOWN | **`-5d9105cb` AND `-d4dae4f0`** (log `:3`, `:4`) | green | `81b48fd7a0e261dc` 3553 |
|
||||
| R9 | `test --features crdt --no-fail-fast --lib --bins --test acceptance --test ambient_isolation_acceptance --test auto_indent_acceptance --test auto_indent_crdt_acceptance --test auto_pair_acceptance --test auto_pair_crdt_acceptance --test autosave_acceptance --test bottom_panel_stage1_acceptance --test bottom_panel_stage2a_acceptance --test bottom_panel_stage2b_daemon_acceptance --test bottom_panel_stage2b_gpu_acceptance --test bottom_panel_stage2b_protocol_acceptance --test comment_toggle_acceptance --test compile_mode_acceptance --test compile_mode_crdt_acceptance --test completion_popup_acceptance --test config_registry_acceptance --test cua_region_acceptance --test desktop_acceptance --test destination_capture_acceptance --test dired_acceptance --test discovery_acceptance --test discovery_stage2_acceptance --test editops_acceptance --test find_file_acceptance --test folding_acceptance --test folding_stage2_acceptance --test full_grid_resync_acceptance --test gate_script_acceptance --test git_status_stage1_acceptance --test gpu_font_acceptance --test gpu_initial_target_acceptance --test gpu_invocation_acceptance` | mg | ~`b72843a` | UNKNOWN | **`-91f51d0b` / `-6b4b8223`** (log `:3066`, `:3087`) | green | `b31d98ee2f427eca` 214566 |
|
||||
| R10 | `test --workspace --features crdt --no-fail-fast --test gpu_initial_target_acceptance --test gpu_invocation_acceptance -- --skip basedpyright` | mg | ~`b72843a` | UNKNOWN | **`-5d9105cb` AND `-d4dae4f0`** (log `:3`, `:24`) | green | `81b48fd7a0e261dc` 3553 |
|
||||
| F1 | `build --workspace --no-default-features --features luajit,crdt && test --workspace --features crdt --no-fail-fast -- --skip basedpyright` | **main** | `72da24a` | clean (verified `git status --porcelain` empty) | `-5d9105cb` / `-d4dae4f0`; today's occupants `e0578039…` / `00f06aeb…` | **red** | `10b55b8ba8741125` 334446 |
|
||||
| F2 | `test --workspace --features crdt --no-fail-fast -- --skip basedpyright` | mg | ~`b72843a` | UNKNOWN | `-5d9105cb` / `-d4dae4f0`; bytes UNKNOWN | **red** | `474f88f0dad581fe` 338555 |
|
||||
| F3 | same argv as F2, with a resource sampler running | mg | ~`b72843a` | UNKNOWN | as F2; bytes UNKNOWN | **red** | `7b8519e7300e8bb3` 338555 |
|
||||
|
|
@ -141,12 +141,15 @@ was captured for **neither**, and the tree was being edited throughout.
|
|||
So the window dates a **machine/worktree-state transition**, not two
|
||||
clean source revisions.
|
||||
|
||||
**A source bisect is in fact positively discouraged by the evidence.**
|
||||
`72da24a` is an **ancestor** of `7599661` — verified with
|
||||
`git merge-base --is-ancestor` — yet `72da24a` fails today (F1) while
|
||||
`7599661` passed on 08-15. A source-monotonic cause cannot produce
|
||||
that. Whatever changed is environmental, cached, or uncommitted unless
|
||||
proven otherwise.
|
||||
One relationship is worth recording **for exactly what it shows**:
|
||||
`72da24a` is an **ancestor** of `7599661` (`git merge-base
|
||||
--is-ancestor`), yet fails today (F1) while `7599661` passed on 08-15.
|
||||
That shows **outcome is not determined by commit alone** — the two
|
||||
observations come from different environments at different times — and
|
||||
nothing further. It does **not** discriminate an environmental change,
|
||||
a source/environment interaction, or a fix before `7599661` followed by
|
||||
a regression before `724b785`. An ancestor outside the interval is
|
||||
irrelevant to whether the interval contains a regression.
|
||||
|
||||
## D0 — re-run the matrix with captured provenance
|
||||
|
||||
|
|
@ -165,7 +168,9 @@ log digest. Two constraints learned the hard way:
|
|||
- **first, reproduce the two candidate endpoints CLEANLY** —
|
||||
`7599661` (last observed green) and `724b785` (first observed red) —
|
||||
each checked out clean, each in its **own isolated target
|
||||
directory**. Only if those endpoints differ is a Git bisect
|
||||
justified. If they do not differ, the changed state is environmental,
|
||||
cached or uncommitted, and bisecting source would burn runs proving
|
||||
nothing. The ancestry argument above says to expect the latter.
|
||||
directory**. A decision procedure with **no predicted outcome**:
|
||||
endpoints differ → a regression lives in `7599661..724b785` and a
|
||||
bisect over that interval is justified; endpoints agree → the
|
||||
difference is not captured by those two commits under current
|
||||
conditions, and the question becomes what else changed across the
|
||||
window.
|
||||
|
|
|
|||
Loading…
Reference in New Issue