diff --git a/docs/ISSUES.md b/docs/ISSUES.md index d83da10b..aceee5d6 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -39,10 +39,30 @@ confirmed closed by the owner, 11 need a focused live gate, and 43 are safe to remain closed. See [`docs/research/2026-08-28-owner-closed-issue-validity-audit.md`](research/2026-08-28-owner-closed-issue-validity-audit.md). +## #474 — Portal reveal waits on its own destination placement acknowledgement + +**Status:** IN-PROGRESS — live circular dependency proven, repair pending, +2026-09-05. Blocks G4. + +Owner's repaired-exterior re-gate reaches portal destination30310005 but +never reveals. In the captured heap, center3031FFFF has completed its render +publication and committed the replacement physics engine, but physics +completion waits for restored placement acknowledgements. The global head +is a valid local-player Place into30310014; its graphical sink refuses until +3031FFFF is spatially loaded. That same publication cannot reach spatial +commit before physics completion. 886 destination completions are retained +behind it. Workers are idle and ACE remains responsive. This is not #462's +ready-true/materialized-false login shape. + +Exact binary, log, heap fields, source chain and missing composed regression: +`research/2026-09-01-overhaul/474-portal-reveal-diagnosis.md` and S5 packet§46. +Do not force reveal, delete the receipt gate, or assume longer timeouts fix it. + ## #473 — Owner gate: exterior buildings have missing roof/wall sections -**Status:** IN-PROGRESS — code-repaired/review-closed at `bf23673f3`; -sampled exterior self-gate provisional PASS, owner re-gate pending, 2026-09-05. +**Status:** DONE — code-repaired/review-closed at `bf23673f3`; exterior +repair OWNER-ACCEPTED 2026-09-05 ("Looks good, except world reveal..."). +The new portal-reveal failure is #474, not acceptance of full G4. At clean campaign `02219318a`, Release 0 warnings / 0 errors, the owner reports broken exterior buildings in Holtburg and the cathedral, while @@ -73,8 +93,9 @@ manual session `logs/owner-gate-20260905-02219318a/`, PID18836, verified recipe-10 package. PID18836 has since exited with graceful logout confirmed; the lead did not close or control it. Explicit 07:48+02 preflight found no client and ACE up. Packet section42 now owns the bounded repair and re-gate. -C1c's test-only correction is frozen, awaiting review; -final acceptance of this repair and G4 still require the owner. No merge main. +C1c's test-only correction is now review-closed but unlanded. The owner has +accepted this exterior repair; G4 remains unpassed because of #474 and the +remaining closeout gates. No merge main. ## #472 — Stair-arch walk fixture cannot distinguish retail e229 residency from block rejection 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 172911fb..982b2835 100644 --- a/docs/plans/2026-09-01-campaign-overhaul-world-solidity.md +++ b/docs/plans/2026-09-01-campaign-overhaul-world-solidity.md @@ -601,6 +601,8 @@ code. | Ordinary dungeons | Two, chosen before code changes | No cathedral overfit; stairs/walls/portals stable | all | | Cathedral stairwell, camera zoomed out (owner, 2026-09-03 night, #464) | `0xF4180113 [39.502899 19.589222 181.119247]` (also `0xF4180112 [39.070965 22.549135 178.781418]`, `0xF4180113 [39.364658 21.293159 179.773422]`), third-person camera zoomed fully out and tilted slightly up | Root `0xF4180114` with `0x113`/`0x112` flooded draws the stairwell solid, and from an eye beyond the open y=24 face (root `0xF4180109`, which retail's swept 0.3 m viewer sphere also reaches) the stairwell cells seen through the building's exterior portals draw with their walls — no vaulted hall, archway sky, balcony or floating stair slabs through the stairwell walls | S4 (owner gate G3 names zoom) | +| Adjacent outdoor portal reveal (#474, owner 2026-09-05) | 3032FFFF → destination30310005, same-window hop184.5m; near4/far25, reveal6 in owner-regate-20260905-bf23673f3-r1 | Destination publication and exact placement acknowledgements converge; no circular wait, no forced/partial world reveal. Include repeated adjacent and long-distance portal controls; record latency rather than presuming all slow holds share this cause | S5 / G4 | + Append-only; a new symptom gets a row and an existing invariant before any fix. --- @@ -696,7 +698,7 @@ Update immediately when a slice changes state. Chat is not the ledger. | S5-#470 | **LANDED + REVIEW-CLOSED 2026-09-05; LEAD GRAPHICAL A/B PROVISIONAL PASS.** Campaign implementation stack `15a796c3a` -> `7506e5f14` -> `b333edb4f`; route `19b44e5e3`; reviewed scratch `51f974da4` -> `2cad9c84` -> `98c004aa7`; packet §§27–30. | G4 UNPASSED | Retail/behavior pass 2/10 and production pass 4/10 closed the two evidence-only findings. Fresh campaign Release 0W/0E and focused 48/48; exact scratch hermetic 16,976/16,976 and canonical InstalledDat 386/10/1, manifests 30/30. Pinned gate `logs/selfgate-20260905-032132-s5-470-pinned-shadow-ab-r1`: retail/off -> High -> retail/off, 3/3 PNGs, exit 0, graceful, no client; visual PASS provisional. The stale recipe-8 pre-route launch is excluded and recorded in §30. | | S5-#469 | **LANDED + REVIEW-CLOSED 2026-09-05; LEAD GRAPHICAL TRANSITION PROVISIONAL PASS.** Contract `809887524`; reviewed scratch `c09b6cf0f`; campaign implementation `94ddde69a`; route `62efc72cb`; packet §§31–32. | G4 UNPASSED | Retail/deviation pass 1/10 and production pass 2/10 both PASS with no finding. The two atmospheric vertex receivers keep retail's authored unnormalized `uLights` direction across every shadow gate; celestial direction remains for opt-in shadow/volumetric projection; IA-24 corrected in the same commit. Exact scratch: Release 0W/0E, focused 126/126, Vulkan 2/2, hermetic 16,983/16,983, InstalledDat 386/10/1. Fresh campaign Release 0W/0E, focused 82/82, Vulkan 2/2. Gate `logs/selfgate-20260905-040449-s5-469-lighting-transition-r1`: five PNGs, active 2,500-caster/four-cascade High rows, no near-black relight, exit 0/graceful, no client; visual PASS provisional. | | S5-c5 | **CLOSED + LANDED 2026-09-05; LEAD GRAPHICAL SMOKE PROVISIONAL PASS.** Contract `b77989c32`; campaign `bf53e2ad6` -> `e625dc4e6` -> `1b7ee4e58`; reviewed scratch tip `158656f0d`; packet §§33–35. | G4 UNPASSED | Retail/deletion pass 1/10 PASS. Production pass 2/10 found one static-field hole in the owner guard; fix round 1 reproduced both static-owner mutations, and production pass 3/10 PASS. Exact scratch hermetic 16,921/16,921, canonical InstalledDat 368/9/1, manifests 30/30. Fresh campaign Release 0W/0E, App 146/146, Core 8/8. A stale recipe-8 preflight is excluded; a non-destructive recipe-10 bake produced 2,237,865 keys with zero failures. Corrected gate `logs/selfgate-20260905-052130-s5-c5-landed-v10`: five PNGs, exit 0/graceful, no fatal/deleted-prefix match, no client left; geometry matches S5-c4, visual PASS provisional. | -| S5 | **#473 REPAIR LANDED/REVIEW-CLOSED `bf23673f3`; sampled exterior self-gate PROVISIONAL PASS, owner re-gate OPEN (2026-09-05).** c1–c5 plus #470/#469 landed; lead PASS does not supersede owner FAIL. C1 offline evidence complete; C1c test/doc correction REVIEW-CLOSED, pending landing. | G4 | Packet §§7 and 12–44 bind. §42 repairs detail-active opaque A2C coverage loss at the owner's 4x/A2C=true settings. Both independent reviews PASS; post-commit Release 0W/0E and 158/158 adjacent tests; old-arm mutation fails12/12. All52 affected base/LOD prepared payloads match fresh extraction. §42.6 exact-binary PNGs show intact visible Holtburg/cathedral exteriors, detail ON in both modes; Facility control passes provisionally. Framing/foliage limitations are explicit; no every-face/LOD claim. All four automated clients exited0/gracefully. §43 C1c retail pass1 found only AD-118's stale retirement marker/count, corrected directly by lead; production pass2 PASS. Lead fresh test-assembly-only Release and 68/68 scoped tests pass; no canonical full-lane claim. §44 records the subsequently launched manual owner client PID16892 on unchanged bf23673f3 binary, ACE UDP9000 PID13340. Hold builds, second clients and automated controls while the owner tests; no verdict yet. Exact C1c landing, real geometry/membership hash, full-lane closure, C2 and full owner G4 remain. Never merge main before G4. | +| S5 | **#473 EXTERIOR REPAIR OWNER-ACCEPTED `bf23673f3`; new portal-reveal FAIL #474 (2026-09-05).** c1–c5 plus #470/#469 landed; C1c test/doc correction REVIEW-CLOSED, pending landing. | G4 UNPASSED | Packet §§7 and12–46 bind. §42 repaired opaque detail alpha-to-coverage, with both reviews PASS, Release0W/0E, affected158/158, mutation12/12 and all52 affected prepared payloads matching fresh extraction. §42.6 sampled exterior PNGs were provisional; the owner now accepts the repaired exteriors. §43 C1c retail/production reviews are closed; nine-file test/doc return remains unlanded, lead scoped68/68 only, no canonical full-lane claim. §44 manual owner session PID16892 ran unchanged bf23673f3. §45 geometry witness contract remains not dispatched. §46/new diagnosis474 proves a destination publication/placement acknowledgement cycle at3031FFFF: engine committed, exact valid Place into30310014 at global FIFO head, spatial backend absent and publication waiting on that acknowledgement. No fix yet. AcDream has exited with graceful logout recorded; lead did not close it. ACE9000 PID13340 up; retail34964 stays open by explicit owner direction. Offline build/tests may proceed with AcDream absent; do not close retail or claim isolated graphical/performance evidence. Repair474 and its composed regression/reviews/re-gate precede C1c landing, real geometry/membership hash, full-lane closure, C2 and full owner G4. Never merge main before G4. | --- diff --git a/docs/research/2026-09-01-overhaul/474-portal-reveal-diagnosis.md b/docs/research/2026-09-01-overhaul/474-portal-reveal-diagnosis.md new file mode 100644 index 00000000..dd86aa49 --- /dev/null +++ b/docs/research/2026-09-01-overhaul/474-portal-reveal-diagnosis.md @@ -0,0 +1,117 @@ +# #474 — live portal reveal blocked by its own placement acknowledgement + +## Verdict and exact run + +Owner report, 2026-09-05: exterior buildings now look good, but portal-space +reveal sometimes takes too long and the current destination never reveals. +This accepts #473's exterior repair narrowly. It is a new G4 FAIL, not a +whole-campaign acceptance and not the older #462 ready-true/materialized-false +login failure. + +Campaign branch `claude/campaign-w-retail-frame-walk`, documentation HEAD +`41ca024515d4adf329f24ab0f7525aa3b5e793fe`; running production code is unchanged +from `bf23673f3d5acbd55b4953e281aa72be4c28087d`. +Release App.dll SHA256: +`34442C9CA1135AEF312DA3C4613C8C11BAE25C35C602D22C9F1F7B294F41354A`. +Recipe-10 package SHA256: +`4E0FA6C589ECE12E13099A56385077964961EC52F888BC9161C6F5D34829B59B`. +Manual session: `logs/owner-regate-20260905-bf23673f3-r1/`, AcDream PID16892. +No new build, test, second client, or production edit was made to diagnose it. + +`client.log` lines1166–1209 identify the adjacent portal hop from landblock +`0x3032FFFF` to destination cell `0x30310005` (184.5m), reveal generation6, +near radius4/far radius25. The wait cue appears at5031ms with render=false. +No generation6 readiness/materialization/visibility/completion follows before +its eventual graceful logout/cancellation. Network stats continue during the +hold. Composite/collision false values are short-circuited behind render=false +by `WorldRevealReadinessBarrier.Evaluate`, not proof of separate failures. + +## Read-only heap proof + +One managed stack capture and one local heap dump were taken from AcDream, +not retail. The heap finished at08:53:50+02 and is2,142,201,973 bytes. It stays +local and must NOT be committed, uploaded, or used as a public artifact. +Diagnostic root: +`C:\Users\erikn\.codex\worktrees\742f\acdream\artifacts\overhaul-472-owner-capture\`. +Files: `portal-30310005-pid16892.dmp`, +`portal-30310005-stacks-1.txt`, `portal-30310005-observed.jpg`. +The native capture is JPEG, not PNG; it is diagnostic corroboration, not a +new scripted PNG gate. No gameplay input was sent. Screenshot/compositor +appearance is not used to infer Runtime logout or world readiness. + +Selected SOS observations (object addresses belong only to this dump): + +| Owner | Exact state | +|---|---| +| StreamingController `021737fedad0` | Stream generation5, bootstrapped region(48,49), reveal reservation6 for3031FFFF/radius25; full-window/origin-recenter/radii transactions null | +| Completion queue `021737fedd10` | 886 Destination results; other priority queues empty; head Loaded `021754396678` is3031FFFF, reveal6/stream5/sequence9877 | +| Publication `02174babc9c8` | Same head/result; render completion=true; physics engine committed=true, RuntimeMutationPending=true, physics completion=false; SpatialCommitted=false | +| Center collision quiescence `02173c7b3718` | ReleaseInProgress=true, release generation4/ready=true; 8 pending withdrawals and15 pending restore placements | +| SetPosition `02172b5b1aa0` | 38 pending projections; minimum sequence584, revision1, Kind=Place | +| Oldest projection at `021748e7da08` | Entity local1000003/incarnation3792 (local player GUID5000000A); cell30310014; collision generation4; portal authority entirely empty | +| Canonical record `021737ae7900` | Position355/spatial19520/placement7/session1 and exact cell30310014 match the receipt; current GUID and local-ID dictionaries both point here | +| App sidecar `021737b88330` | Same canonical and exact ProjectionKey; WorldEntity nonnull; materialized entry0 is active; not spatially projected | +| Initial-create residences | All17 active dictionary keys inspected: target local1000003 absent, so the conductor ownership gate does not own this receipt | +| Graphical subscriber `021737854a70` | Not disposed; sink bound; applied-awaiting-ack token entirely zero | +| GpuWorldState `021737f694c8` | This is the exact sink's `_spatial`; loaded dictionary has1715 entries/freeCount0. All1715 keys decoded:3031FFFF absent | +| Retirements | 303 retained tickets, first pending physics stage; no callback failure recorded | + +The managed stacks show8 landblock workers and4 mesh workers waiting, while +the graphical thread continues pacing. These observations distinguish an +acknowledgement/publication hold from workers still constructing the center. +They do NOT claim every queued destination result has already been published. + +Reproduce the decisive offline inspection with `dotnet-dump analyze` and +`dumpobj`, `dumpvc`, `dumparray -details`; no application method invocation is +needed. Pending projection minimum is the leftmost SortedSet node +`021748e7d9e0`; its key/value is at`021748e7da00`. Loaded dictionary is +`021737f695f0`, entries`021738a927a8`. Sidecar materialized dictionary is +`021737f6a050`, entries`0217451bfb30`. Active residence dictionary is +`02172b5b3190`, entries`02173b52d438` (exclude free entries by next < -1). + +## Proven source dependency + +1. `RuntimePhysicsState.AdvanceCommittedActivation` cannot finish until + `SetPosition.ReleaseCollisionPrefixAfterMutation` acknowledges the exact + restored residents. The engine generation has already committed and must + not be resealed or rolled back. +2. `RuntimePlacementProjectionSubscription` only applies/acknowledges the + oldest receipt. Its retry runs unconditionally from + `RetailLiveFrameCoordinator` / `GraphicalSessionEventRoute`, even while + portal simulation is hidden. A disabled portal retry is not the cause. +3. The head Place's canonical identity, versions, empty portal authority and + materialized sidecar are valid. `LiveEntityRuntime` nevertheless returns + false because `GpuWorldState.IsLoaded(0x3031FFFF)` is false. +4. `LandblockPresentationPipeline.Advance` waits for physics completion + before its later `CommitLandblockSpatial` stage can make that very backend + exist. It retains the completion queue head until this transaction ends. + +Thus the destination's physics completion waits on Place acknowledgement, +Place waits on the destination spatial backend, and backend publication waits +on physics completion. The same global projection head also prevents later +withdrawals/placements from acknowledging. This is a client-side circular +dependency, not an ACE response timeout. The log's preceding slow portal is +not yet proven to have the same cause. + +Existing tests prove these halves separately: +`RuntimeCollisionMutationTransactionTests.ActivationWaitsForExactWithdrawAndPlaceReceipts` +manually acknowledges without the graphical loaded-backend gate; +`RuntimePlacementPresentationSinkTests.Place_WithoutLoadedDestinationBackendRemainsPending...` +proves the gate while assuming streaming can independently finish. +The fix needs a composed regression, not a timeout or forced reveal. + +## Process state / next boundary + +By09:02+02 AcDream is absent and its log records graceful logout and reveal6 +cancellation. The lead did not close it. Explicit privileged read-only +preflight confirms ACE UDP9000 PID13340 and retail acclient PID34964 still up. +Owner then explicitly says to leave retail open. Respect that: offline build +and deterministic tests may continue with AcDream absent; do not close or +attach to retail. Graphical/performance gates are separate from those checks +and must report competing-process state honestly. + +No repair or new retail-equivalence claim is included in this evidence record. +The bounded repair contract must preserve exact receipt acknowledgement, +post-engine no-rollback semantics, world-reveal readiness, metering, and +observer-atomic spatial publication. C1c landing and geometry/C2 closeout wait +behind this owner-visible blocker. G4 remains unpassed; never merge main. 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 ad122502..68d5ff1a 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 @@ -1,8 +1,8 @@ # Campaign OVERHAUL v2 — S5 consumers, material, and closeout packet -**Status:** #473 CODE-REPAIRED / REVIEW-CLOSED at `bf23673f3`; sampled exterior -self-gate PROVISIONAL PASS (section42.6). Owner re-gate remains pending; the -original owner FAIL is not superseded by lead acceptance. S5-c1 through S5-c5 +**Status:** #473 exterior repair OWNER-ACCEPTED at `bf23673f3`, 2026-09-05. +New owner portal-reveal FAIL #474 is the immediate blocker: a destination +publication/placement acknowledgement cycle (section46). S5-c1 through S5-c5 plus #470/#469 landed. C1c's returned test/doc correction is review-closed, pending landing (section43); geometry/membership witness, full-lane closure, connected/performance C2 and owner G4 remain. @@ -4372,3 +4372,39 @@ No particle/child/lifecycle universality is inferred from this narrow check. This clarifies a not-yet-implemented test contract. It introduces no retail deviation, renderer change or new review-fix round. The owner gate remains the executable priority; after it, C1c landing precedes this activation. + +## 46. Owner exterior PASS, new portal-reveal FAIL #474 (2026-09-05) + +The owner says the world now looks good except that portal reveal sometimes +takes too long and the current world never reveals. Record #473 narrowly as +OWNER-ACCEPTED; G4 remains FAIL/unpassed. The new symptom is appended to the +plan§10 matrix before code changes. + +Read `474-portal-reveal-diagnosis.md` for the exact run, local-only heap and +stack artifacts, inspected fields, source chain, exclusions and process state. +The destination3031FFFF physics replacement is engine-committed but waits for +placement acknowledgement. The exact global head is the valid local player's +Place into30310014, which waits for that same spatial backend. Spatial commit +comes after physics completion: circular dependency. No timeout, forced reveal, +missing network packet or slow geometry worker explains that captured hold. +The preceding intermittent slowness is not yet attributed to the same cause. + +Both lead and a read-only OpenAI agent traced the production dependency. The +lead independently decoded the actual FIFO head, canonical/sidecar versions, +all1715 spatial keys, and all17 active initial-create residence keys, ruling +out the earlier gates. No production edit, build/test or second client was +performed during capture. The native diagnostic screenshot is JPEG; no new +scripted PNG self-gate is claimed. + +AcDream subsequently exited with graceful logout recorded; the lead did not +close it. ACE9000 PID13340 is up. Retail PID34964 remains open by explicit +owner direction; leave it untouched. With AcDream absent, offline build and +deterministic tests may proceed; do not mislabel any resource-contended +graphical/performance run as an isolated gate. + +NEXT: a bounded publication-order repair plus a real Runtime/graphical-sink/ +pipeline regression, then sequential retail/production review and exact-binary +graphical re-gate. Preserve receipt identity, no post-engine rollback, metering +and readiness. C1c remains review-closed/unlanded; section45 geometry activation +and full lanes/C2 follow this blocker, not in parallel with its implementation. +No merge main before G4.