From 262b7c0b6f649350913d66d284692925bd72647d Mon Sep 17 00:00:00 2001 From: Levi Neuwirth Date: Thu, 30 Jul 2026 14:41:50 -0400 Subject: [PATCH] docs(process): stop overclaiming the pre-kill sample; drop a dead comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review round 5: one blocking, one major. Both documentation-only; the runtime fixes from round 4 are unchanged. **The pre-kill sample was overclaimed.** Acceptance 4 said the measured group "describes the target that was attempted". It does not. `getpgid` and `kill` remain separated by the same read-then-act window §1.5 is built on, so the sample can be stale by the time the signal is delivered. Moving it earlier removes a POST-HOC reading; it does not make the reading contemporaneous. The criterion now says it records pre-kill evidence about the attempted target, and adds an explicit sentence forbidding any acceptance from claiming otherwise. This is worth naming rather than quietly editing: the framing's whole spine is that this telemetry establishes less than it appears to, and round 4 fixed a real ordering defect and then inflated the fix's meaning inside the document that governs it. **`95897f7`'s commit message carries the same overclaim.** It is not amended — force-pushing a branch under review to rewrite history would hide the error rather than correct it. This message is the correction, and the two read in sequence. **A dead doc comment was documenting a constant.** The original pre-Stage-B acceptance-1 block survived the rewrite and came to rest above `const BASH`, so the file explained a string constant with the sentence this entire lane exists to remove — "here they are asserted to agree only because nothing has moved the terminal", describing a test that no longer exists. Removed; only the BASH explanation remains. Verified the overclaim is gone from the whole tree, not only the cited line: no hits in `docs/` or `src/`. Gates: 11 gates, 4,471 tests, zero failures. --- ...process-signal-diagnostic-completeness-framing.md | 11 +++++++++-- src/process.rs | 12 ------------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/docs/process-signal-diagnostic-completeness-framing.md b/docs/process-signal-diagnostic-completeness-framing.md index 5c41617..b945da7 100644 --- a/docs/process-signal-diagnostic-completeness-framing.md +++ b/docs/process-signal-diagnostic-completeness-framing.md @@ -492,8 +492,15 @@ assertion (`:2517`) is one of the four sites acceptance 5 must update. field distinct from the assumed one, renderable as unobservable, with a test asserting a case where they **differ** (§3 Bet 4). **It is sampled before the `kill`**, not during report construction, so it - describes the target that was attempted rather than the state left - behind by the failure. + records pre-kill evidence about the target that was attempted rather + than state left behind by the failure. + + **It does not describe the group at the moment the `kill` executed.** + `getpgid` and `kill` remain separated by the read-then-act window + §1.5 describes, so the sample can be stale by the time the signal is + delivered. Moving it earlier removes a *post-hoc* reading; it does + not make the reading contemporaneous, and no acceptance may claim it + does. 5. All four exact-string sites — `:2408`, `:2435`, `:2485`, `:2517` — updated **individually**, each listed in the PR body with before and after. No blanket rewrite: that is how a format regression hides. diff --git a/src/process.rs b/src/process.rs index ea9b377..33fdf8f 100644 --- a/src/process.rs +++ b/src/process.rs @@ -2617,18 +2617,6 @@ mod tests { } } - /// Q#PD1 acceptance 1 — a group-directed failure names the target, - /// the branch that chose it, the expected group, the errno, and the - /// leader's own state, as five separate facts. - /// - /// Asserted as an exact message against the pid the kernel actually - /// assigned, so a hardcoded target could not satisfy it. The leader - /// field is the one that matters: for a PTY the signal goes to the - /// terminal's foreground group, a different entity from the spawned - /// child whenever job control has moved the terminal. Three rejected - /// designs for this code collapsed the two; the report keeps them - /// apart, and here they are asserted to agree only because nothing - /// has moved the terminal. /// The job-control shell the divergence fixture drives. Named once so /// the availability guard and the spawn cannot drift apart. const BASH: &str = "/bin/bash";