diff --git a/docs/research/2026-09-01-overhaul/c1a-building-bridge-diagnostic-contract.md b/docs/research/2026-09-01-overhaul/c1a-building-bridge-diagnostic-contract.md new file mode 100644 index 000000000..36e7b3939 --- /dev/null +++ b/docs/research/2026-09-01-overhaul/c1a-building-bridge-diagnostic-contract.md @@ -0,0 +1,64 @@ +# C1a — explain the ramp's fourth cell without changing production + +Lead bounded diagnostic2026-09-05. C1a stopped before golden: full publication +gives [F4180112,F4180113,F4180009,F4180114], seven ordered clip-required parts +in each cell (28 entries). Omitting only CacheBuildings restores the old +partial-engine comparator's three cells/21 entries. Both test-only diagnostic +edits were restored to SHA256 +7B5A14F61ED22614DF34F35EEBA87CE3A95150796FDE1683B4DF041B75FD6400. +No golden or production change is accepted by this contract. + +## Lead-confirmed distinction + +Root read actual BuildShadowCellSetFromParts: its outdoor arm calls the +sphere-only CheckBuildingTransit. The real part-array retail call is NOT that +sphere overload0052C5D0: CBuildingObj006B52A0 calls0052C680. That overload +uses the reciprocal portal's sphere-side test, transformed part box versus +portal plane, then destination box containment. This is ALREADY REGISTERED +AP-159 remainder1, not a new unregistered regression. Root read all of +2026-08-07-ap159-pseudocode.md and all507 lines of C4 closeout handoff. +Do not fix AP-159 or its separate one-ULP tie under this test-only diagnostic. + +Root independently section-mapped paired C:/Turbine/Asheron's Call/acclient.exe, +whole SHA256006FFEADC5D679C871497112A5BD1F87714D0E273E2166BAE5052DDE369297B1. +The actual call006B52E5 (E8 96 73 E7 FF) targets0052C680. Its box calls and +`83 F8 03 / 74 04 / 3B C5 / 75 32` at0052C799 confirm crossing OR SAME side; +the indoor exiting-cell helper's opposite-side predicate must not be reused. +Window hashes:00510FC0/101=20964C49EEA3AA24479F5BCF827FE5AA676558744B6C5FF4740D5CF62F73F55E; +00533840/46=2C12F01D6173CCC8A8DE6A5A36AFBDD4E720B89107CFD02CB1F48C06C8F48D96; +00534080/18=E133D325DD480F77CBF6F80817313077046FFD42BD23555EDDCFF3762FECF310; +006B52A0/92=DD9E243A61B394F88B94896509E220BC6614FD46FEE59069A5431080A45665B2; +0052C680/393-byte window=B10CC0B0206C68A8B469B1564FA8AF7A04A4EC5AFB21588B5C6F738DD50EBA85. + +## Bounded question and output + +In the existing frozen s5-c1a-geometry scratch, extend ONLY the new test class +with one explicitly Purpose=Diagnostic fact, reusing the complete publication +setup. Keep the original semantic assertion and placeholder golden unchanged. +Before publication-derived assertions, inspect the actual ramp owner's retained +whole part array and existing BuildFloodPartBoxes/BuildBspPartSpheres producers; +test-local reflection is allowed, copied registration dispatch is not. Read the +actual cache.GetBuilding(F4180009) and each real reciprocal portal/destination. + +For each ramp part and the0114 bridge, report source ID, actual sphere/box, +destination transform, reciprocal portal index/side/plane, signed sphere-plane +distance and padded radius, transformed box min/max, exact eight-corner side +result, box containment and current sphere containment. Evaluate0052C680's +finite-input predicates from the paired bytes independently; preserve inclusive +cheap-reject ties and the strict which_side epsilon semantics. Use existing +flat containment/box transform primitives; disclose any shared primitive and +check that no sample sits on its registered epsilon tie. No new production +traversal, synthetic cell membership or asserted retail result from a label. + +Return the exact data answering whether ANY real part admits0114 by the retail +box bridge, versus the current sphere bridge; also whether0114 can enter by +another already-present cell's normal box traversal. Do not claim an entire +retail-world CELLARRAY solely from one bridge predicate. No automatic contract +amendment to four cells/28 entries. The lead decides whether the earlier fact +was only an incomplete fixture assumption or this sample exercises AP-159. + +Run one bounded diagnostic after Release green, both clients absent; preserve +TRX/output, exact source hashes and the original failing C1a record. Stop and +return if another prerequisite is missing. No other tests, commits, clients, +agents, perf work, register edits or renderer fixes. Pause immediately for +#476/#478/#479/#480 graphical work; owner FPS deferral remains binding.