docs: accept #309 as a standing divergence rather than a planned fix (AP-136)

User decision 2026-08-06. #309 moves from OPEN to DEFERRED/ACCEPTED, and
AP-136 becomes its permanent record rather than a staging note. No code
changes.

No new register row was filed: AP-136 already carries the full retail
mechanism (SetPositionInternal 0x00515BD0 -> store_position 0x00515CE2 ->
GotoLostCell 0x00515CF2, removed only by InitObjCell 0x00508260 ->
reenter_visibility 0x00516250), the exact divergence, and the observable.
Filing a second row would have duplicated it.

WHY DEFERRED, recorded so a successor does not silently re-litigate it. The
retail-faithful end state is a park that SURVIVES cancellation. That was
implemented and reverted this round, because it costs (a) reversing a
deliberate shipped invariant —
NewerPositionPickupAndParentEachCancelExactLostOperation asserts that a newer
Position cancels the park — and (b) GameRuntime teardown convergence (stage
10), where surviving parks never converge on shutdown. The observable
requires a remote to teleport into a non-resident landblock AND then stop
moving; ACE stops broadcasting for a stationary entity, while the ordinary
5-10 Hz case is superseded within ~150 ms. Revisit if teardown convergence is
done for another reason, or if the observable is reported in ordinary play.

CAUGHT WHILE RECORDING IT: deferring the fix does NOT cancel AP-136's
six-step connected check. That check validates the SHIPPED rollback path
(#312 / restorableOnCancel, which sits in SubmitPreparedPlacementCore — the
shared core behind every production placement), not the deferred fix. It
still needs running with ACDREAM_PROBE_PARK=1, and therefore must run BEFORE
C5c's probe strip retires that flag. Both documents now say so; without that
note the strip would have silently removed the instrumentation a still-owed
gate depends on.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-06 07:49:20 +02:00
parent 73cdb95c7b
commit 43cfdc4a40
2 changed files with 33 additions and 8 deletions

View file

@ -589,13 +589,38 @@ the delta-review round on the same route's remediation. Evidence:
## #309 — Cancelled lost-cell park re-shows the entity where retail would keep it hidden
**Status:** OPEN — but **largely superseded by #312** (closed `b1f914d5`,
2026-08-04). #312 made a cancelled park restore the presentation half as well
as the Runtime half, which is the behaviour #309's connected check was written
to probe. What remains genuinely open here is the narrower retail-faithfulness
question: retail's `GotoLostCell` keeps a lost-cell object HIDDEN until
`reenter_visibility` fires on cell arrival, whereas acdream re-shows it on the
cancel. Re-scope before running; the original six-step gate is now partly
**Status:** **DEFERRED as an ACCEPTED DIVERGENCE — user decision 2026-08-06.**
The standing record is register row **AP-136**, which already carries the
retail mechanism, the exact divergence, and the observable; this issue is no
longer a planned fix and does not block the placement-cutover campaign or C5c.
Decision and its reasoning, so a successor does not silently re-litigate it:
the retail-faithful end state is a park that SURVIVES cancellation, and that
was implemented and reverted this round. Landing it costs (a) reversing a
deliberate shipped invariant — `NewerPositionPickupAndParentEachCancelExactLostOperation`
asserts that a newer Position cancels the park — and (b) `GameRuntime`
teardown convergence (stage 10), where surviving parks never converge on
shutdown. Weighed against an observable that requires a remote to teleport
into a non-resident landblock **and then stop moving** (ACE stops
broadcasting for a stationary entity; the ordinary 510 Hz case is
superseded within ~150 ms), the cost is not currently worth paying. Revisit
if the teardown-convergence work is done for another reason, or if the
observable is reported in ordinary play.
**This deferral does NOT cancel the six-step connected check.** That check
validates the SHIPPED rollback behaviour (#312 / AP-136's `restorableOnCancel`
path, which sits in `SubmitPreparedPlacementCore` — the shared core behind
every production placement), not the deferred fix. It still needs running with
`ACDREAM_PROBE_PARK=1`, and therefore must run **before** the C5c probe strip
retires that flag.
Prior status, retained for context: **largely superseded by #312** (closed
`b1f914d5`, 2026-08-04). #312 made a cancelled park restore the presentation
half as well as the Runtime half, which is the behaviour #309's connected check
was written to probe. What remained genuinely open was the narrower
retail-faithfulness question: retail's `GotoLostCell` keeps a lost-cell object
HIDDEN until `reenter_visibility` fires on cell arrival, whereas acdream
re-shows it on the cancel. Re-scope before running; the original six-step gate is now partly
redundant.
**Severity:** MEDIUM
**Filed:** 2026-08-04