From f4bf5ffab88a8f8b53f582e492ffd9c0dbf938b5 Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 5 Sep 2026 15:37:23 +0200 Subject: [PATCH] Record C1a bridge scope finding without changing production or golden --- ...-09-01-campaign-overhaul-world-solidity.md | 7 +++ .../478-final-correctness-lanes.md | 5 +- .../c1a-bridge-audit-finding.md | 61 +++++++++++++++++++ .../s5-consumers-material-closeout-packet.md | 10 +++ 4 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 docs/research/2026-09-01-overhaul/c1a-bridge-audit-finding.md diff --git a/docs/plans/2026-09-01-campaign-overhaul-world-solidity.md b/docs/plans/2026-09-01-campaign-overhaul-world-solidity.md index 37ac204bc..b56c82baa 100644 --- a/docs/plans/2026-09-01-campaign-overhaul-world-solidity.md +++ b/docs/plans/2026-09-01-campaign-overhaul-world-solidity.md @@ -843,6 +843,13 @@ owner gate owed. No production changes since graphical0ae2666ef. C1a's unresolved AP159 bridge mismatch is not blessed by a four-cell golden; read-only audit continues. FPS/C2 deferred; G4FAIL/no main merge. +**C1a scope finding:** `c1a-bridge-audit-finding.md` preserves the unpinned +three-cell assertion and existing AP159 diagnosis. Static audit corroborates +primitive identities but existing captured inputs do not independently close +all retail outgoing paths/containment. No automatic four-cell golden or +production fix; request explicit scope expansion before AP159 repair (or +explicit owner decision to narrow the witness). FPS deferred, G4 unpassed. + ## 14. Risk register (condensed) - **R1 second scene graph.** Graph records own only topology/membership facts; diff --git a/docs/research/2026-09-01-overhaul/478-final-correctness-lanes.md b/docs/research/2026-09-01-overhaul/478-final-correctness-lanes.md index f6e4e5dea..9799cf0d3 100644 --- a/docs/research/2026-09-01-overhaul/478-final-correctness-lanes.md +++ b/docs/research/2026-09-01-overhaul/478-final-correctness-lanes.md @@ -52,7 +52,8 @@ manifest AEC2E8AB0C19AACFA39363ED538617BBF9DBC0374CEA5D5174CC98B8A89A57F5. These close the #478 repair/cleanup/test-maintenance verification, not G4. Owner brightness/held-item/stability acceptance remains owed; Rynthid's affected part is unidentified. C1a's full-world three-vs-four-cell assertion -remains preserved and its golden unpinned; a bounded read-only audit of the -existing AP-159 bridge evidence is in progress. No production repair is +remains preserved and its golden unpinned; the bounded read-only audit of the +existing AP-159 bridge evidence returned `c1a-bridge-audit-finding.md`, an +explicit scope-expansion decision before production repair. No repair is authorized by that test-only diagnostic. FPS/#481/C2 comparison deferred. No main merge. diff --git a/docs/research/2026-09-01-overhaul/c1a-bridge-audit-finding.md b/docs/research/2026-09-01-overhaul/c1a-bridge-audit-finding.md new file mode 100644 index 000000000..a493849dd --- /dev/null +++ b/docs/research/2026-09-01-overhaul/c1a-bridge-audit-finding.md @@ -0,0 +1,61 @@ +# C1a bridge audit — contract finding, no golden or production change + +2026-09-05, after final lighting verification. The existing C1a test-only +contract remains blocked as written. The complete publication setup calls +`CacheBuildings`; the older three-cell comparator does not. Full production +therefore exposes the already registered AP-159 sphere-only building bridge, +not a demonstrated new renderer regression. The original expected three-cell +assertion and placeholder combined hash remain unchanged. + +Wegener performed a bounded independent read-only audit; lead checked the +named functions and actual diagnostic source. Production `CellTransit.cs` +1095–1101 still invokes the sphere-only `CheckBuildingTransit` on the +part-array outdoor branch. The existing diagnostic contract already seals +the paired retail part-array bridge call006B52E5→0052C680 and its box gate. +No new port, test run, capture, or production change was made for this audit. + +Lead rechecked executable SHA256 +006FFEADC5D679C871497112A5BD1F87714D0E273E2166BAE5052DDE369297B1, +read named `BBox::LocalToLocal`005B1E60's eight-corner refit and the complete +`BSPNODE::box_intersects_cell_bsp`0053C880. Section-mapped raw byte checks: + +-0050D600 `8B41208B000598000000C3`: GetBoundingBox's gfx bound-box offset98. +-00533910 `8B4954E9985F0000`: CCellStruct tailcalls BSPTREE005398B0. +-005398B0 `8B09E9C92F0000`: BSPTREE tailcalls BSPNODE0053C880. +-0053CA05 `8B453085C074078BE8E980FEFFFF`: positive-node chain tail. + +These corroborate primitive identity/structure, **not** exact installed-scene +retail arithmetic or a complete three-cell closure. Lead's two attempted +broader call-scanning commands returned exit1 without output, so no native +call-count result from those commands is credited. + +## Why the existing capture cannot decide the complete retail closure + +1. The diagnostic calls production `FlatBspQuery.BoxIntersectsCellBsp` + (line311). The four bridge summaries say boxFalse/sphereTrue, but omit + the rejecting destination BSP node/planes, corner distances and decisive + containment margins. Existing epsilon margins apply to the portal plane, + not this rejection. +2. Building portals are filtered to destination0114 (line247). Other outgoing + portals from0009 are not independently covered. The0112/0113 alternative + path summaries (lines358–374) reuse production traversal and list admitted + candidates, not an independent verdict on every outgoing edge. +3. Bounds, placements and destination matrices come from production owners. + Their captured values permit cross-checking arithmetic, but do not by + themselves prove authored bounds, Setup composition and retail cell-relative + transforms independently. + +No four-cell/28-entry golden amendment is justified. Completing a faithful +AP-159 production repair is outside the current test-only contract; it needs +an explicitly expanded bounded contract, including those independent input, +containment and full outgoing-closure proofs before implementation. Alternatively +narrowing the witness to current-production determinism would require an +explicit owner decision and must keep the retail discrepancy visible. Neither +choice has been assumed. This is a scope stop, not a claim that static +recovery is impossible or that an extra cell proves the owner's Rynthid issue. + +Preserved scratch `s5-c1a-geometry`: +test SHA256D612AEDA85C76E181F33A58C2488A339944A4B954EF91645B68ECF48DEDA1AC8; +`artifacts/s5-c1a-building-bridge-diagnostic/c1a-building-bridge-r1.trx` +SHA25643AC1D7AB407D22D4EF6A9F318DD36FC738300574EE4A5FE970DAE99B5F25EB6. +Lead rehashed both unchanged. FPS remains deferred; G4 FAIL, no main merge. diff --git a/docs/research/2026-09-01-overhaul/s5-consumers-material-closeout-packet.md b/docs/research/2026-09-01-overhaul/s5-consumers-material-closeout-packet.md index d7098a37f..7e72458ed 100644 --- a/docs/research/2026-09-01-overhaul/s5-consumers-material-closeout-packet.md +++ b/docs/research/2026-09-01-overhaul/s5-consumers-material-closeout-packet.md @@ -5019,3 +5019,13 @@ passes. `478-final-correctness-lanes.md`. No src/samples/tools changes since graphical0ae2666ef, no FPS work. #478 verification complete, owner acceptance still owed. C1a remains unpinned with its original three-cell assertion intact; read-only AP159/primitive/closure audit, not a production repair, continues. + +Read-only C1a audit returned a scope finding, `c1a-bridge-audit-finding.md`. +Real building-cache publication exposes existing AP159; the partial comparator +omits it. Existing four bridge rejections share production containment and +omit decisive BSP margins/all outgoing edges/independent authored inputs, so +neither an entire retail three-cell closure nor a four-cell golden is accepted. +Original assertion/hash placeholder and scratch hashes remain unchanged. +A production AP159 repair needs a separately expanded contract; narrowing +the witness needs explicit owner approval. No option assumed. Scope stop, +not static-impossibility or a proved Rynthid cause. FPS deferred, G4FAIL.