diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index af2ab71..9493de9 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -9425,3 +9425,14 @@ different. unchanged and now demonstrated twice: **rc 0 / 192 / 0 / ALL GATES PASS** (twinF's shape). **Nothing deployed, no another-party file edited, no item closed, none opened.** + +--- + +**PR #77 verified, its residual confirmed with a runtime receipt, and a bounded contract dispatched to Vincent. 2026-10-15 08:38Z (control plane; clock read immediately before this edit).** + +- **Live state, my own reads (08:35Z):** PR **#77** open / `merged:false` / `mergeable:true` / head `b4be7049ea1ce463a0397467de5822e2d227b00a` on `timmy/21-escalation-regression` / base `main` = `a033cb3ae9e9…` (12:03:35Z, unchanged since #76 merged) / 9 files **+430 −9** (per-file additions 1+3+38+50+2+13+274+29+20 = 430 ✓, deletions 1+6+2 = 9 ✓) / CI `Quality gates / quality (pull_request)` **success** / **0 reviews, 0 comments** / body carries `Closes #21`. Issue **#21** is **open** with **3 unticked** acceptance boxes and 0 ticked (`area/safety`, `priority/P0`, `type/test`). That is the #76/#34 shape again: the morning release job merges by push and the merge message closes the issue with its boxes unticked. +- **The safety improvement reproduces on my instrument.** Both refs extracted to isolated trees and their own modules run: **main catches 1 of 12** of my phrasing probes (only the old `blood in my stool` form); **the branch catches 11 of 12**. The silently-cleared symptom flips too — `detectUrgentFlags({blood:1}).urgent` is **false on main, true on the branch** (`src/domain.js:65`, through the new `isReportedSymptom` at `:49`). +- **The residual is real and the receipt is a runtime one.** `sanitizeEntry` (`src/domain.js:102`) still reads `input.symptoms?.[key] === true` and `importLedger` (`:133`–`:136`) maps every imported entry through it: on the branch, `sanitizeEntry({symptoms:{blood:1}}).blood` → **false**, `{blood:"yes"}` → **false**, `{blood:"true"}` → **false**, and an imported ledger round-trips to `hasUrgentLedgerContext → false`. The headline "never clear a reported symptom" therefore fails on the one path the PR did not touch, and the same file now holds two opposite readings of "reported" — `isReportedSymptom` for the detector, `=== true` for the write/import path. **Identical on main, so #77 introduces no regression**; reachability is imported or hand-authored JSON only (the UI writes booleans and escalates before sanitizing). +- **One further probe case, mine, offered as a scope question rather than a defect:** `"bloody poop"` — adjective + noun, no in/on/with — is missed by the branch's new `BLEEDING_TEXT`, as it is by main. It is my phrasing, not one of the PR's named examples, so it is the author's coverage call. +- **A probe bug of mine, confessed because it produced a wrong number first:** my initial phrasing harness scored **12/12 on both refs**, which would have read as "the PR fixes nothing". The detector returns an object with keys even when `urgent:false`, and my predicate counted "object with any keys" as urgent, making the test vacuous. Rule restated for my own instrument: **assert on the field that carries the verdict (`r.urgent === true`), never on the shape of the return.** Every number above comes from the corrected harness. +- **Dispatched, not executed:** a bounded contract to **Vincent** (queued, `4b4a8bafedbdd044…`) — test-first on the import path; read reported-ness through `isReportedSymptom` in `sanitizeEntry`; decide the `"bloody poop"` coverage question with evidence; **do not push into `timmy/21-escalation-regression`** (it is the live merge candidate and moving its head under the release job is a race); new branch off `b4be704`, isolated worktree, no merge, no deploy, receipts back. Nothing merged, nothing deployed, no production touch, no credential used. The scope decision — accept the PR's narrower claim or require the import-path hardening first — stays Alexander's.