acdream/docs/research/2026-08-28-open-issue-validity-audit.md
Erik f7aa8e0eb7
All checks were successful
CI / linux-portable (push) Successful in 3m41s
CI / windows-gate (push) Successful in 6m49s
CI / release (push) Successful in 3m22s
fix: complete retail parity stability pass
2026-08-28 20:01:39 +02:00

17 KiB
Raw Blame History

Open-issue validity audit — 2026-08-28

Scope and verdicts

This is a read-only product audit of every non-final entry in docs/ISSUES.md. It does not fix product code and it does not close or reprioritize anything. The ledger contains 88 such entries, not 87: #341 still says OPEN on its status line even though its heading and its own evidence say it closed with a 10/10 gate.

  • CONFIRMED CURRENT means the current source, a current missing path, or repeated recorded evidence supports the material claim. This bucket also identifies whether the item is a product defect, missing feature, maintenance/performance debt, or test-infrastructure flake.
  • GHOST / NOT A CURRENT CLIENT ISSUE means the entry is fixed, stale, superseded, based on a deleted path, an accepted decision, an external system/environment condition, or is a research/test-plan note misfiled as a client issue. “Ghost” does not mean the original report was fabricated.
  • NEEDS VERIFICATION means there was plausible historical evidence, but current source inspection cannot prove the user-visible symptom still exists. These should not be called either fixed or real until a focused current-binary gate reproduces or clears them.

The audit checked the current source and tests, the evidence/status text in the ledger, superseding issue/campaign records, and a clean current Release build. The build completed with 0 warnings and 0 errors.

Confirmed current — 35

ID Type Verification basis
#178 Closed after audit (owner-accepted 2026-08-28) Named-retail confirms CellStruct sides_type controls constructed geometry and every constructed EnvCell subset uses clockwise culling. Both double-sided overrides are removed, the installed-DAT catalog found no invalid side types or missing vertices across 38,189 polygons, winding/policy tests plus the 16,321-test Release gate passed, and the owner accepted the Holtburg/Facility-Hub visual matrix.
#241 Fixed after audit (2026-08-28) The always-on parity partition now rejects off-frustum landblocks before walking entities and preserves the player's current landblock, using the prepared frame frustum already available at the call site.
#258 Owner-voided 2026-08-28 The former ImGui host is deleted, but the owner classified a replacement developer-panel host as undesired scope and closed the entry.
#261 Telemetry defect Production LinkStatusSnapshot still receives no packet-loss calculation, so PacketLossPercentage remains its default.
#310 Fixed after audit (2026-08-28) Collision-prefix retirement now supersedes an exact authored mover still awaiting first preparation, then completes through the normal withdrawal handshake; the former indefinite-poll regression converges.
#311 Fixed after audit (2026-08-28) RetryPendingProjections now uses retained, depth-safe scratch lists; the warmed fixture drops from 424 B to the event stream's 72 B publication floor and re-entry is regression-tested.
#313 Fixed after audit (2026-08-28) Successful split-to-world recovery now selects the resulting GUID through the canonical SelectionState; unrelated unknown spawns cannot steal selection.
#316 Fixed after audit (2026-08-28) The player-only AirborneSnap shadow skip is gone; every accepted landing publishes the resolved collision pose and the 27-row routing matrix passes.
#320 Fixed after audit (2026-08-28; stale ledger entry) The Runtime physics cutover already committed every ordinary transition's exact cell and rebucketed from CellCommitted; the added local-player test proves source-landblock retirement cannot park a player who walked across the boundary.
#322 Fixed after audit (2026-08-28) Both production callers now consume one pure disposition/HasAnims pre-placement derivation; the end-to-end application matrix and explicit truth table pass.
#324 Architecture debt Graphical and no-window hosts still own parallel inbound entity-routing composition. Accurate structural debt; no current symptom is proven.
#325 Fixed after audit (2026-08-28) Gate A and Runtime authority now accept equal-or-newer teleport stamps without consuming TELEPORT_TS; wrap, stale-pair, velocity, hook, and acknowledgement tests pass.
#330 Headless capability defect The headless composition still registers no live-entity collision owner, so bots cannot collide with dynamic creatures/objects.
#332 Headless capability gap Headless composition still lacks the graphical host's remote dead-reckoning path. Whether this is required product scope remains a decision.
#340 Fixed before audit; stale ledger entry dfc841b7 injected a deterministic meter clock and the fixture uses a constant timestamp, removing suite load from the policy contract.
#346 Fixed before audit; stale ledger entry dfc841b7 added tiered-JIT warmup plus five-batch sampling while retaining a threshold far below the former linear allocation regression.
#359 Fixed after audit (2026-08-28) The live route now passes the canonical player GUID and ChatLog.OnPlayerKilled suppresses victim/killer recipients exactly like retail; regression tests cover victim, killer, and bystander.
#360 Fixed after audit (2026-08-28) One shared Runtime dispatcher now implements the complete named-retail allegiance, house, and standalone @motd grammar for graphical and headless hosts; all GameAction payloads are byte-verified and the 16,309-test Release gate passes.
#361 Fixed after audit (2026-08-28) @log has a reconnect-safe file lifecycle; @day now toggles persistent noon landscape lighting; @render radius/fov implements the named-retail parsing, bounds, replies, and persisted renderer settings.
#370 Headless movement defect The released-jump probe reproduced 3/3 after the threading hypothesis was eliminated. No later fix is recorded.
#393 Void/closed after audit (2026-08-28) High-resolution DAT use is already implemented in both live and pak paths. The alleged separate retail toggle was a research misread; the remaining old texture-level degradation is explicitly unwanted by owner direction.
#400 Fixed after audit (2026-08-28) The exact authored two-root gmCreditsUI flow is mounted: 2,345 localized fragments, seven cyclic pictures, retail timing/shared scroll, Please Wait exit, and return to character management. Installed-DAT and controller gates pass.
#401 Fixed after audit (2026-08-28) Retained UI is now default-on across all launch paths, literal ACDREAM_RETAIL_UI=0 opts out, the session-config force is removed, and authoritative launch docs/tests are updated.
#402 Fixed before audit; stale ledger entry dfc841b7 moved the contract to a named dedicated thread with bounded start/block/join and captured worker failure, eliminating the fragile scheduling observation.
#403 Fixed after audit (2026-08-28) The live presenter now delegates advance/wrap and no-sequence interpolation to RetailAnimationCyclePlayback; Core and presenter regression suites pass.
#404 Fixed after audit (2026-08-28) Resolver now consumes Runtime.CharacterCreation.Options; the second raw SkillTable read and lock are gone, with focused, synthetic-projection, and installed-DAT gates passing.
#408 Fixed after audit (2026-08-28) The shared importer now applies DAT 0x3B client-wide; all stateful retained widget types apply named/DirectState visibility, the scoped chargen path is deleted, and an installed-DAT sweep proves 990/990 built authored-invisible widgets across 38 layouts start hidden.
#410 Fixed after audit (2026-08-28) Both justification axes now share retail's exact 1/3/5 table, unauthored text defaults Left/Top, merge uses property presence, and automated plus installed-DAT UI suites pass.
#413 Fixed after audit (2026-08-28) All owned-house builders now match the recovered retail strings/math/colors; 0x0227/0x0228 refresh the shared Runtime owner, synthetic wire/state/UI coverage passes, and the 16,315-test Release gate is green.
#421 Performance debt The directional-shadow renderer still owns and uploads DirectionalShadowTransformBufferSet separately from the main instance SSBO.
#422 Intermittent native crash Heap corruption at graceful exit has multiple independent sightings, including a connected run. It lacks a stack, not evidence.
#423 Rendering-policy mismatch The atmospheric pack still declares and evaluates raw ActiveDayGroupMultiplier values instead of a WeatherKind-keyed policy.
#428 Fixed after audit (2026-08-28) Installed DATs proved the scripted sky carriers have one identity-transformed part 0; publishing that exact synthetic part lets legitimate particle hooks resolve, while the day-group-flip regression proves teardown prevents later dispatch.
#438 Missing diagnostic feature Launcher crash bundles are genuinely not implemented. This is an approved enhancement, not an existing launcher malfunction.
#442 Fixed before audit; stale ledger entry d123c4b6 moved the warmed dense path to the shared 64-frame zero-allocation measurement probe; the strict zero allocation contract remains.

Ghost / not a current client issue — 33

ID Why it should not remain framed as a current client defect
#3 Fixed: periodic TimeSync is parsed and routed into the world clock.
#73 A process policy for future string sweeps, not a concrete defect; its own text says no infrastructure work remains.
#180 Both camera-collision fixes shipped and were log-verified; the residual visual was moved to now-closed #181.
#194 Fixed: WbDrawDispatcher.BeginFrame prunes old instance groups and has coverage.
#195 Obsolete architecture: the duplicate ChatVM/provider shape described by the issue no longer exists; local commands have dedicated routing.
#199 Fixed by the Campaign CA server-authoritative one-request-in-flight raise flow; optimistic local mutation was removed.
#200 Stale migration list: the old inline mounts/MockupDesktop path named by the issue no longer describes current composition.
#212 Implementation and regression coverage are present; the status remained IN-PROGRESS only for an old user gate.
#213 Fixed: client commands are intercepted by ClientCommandController instead of being sent to ACE as chat.
#228 Directly disproved by the current Release build: 0 warnings, not 17.
#242 Fixed: static presentation orders/prepares snapshots once and reuses the prepared replacement rather than rebuilding a third dictionary per attempt.
#249 Obsolete: it targets the deleted OpenGL/bindless backend; production is Vulkan-only.
#251 Obsolete: it targets deleted glClientWaitSync/OpenGL fence code.
#256 Superseded by #260; its discriminator found no missing-object drift and the transport-loss mechanism was fixed elsewhere.
#257 Superseded/refuted as a leak: its own portal-churn discriminator was flat/negative and later PAK/runtime work replaced the measured architecture.
#259 Explicitly a machine-wide Vulkan/environment failure, not an acdream product defect.
#274 A request for a connected retail comparison, not an observed failure. It belongs in a gate/research checklist.
#309 Explicit owner-accepted divergence recorded in the divergence register, with no planned fix.
#318 A test-plan/composition-coverage residual, not evidence of a product defect. Track as test debt if still desired.
#339 Fixed and live-validated; current mesh-publication guards are present. The status header was never finalized.
#341 Internally contradictory ghost: heading/evidence say closed and 10/10 bit-identical, but the status line still says OPEN.
#342 Fixed: the current assertion compares old-model and new-model values rather than the same expression to itself.
#343 Fixed; the issue body already records the guarded native-release lifecycle correction.
#344 Fixed; the issue body already records the teleport-authority discriminator and clean suite.
#350 Fixed in current source: the lifetime render-shadow counters are widened to long.
#352 The behavior was live-gate verified; the only remaining request is one extra discriminating unit test. This is test debt, not a vendor bug.
#366 Fixed: the chat controller now owns the unread indicator, unseen-text state, tick/click behavior, and tests.
#369 An unanswered retail research question with no demonstrated mismatch, so it does not belong as a product issue.
#383 Installed-DAT/committed-fixture provenance drift is environment/fixture-maintenance work, not a current client defect.
#384 The client sends the swear action; the missing response is an ACE server behavior/blocker, not an acdream client bug.
#396 Fixed and live-verified crash-free; only a visual re-check of the already-mounted instruction dialog remained.
#425 Fixed; both resolution-scaled pack budgets and activation memo behavior are recorded in the issue itself.
#427 Fixed and owner-reported; the sky/fog seam correction is already recorded in the issue itself.

Needs current verification — 20

ID What is known and what is still required
#2 The old lightning presentation mismatch was plausible, but the sky/PES pipeline changed substantially. Reproduce side-by-side on the current binary.
#29 The thin-cloud observation has no current post-renderer visual gate. A present-day retail comparison is required.
#55 The 1.45M meshMissing figure belongs to an old streaming diagnostic. Re-measure current PAK-v2 production before treating it as real.
#130 Closed as owner-accepted residual (2026-08-28)
#177 Strong historical dungeon evidence exists, but the renderer/portal pipeline changed afterward. Repeat the named stair routes on the current binary.
#183 Owner-closed 2026-08-28 after the validity audit.
#250 The zero-allocation flakes were real historically, but the stated roughly-one-in-three frequency predates major runtime/test changes. Run a current parallel stress lane.
#262 Owner reports the first-login movement issue solved; closed 2026-08-28.
#265 Closed during follow-through: Campaign P's final user matrix already accepted downhill bounce, flat pop, and uphill landing on 2026-07-31.
#267 Closed during follow-through: Campaign P's final user matrix already accepted live vitae/buff values and immediate skill-row refresh on 2026-07-31.
#317 The call still exists, but “has no retail basis” is a research conclusion, not proof that current behavior is wrong or reachable.
#321 One old full-suite sound-cache failure is not enough to establish a current flake after later suite/runtime changes. Stress the exact class in parallel.
#323 The stale-receipt mechanism is plausible, but production reachability and a user-visible symptom were never established.
#377 The fullscreen crash was once deterministic but is explicitly not reproducible on current display code. A current cold-start matrix decides it.
#397 Closed during follow-through: the real Windows supervisor stopped a connected Release headless host gracefully, and a separately supervised process re-entered the same account after the documented 2.5-second ACE account-release quiescence; both exited code 0.
#431 CA2CA4 implemented the missing inbound/recompute flow and the first CA5 drive passed Quickness/run updates. The original title is no longer proven; remaining CA5 cases need live gating.
#433 Owner-observed stale entities are credible, but the issue is intermittent and has no current captured reproduction.
#439 One full-suite failure followed by an isolated pass and clean rerun is only a flake candidate. Run the established timing lane before confirming it.
#441 Owner-closed 2026-08-28 after two old observations were followed by a healthy probed baseline and no recurrence.
#452 Closed during follow-through: both fixed app-release24 sessions have retained logs proving graceful logout and orderly teardown after the 100-switch/30-minute stress.
  1. Close or archive the 33 ghost entries after owner review.
  2. Keep type labels on confirmed items so enhancements, maintenance debt, and flaky tests are not mistaken for gameplay defects.
  3. Run one focused verification batch for the 20 uncertain entries. Close a fixed-awaiting-gate item when its current gate passes; close an old symptom as stale when its documented current reproduction route no longer fails.
  4. Prioritize only the confirmed product defects after the ledger is clean; do not mix them with refactors, test debt, or external ACE/environment work.