docs(overhaul): record extended stability and bound ramp diagnostic

This commit is contained in:
Erik 2026-09-05 19:24:41 +02:00
parent 051db2e3bb
commit 9baef7c507
7 changed files with 375 additions and 14 deletions

View file

@ -176,7 +176,9 @@ the original operation and result; normal unavailable/recreation cases remain
unchanged. One independent API/production review PASS, six pre-fix failures,
separate acquire/present sabotage failures, restored82/82, and lead integrated
Release0W0E/17051pass/0fail/0skip. `research/2026-09-01-overhaul/477-first-failure-verification.md`.
The prepared extended cathedral/Neftet run is next. This corrects error
The extended cathedral/Neftet run completed over23minutes, exit0/graceful,
27/27 revealed checkpoints, nine PNGs inspected narrow PASS/provisional and
no new Windows GPU/crash events. Both clients closed. This corrects error
propagation, not the initiating AMD fault; #477/G4 remain open, FPS deferred.
Windows denied access to the named watchdog dump; no ACL changes attempted.

File diff suppressed because one or more lines are too long

View file

@ -901,11 +901,31 @@ FPS unchanged. Native pre-fix6expectedFAIL, separate sabotages3each, restored
next. No AMD root-cause/stability clearance or new retail deviation. AP159,
owner wall acceptance and G4 remain open; no main merge, FPS deferred.
f4da814af commits that diagnostic repair. Extended reproduction is now live:
PID404, exec55540, start18:57:38+02; exact run directory and binary identities
in verification report. First login/cathedral-arrival PNGs opened, narrow
provisional PASS only. Run/exit/stability verdict is pending; never build or
launch beside it, and do not treat observation timeout as process exit.
f4da814af commits that diagnostic repair. Extended reproduction completed:
PID404/exec55540 terminal exit0/graceful;18:57:3819:20:41+02 through final
checkpoint, over23minutes. All27checkpoints complete/visible/zero invariants/
transit idle; login alone records cue=true, the other26false. Nine PNGs opened
narrow PASS/provisional; no new Windows GPU/crash events through19:21:32.
Both clients/debugger absent, ACE13340 up. Exact identities/limits in the
verification report. This workload did not reproduce the intermittent AMD
reset; it does not close its cause, final lifecycle requirements, or owner G4.
**C1a native recovery (packet§64):** lead and independent read-only audit
confirm the part-array building bridge's box gates AND immediate destination
expansion before the next building portal. Named/paired anchors and remaining
raw-input/containment/full-outgoing evidence are recorded in
`c1a-bridge-native-contract.md`. No production repair or four-cell golden;
the current test-only boundary remains. The known retail cathedral leak stays
separate from this acdream-only retained-set discrepancy. Functional wall
acceptance does not require retail's exact final coordinate. FPS deferred.
The bounded test-only authored-input diagnostic is dispatched in preserved
s5-c1a-geometry under `c1a-authored-input-diagnostic-contract.md`: write-only
until explicit lead execution release. One partial test file, original
semantics/golden unchanged. Further paired decoding resolves native indoor
cheap-reject equality as inclusive, unlike current strict comparisons;
AP-159 remainder3 records this distinct existing boundary tie in the same
commit. No occurrence in the installed ramp has yet been measured.
## 14. Risk register (condensed)

View file

@ -1,6 +1,7 @@
# #477 first-failure propagation and extended reproduction
2026-09-05. **First-failure repair committed f4da814af; extended live run IN PROGRESS.**
2026-09-05. **First-failure repair committed f4da814af; extended run completed,
lead PROVISIONAL PASS for this workload, exit0/graceful. Both clients closed.**
No AMD reset repair or G4 PASS claimed.
Contract `477-first-failure-contract.md` at `c8ec04e97`, production base
`cd888a493` (the verified #482 wall fix). FPS remains deferred.
@ -131,7 +132,10 @@ Graphical run results remain pending. Both clients were absent and ACE
UDP9000/PID13340 was up before dispatch; recheck before launch. Architecture
documents the error boundary. No new intentional retail deviation was added.
## Extended run launched — not yet a completed gate
## Extended run launch record — historical in-progress observations
The following launch/interim record is superseded by the completed result
below. PID404 and exec55540 are now terminal; do not poll/reuse them as live.
`logs/selfgate-20260905-185738-477-extended-f4da814af/`, source HEADf4da814af
clean at launch; same reviewed/tested DLL hashes above, no rebuild. Preflight
@ -161,3 +165,67 @@ adjacent inspected PNG; preserve this distinction. Cathedral minute1 is also
completed/visible/cuefalse/invariants0/transit idle. Initial PNG SHA256:
login `A36A640DE0B1070D7F3BBD4606A38D378B169ABC8045B783737ABFD48045B6D9`;
cathedral arrival `CE1F49B748FCDBBE6AE9963425DBCE2FE4BB16052AAF749AD46F7687F6086B5A`.
## Completed extended workload — PROVISIONAL PASS, not AMD-cause closure
Same run directory, route and App/Core DLL hashes; lead rehashed both DLLs
unchanged during the final phase. No rebuild, second client, validation layer,
or performance work. Client start18:57:38.768+02, final checkpoint
19:20:41.320+02: over23minutes elapsed. Runner55540 completed **exit0** and
reported **client exit code0**. Log records script completion, graceful logout
requested and confirmed. At19:21:32+02 neither client nor cdb exists; ACE
UDP9000/PID13340 remains up. No timeout/forced-close fallback was reported.
All **27/27** checkpoint records were parsed: completed/visible=true,
invariant failures0, transit idle=true throughout. Login alone records
waitCueShown=true, as preserved above; the other26 are false. Final generation5
has pending live teardowns0, landblock retirements0, staged mesh uploads0,
composite warmup0, and parsed physics graph GfxObj/Setup/Cell counts0/0/0.
This is a pre-close checkpoint, **not** a complete post-shutdown retained-row
ledger or a fresh reconnect/capped/uncapped lifecycle gate.
No ErrorDeviceLost, VulkanCallException, unhandled/fatal exception, script
failure or timeout match in either terminal client log. Windows System and
Application queries over18:57:3819:21:32+02 returned zero events, therefore
zero Display/amdkmdag/WHEA/DxgKrnl/4101 or matching application-crash/WER
records. Earlier interim query used ErrorAction Stop and stopped on the
explicit NoMatchingEventsFound result; it supplied no completed audit. The
final bounded query explicitly handled only that empty-window condition and
would throw on a different event-access error. The original watchdog dump
remains access-denied and unanalyzed.
Lead opened all nine PNGs in
`logs/selfgate-20260905-185738-477-extended-f4da814af/artifacts/screenshots/`.
Every row below is **narrow PROVISIONAL PASS** for a revealed, coherent visible
scene with no portal caption. Cathedral/Neftet settled frames show the held
item and lit player/near geometry. Login's close-camera transparent avatar
limitation remains; this is not avatar-opacity parity. Cathedral views include
open exterior sight lines and are not proof that the known retail leakage is
fixed. No exact movement trajectory, actual jump arc or whole-scene retail
equivalence is inferred from the input commands/screenshots.
| PNG | SHA256 |
|---|---|
|477-long-00-login.png|A36A640DE0B1070D7F3BBD4606A38D378B169ABC8045B783737ABFD48045B6D9|
|477-long-1-arrival.png|CE1F49B748FCDBBE6AE9963425DBCE2FE4BB16052AAF749AD46F7687F6086B5A|
|477-long-1-settled.png|E6AF925B79B832FFA72ABB6B9E9CE0EF22981866B0061047688A0C0C4FCAF180|
|477-long-2-arrival.png|4069920C4CDB5D2C6E02B7F90D827AB88317997CCEF020C1AF9BF0F5964F684F|
|477-long-2-settled.png|DBE076A0DF43ED528996B25DDF858DFCFADAD6927E45B24CD559DDE2F49BC9F8|
|477-long-3-arrival.png|3346BB9DF31F505DD7B8580A3D01A8C32F9E0E6B4C371B8FFA0F36F072597D22|
|477-long-3-settled.png|677A037D5318C901A4EEA331ACF8A409A7822BC0ED9DA419BDD93E8CA9DF26AE|
|477-long-4-arrival.png|61B16ED14E7B2A60B5DB3F2F41DB456C0F3EC6D9BF8BBE1072E7FADD00D004F9|
|477-long-4-settled.png|FBC91963A73DA13E4F2350F4AEB78D4FDBA15C2B0FA7CF450FC3961168F51EA7|
Terminal evidence SHA256 in the same run directory:
- client.log: `5FA610EC5D7BD6CC8F529B956D0FE764324E03F9F79CC86120CD0616176C3CC5`.
- client.err.log: `F0B907695C511900A156DF05E7F0B6DBBF3BA8D0063BD13DAD42F0DBE0942FDE`.
- run.json: `743CAC3169C5D964CFD0F597AAAA8DBF148C9A7F6493CCCEADF805E34778AD20`.
- artifacts/world-lifecycle.checkpoints.jsonl:
`F00D3A8D4DF954CE352D82F344D3E2647A0F6CDE5AB42387A4884889243A92A0`.
This longer ordinary-render-settings scripted workload did not reproduce the
owner's intermittent crash. The new error boundary preserves the initiating
native failure if it occurs; it does not establish that its cause is repaired.
Owner G4 acceptance, remaining canonical lifecycle/geometry proof and the
AP-159 ramp discrepancy are still open. FPS remains deferred; no main merge.

View file

@ -0,0 +1,121 @@
# C1a — independent authored-input and outgoing-edge diagnostic
Lead bounded test-only extension,2026-09-05. This completes the missing
evidence identified in `c1a-bridge-audit-finding.md`; it does not authorize
the AP-159 production repair or a golden amendment. Read that finding,
`c1a-bridge-native-contract.md`, and the existing preserved diagnostic first.
Known retail cathedral leakage remains outside the fix target; no FPS work.
## File and execution ownership
Work only in preserved sibling scratch `s5-c1a-geometry`, HEAD25e2702d3.
Existing untracked witness SHA256
`D612AEDA85C76E181F33A58C2488A339944A4B954EF91645B68ECF48DEDA1AC8`.
Allowed: change its declaration to `sealed partial class` and add one
`LandblockGeometryMembershipInstalledDatTests.AuthoredDiagnostic.cs` partial
file. All existing methods, semantic assertions and placeholder hash remain
byte-for-byte unchanged. One new Purpose=Diagnostic fact plus private
test-local helpers; no second registration/membership engine or production
seam. No other files, commits, agents, corpus or register changes.
**Write-only phase until the lead releases execution.** Existing campaign
client PID404/exec55540 owns the GPU. Do not restore/build/test or launch/close
anything while it runs. Return when code is ready; do not infer permission
from elapsed time or disappearance of a stale log. The lead will separately
confirm both client names absent and release one Release build/diagnostic.
## Inputs must come directly from parsed installed DAT
Use the existing bounded DatCollection and four complete file-identity
checks. Source owner: raw F4180112.StaticObjects, exactly one Stab.Id020009A2;
retain the ordered index and Stab.Frame. That frame is landblock-local,
**not** a child frame of EnvCell.Position. Read Setup020009A2's seven indexed
Parts and its requested Resting0x65 placement frame, otherwise Default0 only.
Record actual selected key, part frames, DefaultScale, ParentIndex and
animation/motion IDs; unsupported inputs produce an explicit finding, not an
invented fallback. Object scale and Setup DefaultScale must not be conflated.
For each part, scan every raw VertexArray vertex Origin to derive its AABB;
include extremal vertex IDs and source float bits. Assert the physics BSP
exists and take its root BoundingSphere directly, not drawing/Setup spheres
or a sphere-derived box. Preserve all seven entries, including repeated IDs.
Derive placed spheres/eight-corner boxes independently from raw frames.
Assert this corpus's landblock origin is F418/zero offset explicitly.
Production WithPublishedProduct, retained shapes, boxes, spheres, flat planes
and containment may be read ONLY as comparison subjects. Never use their
computed values as the independent oracle's input. Report every mismatch,
including per-component transform differences; no arbitrary tolerance may
turn a mismatch into a parity assertion.
## Complete outgoing edges, independent containment
Enumerate every raw portal of source0112 and0113 and every authored building
portal attached to outdoor0009, in original order. Do not filter to0114.
Use raw LandBlockInfo.Buildings/frames to establish the0009 building anchor.
For each destination, resolve raw EnvCell and its Environment.CellStructure.
Building reciprocal index selects destination.CellPortals; PolygonId then
resolves through CellStruct.Portals/Polygons (ID, not array slot). Read the
ordered visual-polygon vertices, not PhysicsPolygons. Raw side is
`(Flags & 2) == 0 ? 1 : 0`. Preserve full flags and missing/sentinel branches.
For every relevant part/edge report both sphere and eight-corner box values,
portal plane and signed distances, cheap-reject and box-side verdicts. Use
the distinct indoor and building admission predicates in the native note.
Independently walk the raw destination CellBSP's positive chain: record node
depth/type, original splitting-plane bits, child presence, all corner
distances, and the first all-negative reject. Null root is unavailable;
terminal positive child is distinct. No production BSP query supplies this
verdict. Print per-edge first rejection/acceptance and a complete inventory
of outgoing destinations. If an admitted edge reaches beyond the known
three-cell set, report it; do not quietly bless or suppress it. Report raw
world AABB extents for exterior exits; do not pretend an edge inventory alone
implements retail's entire outdoor flood or insertion order.
## Arithmetic evidence and limits
The lead read named init_end00534200, Position::localtolocal004527F0,
UpdateParts005190F0, Frame::combine00518FD0, SetPlacementFrame005193D0,
add_obj_to_cell005159E0, Frame::cache00534DF0 and make_plane005383D0.
The paired executable identity is in the native note. Separate Capstone
recovery by Wegener and the lead confirms make_plane337-byte SHA256
`954D155C9F613337281C140DDD4E3014EFA9EB48ED2518274B4CB4B5B3633344`.
Its fan is (v[i]-v0) cross (v[i+1]-v0), i1..n-2. The native X/Y cross
terms spill float before extended accumulation; Z accumulates/spills float
per triangle. Reciprocal length spills float but X uses the retained
reciprocal; Y/Z reload the spill. D averages the ordered dot products over
ALL vertices, not just vertex0. There is no degenerate-normal guard here.
Do not copy the damaged Y/Z expressions in the named pseudocode.
Lead separately decoded Frame::cache's213-byte window SHA256
`A70F8F36CFA669CB39A7C44A7264EC35A7FFDA484CCBC5B629F1C4D716B02B68`:
the final terms are the ordinary quaternion basis entries, not the damaged
named reuse of x*x. Record the raw quaternions and construct the basis
test-locally; do not borrow production matrices. Frame::set_rotate00535080
normalizes composed quaternions before caching. Use explicit scalar/wide
diagnostic math and declared float stores where recovered, retaining raw
float inputs. This is **not** proof of bit-exact x87 arithmetic: active
control-word state and extended intermediates are not captured.
Report distances from every decisive +/-0.000199999995f boundary and the
production-vs-independent delta. A near-boundary ambiguity is a finding to
return, not a reason to patch the shared epsilon rule. The separate AP-159
one-ULP tie, drawing-sphere fallback and general scaling scope stay open.
Lead follow-up paired decoding also confirms the native indoor cheap gate
includes equality: side0 d <= +pad, side1 d >= -pad. Use these native
predicates, report current production's strict-comparison difference if
reached, and do not repair it here. AP-159 remainder3 records the finding;
the native note contains the exact signed-radius stores/status-word branches.
This fact's successful execution means the diagnostic completed, not that
production/C1a/G4 passed. No pinned three-cell or four-cell product hash.
## Return
Before execution release: exact changed files/hashes and code-ready result.
After release: one isolated Release build and exactly this diagnostic with
explicit installed-DAT opt-in, unique TRX/output; report process exits,
actual authored inputs, first decisive containment plane/margin per rejected
bridge and all outgoing-edge verdicts. Stop on missing inputs or ambiguous
native arithmetic and return the evidence. No automatic follow-on repair,
golden edit, broad suite, or graphical run.

View file

@ -0,0 +1,119 @@
# C1a / AP-159 building bridge — recovered native contract
2026-09-05. Read-only recovery while the #477 extended graphical run owns
PID404/exec55540. This records a concrete missing behavior, not a production
repair authorization, a new golden, or a claim about AMD crash causation.
The test-only boundary in `c1a-bridge-audit-finding.md` remains in force.
## Paired source and independent check
Wegener independently read the named functions and paired machine code. The
lead separately read the functions below and section-mapped the executable:
`C:/Turbine/Asheron's Call/acclient.exe`, SHA256
`006FFEADC5D679C871497112A5BD1F87714D0E273E2166BAE5052DDE369297B1`.
Image base00400000; .text RVA/raw1000; .rdata RVA/raw392000. These windows
are file reads, not debugger calls or executed target functions.
| Native anchor | Recovered behavior |
|---|---|
| CSortCell::find_transit_cells00534080 | If this sort cell has a building, tailcall the part-array building overload006B52A0. |
| CBuildingObj::find_building_transit_cells006B52A0 | Visit authored building portals in order; resolve each destination through CBldPortal::GetOtherCell0053BC30. |
| CBldPortal::GetOtherCell0053BC30 | CEnvCell::GetVisible, not a load request. Skip an unavailable destination. |
| Call006B52E5 | Calls0052C680 with the reciprocal portal index and complete part array, not the sphere overload0052C5D0. |
| CEnvCell::check_building_transit0052C680 | Per-part sphere-side reject, authored box/portal-side admission, then destination box containment. |
|0052C802 then0052C812|Append destination, then immediately invoke its part-array transit, before the next building portal.|
Lead byte checks include:
- 00534080: `8B89F800000085C97405E911121800C20C00`.
- 006B52E5: `E89673E7FF`, relative call0052C680.
- 0052C799: `83F80374043BC57532`: CROSSING or SAME raw side.
- 0052C802: `E8E98718008B4424648B165357508BCEFF527C`:
add_cell006B4FF0, then virtual slot+7C.
- 007C8D14: `E0CA5200`: the CEnvCell slot targets0052CAE0.
## Finite-input pseudocode
This is the recovered building helper, not the already-ported indoor exit
helper. `side` is the destination's reciprocal portal side; its raw values
are POSITIVE0 and NEGATIVE1. Do not reinterpret managed Straddle2 as native
IN_PLANE2: native box CROSSING is3.
```text
for each building portal, in authored order:
destination = portal.GetOtherCell() // GetVisible; no load
if destination is unavailable: continue
reciprocal = portal.other_portal_id
if reciprocal < 0: continue
for each part, in original order:
if part is null: continue
sphere = part.gfx.physics_sphere ?? part.gfx.drawing_sphere
if sphere is null: continue
center = destination.Position.LocalToLocal(part.Position, sphere.center)
paddedRadius = sphere.radius + 0.000199999995f
distance = reciprocalPlane.distance(center)
if side == 1 and distance > paddedRadius: continue
if side == 0 and distance < -paddedRadius: continue
box = BBox.LocalToLocal(part.GetBoundingBox(), part.Position,
destination.Position)
classification = reciprocalPlane.intersect_box(box)
if classification != CROSSING and classification != side: continue
if not destination.structure.box_intersects_cell(box): continue
cellArray.add_cell(destination.id, destination)
destination.find_transit_cells(parts, cellArray) // immediate
break
```
The building gate's side direction is opposite the indoor exit gate.
Native0052C7370052C76B comparisons and
status-word branches corroborate the finite-input inequalities. The second
box transform in native0052C7B7 has the same source/destination as the first;
there is no intervening change to either position.
The lead also resolved the indoor equality ambiguity separately: native
side0 admits d <= +pad and side1 admits d >= -pad.0052CB7A stores +pad,
0052CB7E/83 negates/stores -pad;0052CBA9 FCOMP +pad / TEST AH41 / JE rejects
only greater, and0052CBBF FCOMP -pad / TEST AH05 / JNP rejects only less.
Current production's strict comparisons differ at equality. AP-159 remainder3
now records this distinct tie; remainder2's WhichSide tie is not the same
predicate. No scene occurrence or production repair is claimed.
Immediate expansion is not conditional on add_cell having appended a new
ID. The duplicate suppression belongs to CELLARRAY::add_cell itself. Merely
substituting box acceptance while deferring expansion to our outer growing
array loop can change insertion order; a future implementation/test must
cover this, including the shared added_outside latch.
## Current production difference and required evidence
`CellTransit.BuildShadowCellSetFromParts`' outdoor branch still calls
`CheckBuildingTransit` with world spheres. That helper corresponds to
0052C5D0, which lacks both box gates and immediate part-array expansion.
Any eventual repair must introduce the distinct part-array bridge at that
caller and leave ordinary sphere/player callers unchanged. No new production
traversal was added during this recovery.
The existing installed diagnostic shows sphere-hit/box-miss on the0114
bridge, but its shared production primitives are not independent proof.
Before the production contract can be finalized, independently establish:
- The seven authored vertex-array AABBs, physics spheres, Setup placement,
owner placement, and destination-cell frames. Native CGfxObj::init_end
00534200 seeds min=max=vertex0 and calls BBox::AdjustBBox for subsequent
vertices; GetBoundingBox0050D600 selects gfx_bound_box at offset98.
- Reciprocal planes and decisive destination containment-node/corner
distances, including margins from the separate registered epsilon tie.
- Every outgoing path from0112/0113/0009, not only portals targeting0114.
The direct retail three-cell/21-entry capture is the expected-set evidence,
not by itself the first-divergent-predicate evidence.
Discriminating repair tests will need both sides, crossing, both cheap-reject
equalities, sphere-hit/box-miss, later-part acceptance, unavailable destination,
negative reciprocal, and immediate destination expansion before the next
building portal. Scaling/drawing-sphere completeness and the independent
one-ULP predicate residual cannot be silently claimed closed by this ramp.
No build, test, client launch/attachment, production change, golden change,
or new intentional deviation belongs to this note. FPS remains deferred.
Wall #482's functional pass does not depend on exact retail settle coordinates;
AP-159 and AMD stability remain separate from that accepted test criterion.

View file

@ -5124,8 +5124,39 @@ session. Windows denied watchdog-dump access; no bypass/settings change.
Repair committed f4da814af. Extended run started18:57:38+02 at clean HEAD with
the verified DLLs, PID404/exec55540, logs/selfgate-20260905-185738-477-extended-f4da814af/.
ACE13340 up, no other clients/debugger at launch. First two PNGs inspected
narrow PASS/provisional; cathedral arrival completed/visible/cuefalse/zero
invariants/transit idle. **Run still IN PROGRESS, not stability PASS**; no
build/test or second client while PID404 lives. Poll the existing handle and
await the script's graceful close. Evidence/limitations in verification report.
ACE13340 up, no other clients/debugger at launch. **Completed exit0/graceful**;
final checkpoint19:20:41+02, over23minutes.27/27checkpoints complete/visible/
zero invariants/transit idle, cuefalse except the documented login cue=true.
All nine PNGs opened narrow PASS/provisional; no terminal device-loss/fatal
match or Windows GPU/crash event through19:21:32. Both clients/debugger absent.
This is a provisional PASS for the scripted workload, not proof of AMD-cause
repair, exact owner trajectory, full lifecycle/teardown or G4.55540 is now a
terminal handle, not a running job. Evidence/limitations in verification report.
## 64. C1a native building-bridge recovery — no production change
`c1a-bridge-native-contract.md` records the lead's separate named-source and
paired-byte checks following Wegener's read-only audit. Part-array building
transit0052C680 uses inclusive reciprocal-sphere rejection, CROSSING-or-SAME
box-side admission and destination box containment. It then expands that
destination immediately, before advancing to the next building portal:
0052C812 virtual+7C resolves to0052CAE0 at vtable007C8D14. A box-only acceptance
substitution followed solely by the existing outer growing-array walk would
miss this ordering. Ordinary sphere callers must remain unchanged.
No repair, golden amendment or fresh installed-DAT test is claimed. Raw
authored input/containment/all-outgoing-path evidence remains to be gathered
under the C1a diagnostic boundary. The known exterior-geometry leak also
seen in retail is a separate accepted parity behavior, not an inferred result
of the extra ramp cell. The owner's functional wall-fix criterion does not
require exact retail settle coordinates. FPS remains deferred; #477/G4 open.
`c1a-authored-input-diagnostic-contract.md` dispatches one test-only partial
extension in the preserved scratch, with original methods/golden unchanged.
Code-writing only until explicit lead execution release. Lead independently
decoded make_plane's damaged accumulator expressions and Frame::cache's
basis; exact arithmetic/identity limitations are in that contract. Further
paired indoor branch decoding proves both cheap-reject equalities admit in
retail, unlike our strict comparisons. AP-159 remainder3 records this existing
tie separately from remainder2; active row count unchanged. No scene occurrence
or production change inferred. No new graphical run belongs to C1a.