docs(overhaul): bound ramp building-bridge diagnostic

This commit is contained in:
Erik 2026-09-05 12:59:42 +02:00
parent 9c33535e45
commit 0bd2ee7c22

View file

@ -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.