diff --git a/docs/ISSUES.md b/docs/ISSUES.md index e6487250..b1d0239a 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -24,6 +24,38 @@ What does NOT go here: - Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending. - Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed. +## #428 — Sky lightning slot fired 3 CreateParticle hooks with no live pose after a TimeSync day-group flip + +**Status:** OPEN +**Severity:** LOW (bounded diagnostic spam; no crash, no leak) +**Filed:** 2026-08-23 (launch11.err, first production run of the sky default-script port) +**Component:** sky / vfx / script lifecycle + +**Symptom:** three identical stderr lines during the startup TimeSync window: +`vfx: No live effect pose for owner 0xF8000007, part 0; emitter 0x320002C2 was not created.` +Owner `0xF8000007` = post-scene sky slot index 7 — the Rainy lightning carrier +(`0x02000BA6`, PES `0x33000453`, whose t=0 hooks are a `CallPES` self-loop +(pause 30) plus `CreateParticle 0x320002C2 part=0`). The client boots on the +pre-sync default calendar (PY10 day0, group 16 Rainy); the first TimeSync flips +to the server date and the lightning slot vanishes, and hook executions landed +AFTER `SkyPesFrameController` had already removed the slot's pose. + +**Analysis so far:** `PhysicsScriptRunner.StopAllForEntity` purges owners, +anchors AND `_delayedCalls`, so this cannot loop forever (observed exactly 3, +consistent with hooks already drained into the sink's queue, or an ordering +window between the controller's stop and the runner's tick inside the same +frame). Worth pinning: whether hook dispatch can outlive the owner's stop by +one tick, and whether `part=0` hooks against a root-only synthetic pose (empty +part list) resolve to the root as retail would. Repro: launch while the server +clock is far from the pre-sync default during a Rainy-window fraction; watch +stderr through the first TimeSync. + +**Files:** `src/AcDream.App/Rendering/SkyPesFrameController.cs`; +`src/AcDream.Core/Vfx/PhysicsScriptRunner.cs` (`StopAllForEntity`, tick order); +`src/AcDream.Core/Vfx/ParticleHookSink.cs` (`TryResolveAnchor`, part fallback). + +--- + ## #427 — Hard line below the horizon from altitude: the sky dome was fogged with a 0.2 floor and the world fog range came from the streaming window, not the keyframe **Status:** ✅ FIXED 2026-08-23 (owner report, Candeth Keep/Holtburg heights: "a cut off where the sky ends and the world background void begins"). @@ -16142,7 +16174,13 @@ additional flash-shader work). ## #28 — Aurora ("northern lights") effect not rendered -**Status:** FIX LANDED 2026-08-23 — awaiting the connected visual gate +**Status:** DONE — connected gate USER-PASSED 2026-08-23 (commit `18fce7bb`). +The accepted residual: the aurora reads somewhat more intense in acdream than +retail — the emitters are verbatim; the delta is the linear-light compositing +(+ optional Atmospheric-pack bloom) brightening faint additive glows over a +dark sky vs retail's gamma-space add. Accepted by the user ("gate pass for +now. Might reopen it!") — if reopened, the principled fix is a gamma-faithful +compensation on ADDITIVE particle contributions, never an aurora-only factor. **Severity:** LOW (aesthetic feature-parity) **Filed:** 2026-04-26 **Component:** sky / vfx