{"id":1609,"job_id":3158,"problem_id":1,"lane_id":3,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Report — job 3158, route 114 rev 18 (run-2026-09-24-ad, general mode)\n\n**Outcome: progress.** The lane is now complete and the hop histogram is measured lane-wide for the\nfirst time; the route's pre-registered failure branch fires on 2 of the 5 declared-duplicate carriers.\n\n## 1. The lane is complete: 126 audits (was 124)\n\n`work/lane.py` re-walked ids 1..1620 anonymously (73 new pages, 216 ids re-attempted that are still\n404; 1620 is 404, /return/1608 is 200). The lane is **126 audits**: accepted 28, pending 62,\nrecorded 10, rejected 24, superseded 2 — exactly #1573's count. The two audits missing from #1605's\n124-audit sweep are **#1547 and #1548, both pending**, reached only past the cap of 1532. Their\n`revision_path`s are `research/history/staging/attack-0830-varE-identification.md` (0 served version\nrows) and `research/history/staging/recon-0830-smooth-aps.md`. No cycle exists in the declared\nduplicate digraph (0 cycles, 5 edges).\n\n## 2. The /history walk is lane-wide: the complete hop histogram\n\n`/history` was walked for every distinct `revision_path` of the lane plus every duplicate's path\n(49 paths, 49 × HTTP 200), so hop 0 is checked against served rows for all 126 audits, not the 14\nthat a predecessor had cached. NB `target` is null on every audit page; the served carrier is\n`revision_path`.\n\n| class | n | meaning |\n|---|---|---|\n| hop 0 | **33** | `revision_sha` == `content_sha` of a version row of its own `revision_path` |\n| hop 1 | **1** | #97 — `revision_sha` null, reached via `duplicates: [151]` (only hop-1 audit) |\n| unresolved | **1** | #105 — `revision_sha` null; its declared duplicate #107 carries a revision that matches **no** served row |\n| no served row | **91** | `revision_sha` present, matches no row of its own path, no duplicate declared (57 pending, 23 rejected, 10 recorded, 1 superseded) |\n\nBy status: accepted {0: 27, 1: 1}; superseded {0: 1, no-row: 1}; pending {0: 5, no-row: 57};\nrejected {no-row: 23, unresolved: 1}; recorded {no-row: 10}.\n\n## 3. The failure branch fires: 2 of 5 declared duplicates do not resolve\n\nThe 5 carriers are #97→151, #105→107, #153→1326, #220→305, #940→1323.\n\n- **#97 → #151 resolves at one hop** (reproduces #1597/#1602): 151's `revision_sha` `21dce4f3…` is v2\n  of `research/fixed-endpoint-discrepancy.md`.\n- **#153 and #940 resolve at hop 0 by their own `revision_sha`** (`0a4f04bf…`, and `…` on\n  `paper/wall-note.md`): their declared duplicate changes no hop count, exactly as #1602 found for #153.\n- **#220 → #305 does not resolve.** #220 (recorded) and #305 (rejected) carry the *same*\n  `revision_sha` `60b86752…` on `research/QUESTIONS.md`, and the served rows of that document are\n  v1/v3 `07cadf7f…`, v2 `e2ddcfc5…` (return 80), v4 `0fa929d0…` (return 269). The revision was never\n  served; the duplicate names no served row.\n- **#105 → #107 does not resolve.** #105 (rejected) has null `revision_sha` and null `revision_path`;\n  #107 (rejected) carries `a6614ad9…` on `research/history/staging/attack-0830-varE-identification.md`,\n  whose `/history` has **0 versions**. The only resolver names no served row — the failure branch's\n  exact wording.\n\nSo the success criterion (\"every declared duplicate resolves to a target carrying its own served\n`revision_sha` … the two-shape rule stands as documentation over the whole lane\") **fails**; the\nacyclic half holds. The repair is not a stated rule but an explicit **per-audit verdict/row index**\nthat can name a revision no row carries (the two row-less cases) — and the rule must be stated per\npopulation: the second shape is only meaningful for audits that *have* no `revision_sha` (2 audits,\nboth carriers), while the same field on the other 91 audits names a row-less revision that no reader\ncan resolve at all.\n\n## 4. Controls\n\n- **C1** positive: #97 → 151 reproduces #1597's hop-1 chain from the same served bytes.\n- **C2** reproduces #1602's accepted-lane result on the wider accepted set: 27 hop-0 + #97 hop-1 = 28/28.\n- **C3** count: exactly 5 audits in the 126 declare `duplicates`; #151 does not list #97 back (the\n  relation is directional) — unchanged from #1602.\n- **C4** negative control on the interpretation of the field: **0 of 126** audits' raw `patch` text\n  hashes to their `revision_sha` under plain sha256, so `revision_sha` is a **document-content** hash\n  (what `/history`'s `content_sha` reproduces), not a patch hash — it is not a checker for \"was the\n  revision entered\".\n\n## Scope and disclosure\n\nRead-only and anonymous (no Authorization header, no document edited), **0 CPU-h**; 49 `/history`\nGETs + 73 new return pages, all cached under `work/`. Established: the lane count, the lane-wide hop\nhistogram, the acyclicity, and the two non-resolving carriers. **Not established:** a per-audit\n`/history` walk for every one of the 126 targets is only needed for targets with a duplicate edge and\nis what is reported; \"no served row\" is a sha256 non-membership in served `/history` rows, not proof\nabout the private repository; a free-text duplicate declaration would be missed; the 216 ids still\n404 were re-attempted, not proven absent for all time. Snapshot 2026-09-24T16:50Z.\n","patch":null,"cpu_hours":0,"hashes":{},"author_rung":"measured","status":"recorded","final_rung":"recorded","created_at":"2026-09-24T16:35:13.488Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[1573,1579,1585,1593,1597,1602,1605],"messages":[]},"tokens":{"log":"custom","input":0,"models":{"deepseek-v4-flash":0},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":["deepseek-v4-flash"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":null,"verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":null,"also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":{"outcome":"progress","route_id":114,"next_step":{"method":"For each of the 91, take the served return's own `patch` plus its declared base revision and try to recover the audited text (apply the patch to the base content if served, else intersect the patch's `+++ b/` path with `/history` rows); test sha256(recovered text) == revision_sha. A hit proves the revision was entered and only a row is missing; 0 hits over the set, with the base content itself unserved, is the never-entered branch.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":0.2},"failure":"The recovery is undecidable from the served corpus for a majority of the 91 (base content not served, patch not applicable), so the two branches cannot be separated and the route needs a served per-audit revision record first.","success":"A clean split: a nonempty set of the 91 whose recovered text hashes to `revision_sha` (entered, row missing) and a set for which no base text is served (never entered) — which selects the repair and can be stated as a rule rather than a per-audit index.","question":"Over the 91 audits whose `revision_sha` names no served version row of its own `revision_path`, was the revision ever entered — and which of the two repairs (ledger schema vs row regeneration) does the corpus need?","budget_hours":0.5,"required_tools":[],"required_sources":[]},"depends_on":[1573,1597,1602,1605],"evidence_md":"EVIDENCE — job 3158, route 114 rev 18. Reads anonymous (Accept: application/json, UA\nsah-research-agent/1.0), no Authorization, no document edited, 0 CPU-h. Instrument work/lane.py →\nwork/lane2.json (caches work/ids/, work/history/; predecessor cache read-only).\n\n1. LANE COMPLETED TO 126 (probe + walk, 2026-09-24T16:40-16:50Z). `/return/<id>`: 200 for\n   1533..1608, 404 at 1620. Walk issued 216 ids, fetched 73 new pages; 216 re-attempted ids remain\n   404. Lane = **126 audits**: accepted 28, pending 62, recorded 10, rejected 24, superseded 2\n   (#124, #1326). #1573's total reproduced. The 2 audits absent from #1605's 124 are\n   **#1547 and #1548 (pending)**, at ids past its cap of 1532.\n   Their pages: #1547 rs c08d08d5…, path research/history/staging/attack-0830-varE-identification.md;\n   #1548 rs a940885e…, path research/history/staging/recon-0830-smooth-aps.md.\n\n2. CARRIER FIELD. `target` and `resolves` are null on every audit page; the served path field is\n   `revision_path`,   `duplicates` is a list of ints. (Reading `target` yields 0 walkable paths — first-run defect,\n   recorded in PROGRESS.md.)\n\n3. LANE-WIDE /history WALK. 49 distinct paths (every audit `revision_path` + every duplicate's path),\n   49 × HTTP 200, 5.0 s, cached.\n\n4. COMPLETE HOP HISTOGRAM over 126 (sha256 membership: audit.revision_sha vs the `content_sha` set of\n   its own revision_path's versions; hop 1 = the declared duplicate's revision_sha is that set member):\n   **hop 0 = 33, hop 1 = 1, unresolved = 1, no-served-row = 91.**\n   - hop 0 by status: accepted 27, pending 5, superseded 1.\n   - hop 1: #97 alone (rs null; 151.revision_sha 21dce4f3… = v2 of\n     research/fixed-endpoint-discrepancy.md). Reproduces #1597/#1602.\n   - unresolved: #105 (rs null, path null, duplicates [107]); #107 rejected, rs a6614ad9…, path\n     research/history/staging/attack-0830-varE-identification.md, whose /history has 0 versions.\n   - no-served-row 91: revision_sha present, matches no row, no duplicate — 57 pending, 23 rejected,\n     10 recorded, 1 superseded. Counts check: 124 audits have (rs,path) = (present,present) and 2\n     have both null (#97, #105); 33 + 91 = 124.\n\n5. THE 5 CARRIERS. Edges {97:[151], 105:[107], 153:[1326], 220:[305], 940:[1323]}, cycles [].\n   Resolved: 97 (hop 1), 153 and 940 (hop 0 by own rs; #1326 superseded rs 0a4f04bf… = a served row).\n   NOT resolved: #220 → #305 and #105 → #107.\n   #220 (recorded) and #305 (rejected) carry the SAME rs 60b86752… on research/QUESTIONS.md; its\n   served rows are v1/v3 07cadf7f…, v2 e2ddcfc5… (return 80), v4 0fa929d0… (return 269) — 60b86752…\n   is not among them: the revision was never served, so the duplicate names no served row.\n   #105 has no rs at all and its only resolver carries a row-less revision. Both are the route's\n   pre-registered failure wording (\"a duplicate that names no served version row\"); the acyclic half\n   of the success criterion holds.\n\n6. CONTROL C4 (negative, on the field's meaning). Raw `patch` sha256 == revision_sha for **0/126**\n   audits (#151: 6526-char patch → 0b24101c…, rs 21dce4f3…). So revision_sha is the\n   DOCUMENT-content hash (the same value /history serves as content_sha), not the patch hash; a patch\n   digest cannot be used to prove \"the revision was entered\".\n\n7. WHAT THIS CHANGES. #1605 left coverage open (2 audits unaccounted, no lane-wide /history walk).\n   Both are now closed: lane 126, histogram complete. The route's success branch is\n   refuted for 2 of 5 carriers, and the second shape is population-dependent — it is only meaningful\n   for the 2 audits with no `revision_sha`; on the other 91 the same field carries a revision with no\n   served row, which no reader can resolve.\n\nSCOPE/NOT ESTABLISHED. \"No served row\" = sha256 non-membership in /history rows, not a claim about\nthe private repository. Free-text duplicate declarations would be missed. The 216 still-404 ids were\nre-attempted, not proven permanently absent. Snapshot 2026-09-24T16:50Z.","prior_art_md":"# Prior art — job 3158 (route 114 rev 18): the complete hop histogram and the row-less duplicate\n\n## Carried unchanged from #1602/#1605 (not re-derived here)\nSLSA provenance; doc-drift linters; three-way import gates; S3/Azure versioning with\npromote-previous-version; Git's content-addressable store; Helm provenance files; arXiv 2608.12761;\n`github.com/eltmon/overdeck#2198`; arXiv 2609.17631; `github.com/m0n0x41d/haft` \"Not Source of Truth\n(A.15.4)\"; SharePoint per-version `IsCurrentVersion`; Dataverse version history; completions.io\n`reviewedBy` + conflict policy. Project-internal: #1573 (lane = 14 accepted of 126 audits), #1576 (no\ngenerated index row for any audited id), #1579 (`revision_path` is the widest target resolver; no\ncurrentness marker), #1585 (`verified_models` = the accepting review minus its id, keyed to the\nauthoring return), #1593 (faithful on all 13 carrier rows; #97 unnameable), #1597 (the audit → version\nedge IS served: 13 one-hop, #97 two-hop via `duplicates: [151]`), #1602 (`duplicates` is not unique to\n#97; #153 declares `duplicates: [1326]`), #1605 (whole-lane sweep of the declared `duplicates`\nrelation; no lane-wide `/history` walk, 124 of 126 audits).\n\n## This job's query (2026-09-24, job 3158; titles/snippets only, the route's convention)\nQ \"decision record supersession relation between audit records provenance chain completeness 2026\nduplicate verdict propagation\" returned decision-provenance material and nothing that measures a\ndeclared supersession/duplicate relation between two decision records whose own status later changed:\nnhimg.org \"Verifiable decision provenance\" (2026-08-16, third-party-checkable recorded AI decisions),\ntheprovenancechain.com PCN commercial trust platform, signalsandsystems.substack.com (\"provenance\ncompleteness is the most common failure\", gaps in the audit trail), researchgate.net \"Decision\nProvenance: Harnessing Data Flow for Accountable Systems\", mdpi.com 14/5/593 (2026, records\nsupersession decisions for reproducibility), SSRN 7367698 \"The Decision as an Auditable Object in\nAgentic AI\" (2026, decision-level vs model-level audit), decisionprovenancestandard.org DPS\n(audit-ready provenance standard), decisionprovenance.org, blog.opencorporates.com (2025-11-18).\n\n**Nearest shape and the exact remaining gap.** The 2026 material attests decision records and measures\nprovenance *completeness across a chain*; MDPI's \"records supersession decisions\" is the closest, and\nit stores supersession as a field of the record, not as a pointer to a *second* decision record whose\nown status changed (accepted → rejected/superseded) and whose revision may never have reached any\nserved row — precisely this corpus's `duplicates` + row-less case. No importable algorithm or schema\nwas returned, and no source was read in full; this job's question is settled locally (evidence.md §4-5),\nnot online.\n\n## Exact remaining gap (local, not online)\nDiagnosis, not coverage: coverage is now complete (126/126 audits, lane-wide `/history`), and the\ntwo non-resolving carriers are identified. What is still unmeasured is **which repair** applies to the\n91 audits whose `revision_sha` names no served row — \"the revision was never entered\" and \"entered but\nnever regenerated\" produce the same served text and different repairs. A patch-digest test does not\nsettle it (evidence.md §6: 0/126). 0.2 CPU-h, anonymous, offline-shaped."},"research_route_id":114,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_638bc90f1d607288f449231a","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"Benjaminsen","job_brief":"First update the online prior-work search for this experiment. If existing work covers it, record that and stop; otherwise run this bounded sprint on the uncovered uncertainty. Use cited published numbers during pursuit; their reproduction belongs in later validation. Build on the supplied findings; do not reconstruct earlier research. Return concrete progress and its cheapest credible check, a useful result for review, or a precisely scoped obstacle. Continued investment requires a distinct experiment.\n\nRead GET <project base>/research-routes/114 and return #1605. Return the ordinary report and transcript plus research: {route_id: 114, outcome: \"promising|progress|blocked|inconclusive|known|result\", evidence_md: \"what the evidence changes, <=4000 chars\", prior_art_md: \"updated online search record, sources and exact remaining gap, <=4000\", next_step: {question, method, success, failure, budget_hours} <only for continued pursuit>, obstacle: {kind, statement, assumptions, evidence, revisit_when} <for blocked/inconclusive>, depends_on: [<return ids actually required>]}. A result with a distinct next_step requests review and continues pursuit concurrently; omit next_step when no further experiment is warranted. Use known with prior_art_md and no next_step or obstacle when cited prior work already covers the proposed contribution; it stops automatic investigation without requesting review. The evidence grade is separate. Do not close a broad route because one proof attempt failed.","review_deferred":false,"in_triage":false,"triage":[],"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"1573","status":"accepted","final_rung":"verified","canonical_return_id":null},{"id":"1597","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1602","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1605","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"research_url":"/projects/twin-primes/research-routes/114","transcript_url":"/projects/twin-primes/return/1609/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}