docs(runtime): close interaction transaction ownership
Record the exact J5.2 owner boundary, retail ordering, Release and connected evidence, rollback, and J5.3 handoff across architecture, roadmap, milestones, agent instructions, and durable memory. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
f5f7b4177f
commit
81b31857c6
11 changed files with 229 additions and 26 deletions
|
|
@ -69,7 +69,9 @@ What does NOT go here:
|
|||
`75930787`; J3 canonical entity/object lifetime and J4 gameplay-state
|
||||
ownership are complete through `89e6b207`. J5.1 canonical selection,
|
||||
combat, and target-mode ownership is complete at `b298f99f`; J5.2
|
||||
interaction-transaction ownership is active from
|
||||
interaction-transaction ownership is complete at `f5f7b417`, with 8,561
|
||||
Release tests / 5 skips and the exact connected gate green. J5.3
|
||||
combat/magic-intent ownership is active from
|
||||
[`plans/2026-07-25-modern-runtime-slice-j.md`](plans/2026-07-25-modern-runtime-slice-j.md).
|
||||
|
||||
The [documentation map](README.md) defines how this tactical ledger relates to
|
||||
|
|
|
|||
|
|
@ -224,9 +224,12 @@ src/
|
|||
transaction/session-state owner
|
||||
RuntimeCharacterState.cs -> coupled spellbook/local-player plus
|
||||
character-option/run-jump owner
|
||||
RuntimeActionState.cs -> exact selection/combat/target-mode owner
|
||||
RuntimeActionState.cs -> exact selection/combat/target-mode and
|
||||
interaction-transaction owner
|
||||
InteractionState.cs -> presentation-free cursor-target mode state
|
||||
-> J3–J4 and J5.1 complete; J5.2 interaction transactions active
|
||||
RuntimeInteractionTransactionState.cs -> use/appraisal/pickup FIFO,
|
||||
exact approach and busy borrower
|
||||
-> J3–J4 and J5.1–J5.2 complete; J5.3 combat/magic intent active
|
||||
-> may reference Core, Core.Net, Content, and Plugin.Abstractions only
|
||||
-> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui
|
||||
|
||||
|
|
@ -487,9 +490,15 @@ exact `SelectionState`, `CombatState`, and presentation-free
|
|||
`InteractionState` instances borrowed by direct/headless and graphical
|
||||
consumers. App retained widgets, input controllers, plugins, session routing,
|
||||
and `GameWindow` hold views or exact borrowed children; none may construct a
|
||||
parallel production action owner. J5.2 moves the related use, appraisal,
|
||||
pickup, and approach transaction lifetime into Runtime while preserving
|
||||
retail's press-time ordering and ACE's authoritative completion.
|
||||
parallel production action owner. Its `RuntimeInteractionTransactionState`
|
||||
child owns the use throttle/source/target, appraisal identity, typed ordered
|
||||
interaction FIFO, and exact post-arrival pickup token while borrowing the one
|
||||
J4 inventory busy/request gate. App supplies picking, movement installation,
|
||||
wire transport, toasts, and retained drag/pending-slot presentation. Hidden,
|
||||
delete/GUID reuse, reset, disposal, callback re-entry, and transport failure
|
||||
all converge without retaining a second owner or changing retail's press-time
|
||||
order (`f5f7b417`). J5.3 next moves combat and spell-cast intent under this
|
||||
same action root.
|
||||
|
||||
`GpuWorldState` owns spatial buckets only and retains the exact projection key
|
||||
through loaded/pending movement, landblock retirement/reload, origin recenter,
|
||||
|
|
|
|||
|
|
@ -474,10 +474,10 @@ useful ordering seam, but its ownership status is **partial**.
|
|||
| Inbound/object-frame order | **Complete App orchestration** | `UpdateFrameOrchestrator` owns the complete typed host phase graph; `RetailInboundEventDispatcher`, `RetailLiveFrameCoordinator`, `LiveObjectFrameController`, `LiveSpatialPresentationReconciler`, streaming/input/teleport/player-mode/camera owners preserve the accepted order. `GameWindow.OnUpdate` is one profiler-scoped handoff (`e91f3102`). |
|
||||
| World reveal | **Complete** | `WorldRevealCoordinator` owns login/portal readiness, generation quiescence, and the exact streaming destination reservation. Login auto-entry and portal completion close only their active generation; stale completion cannot clear its replacement. Delayed portals retain the authored tunnel and centered retail wait notice rather than force-revealing incomplete content. Quiesced destination projections may become spatially resident for renderer preparation while all availability-gated gameplay consumers stay closed. |
|
||||
| Retained gameplay UI | **Mostly complete feature ownership** | `RetailUiRuntime` and focused panel/controllers own layout and behavior. `GameWindow.OnLoad` still performs substantial service composition, which is allowed until the final composition cleanup. |
|
||||
| Selection/interaction | **J5.1 complete; J5.2 active** | Runtime `RuntimeActionState` owns the exact selection, combat, and presentation-free target-mode children. App `WorldSelectionQuery` remains a graphical read-only picker; App interaction controllers currently retain use/appraisal/pickup/approach transaction policy until J5.2 moves that lifetime behind Runtime commands and views without changing retail press-time behavior. |
|
||||
| Selection/interaction | **J5.1–J5.2 complete; J5.3 active** | Runtime `RuntimeActionState` owns the exact selection, combat, target-mode, and `RuntimeInteractionTransactionState` children. The transaction child owns use/appraisal/pickup identity, the typed ordered FIFO, and exact post-arrival token while borrowing J4's sole inventory busy/request gate. App `WorldSelectionQuery`, movement/transport adapters, lighting, toasts, drag/drop, and pending-slot drawing remain presentation. No App transaction fallback or delegate queue remains (`b298f99f`, `f5f7b417`). |
|
||||
| Landblock presentation | **Complete** | `LandblockBuildFactory` owns the captured-origin DAT transaction; concrete render/physics/DAT-static publishers and `LandblockPresentationPipeline` own typed-meter publication and exact retryable retirement. `StreamingController` owns stable destination/control/unload/Near/Far queues and destination reservation. CPU mesh-cache restaging requires an exact live owner. `StreamingOriginRecenterCoordinator` serializes old-window retirement with teleport/session origin lifetimes. `GameWindow` retains construction and one pipeline field only (`c79d0a49`, closeout `4a205a3e`; Slice E closeout `91e82c3c`). |
|
||||
| Render-frame orchestration | **Complete** | `RenderFrameOrchestrator` owns the GPU-flight, resource, world/PView/shared-alpha, private-presentation, diagnostics, screenshot, and recovery graph. `GameWindow.OnRender` takes one logical window-size snapshot and performs one immutable handoff (`9d7df1bf`). |
|
||||
| Unified `GameEntity` | **Slice J active at J5.2** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, and J5.1 action state share failure-safe Runtime owners while exact graphical sidecars stay in App. J5.2–J7 move interaction transactions, movement/physics/combat, and world authority before one Runtime composition root. |
|
||||
| Unified `GameEntity` | **Slice J active at J5.3** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, and J5.1–J5.2 action/interaction state share failure-safe Runtime owners while exact graphical sidecars stay in App. J5.3–J7 move combat/magic intent, movement/physics/projectiles, and remaining world authority before one Runtime composition root. |
|
||||
|
||||
### 4.3 Revised extraction sequence
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# acdream — strategic roadmap
|
||||
|
||||
**Status:** Living document. Updated 2026-07-26. **M3 landed; M4 is active.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. All eight slices of the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md), their automated closeout, and the user's connected visual matrix are complete. Modern Runtime J3 canonical entity/object lifetime and J4 gameplay-state ownership are closed at `89e6b207`; J5.1 canonical selection/combat/target-mode ownership is closed at `b298f99f`, and J5.2 interaction transactions are active. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
|
||||
**Status:** Living document. Updated 2026-07-26. **M3 landed; M4 is active.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. All eight slices of the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md), their automated closeout, and the user's connected visual matrix are complete. Modern Runtime J3 canonical entity/object lifetime and J4 gameplay-state ownership are closed at `89e6b207`; J5.1 canonical selection/combat/target-mode ownership is closed at `b298f99f`, J5.2 interaction transactions are closed at `f5f7b417`, and J5.3 combat/magic intent is active. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
|
||||
**Purpose:** One source of truth for where the project is and where it's going. Every observed defect or missing feature has a named phase that owns it; when something looks wrong in-game, look here to find the phase that'll address it. Implementation details live in per-phase specs under `docs/superpowers/specs/`, not in this file.
|
||||
|
||||
---
|
||||
|
|
@ -1742,8 +1742,15 @@ port in any phase — no separate listing here.
|
|||
> temporary target-mode graph; every graphical/direct consumer borrows it,
|
||||
> and the App fallback owner is deleted. Its 182 Runtime tests, 3,779 App
|
||||
> tests / 3 skips, 8,550-test / 5-skip complete Release suite, and
|
||||
> exact-binary seven-checkpoint lifecycle/reconnect gate pass. J5.2
|
||||
> interaction-transaction ownership is active.
|
||||
> exact-binary seven-checkpoint lifecycle/reconnect gate pass. J5.2 is
|
||||
> complete at `f5f7b417`: Runtime owns the strict use gate, exact use and
|
||||
> appraisal identity, typed ordered interaction FIFO, and exact post-arrival
|
||||
> pickup token while borrowing J4's sole inventory busy/request gate. App
|
||||
> retains picking, movement/transport, and presentation only; the App delegate
|
||||
> queue and transaction fields are deleted. Its 197 Runtime tests, 3,775 App
|
||||
> tests / 3 skips, 8,561-test / 5-skip complete Release suite, and exact-binary
|
||||
> seven-checkpoint lifecycle/reconnect gate pass. J5.3 combat/magic-intent
|
||||
> ownership is active.
|
||||
> The historical exact cutover
|
||||
> rollback remains
|
||||
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:
|
||||
|
|
|
|||
|
|
@ -217,8 +217,14 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
|||
combat, and temporary target mode; every graphical/direct consumer borrows
|
||||
those exact children, and the App fallback owner is deleted. Its 182 Runtime
|
||||
tests, 3,779 App tests / 3 skips, 8,550 full Release tests / 5 skips, and
|
||||
exact-binary seven-checkpoint lifecycle/reconnect route pass. J5.2
|
||||
interaction-transaction ownership is active under
|
||||
exact-binary seven-checkpoint lifecycle/reconnect route pass. J5.2 completed
|
||||
at `f5f7b417`: one Runtime child owns use throttling/source/target,
|
||||
appraisal identity, typed ordered interactions, and exact post-arrival
|
||||
pickup state while borrowing the sole J4 inventory busy/request gate. The
|
||||
App queue and transaction fields are deleted. Its 197 Runtime tests, 3,775
|
||||
App tests / 3 skips, 8,561 full Release tests / 5 skips, and exact-binary
|
||||
seven-checkpoint lifecycle/reconnect route pass. J5.3 combat/magic-intent
|
||||
ownership is active under
|
||||
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md).
|
||||
Slice-I closeout evidence is
|
||||
[`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md).
|
||||
|
|
@ -242,6 +248,8 @@ Slice-J4.5 closeout evidence is
|
|||
[`../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md`](../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md).
|
||||
Slice-J5.1 closeout evidence is
|
||||
[`../research/2026-07-26-slice-j5-1-canonical-action-state.md`](../research/2026-07-26-slice-j5-1-canonical-action-state.md).
|
||||
Slice-J5.2 closeout evidence is
|
||||
[`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md).
|
||||
The historical exact G4 visual rollback remains
|
||||
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
**Date:** 2026-07-24
|
||||
|
||||
**Status:** Slices A–I and J0–J3 are complete. Flat-authoritative collision, zero-
|
||||
**Status:** Slices A–I, J0–J4, and J5.1–J5.2 are complete. Flat-authoritative collision, zero-
|
||||
allocation resolve scratch, parsed-graph removal, connected correctness/
|
||||
lifetime acceptance, and Slice-I closeout landed 2026-07-25. Slices F–L were
|
||||
explicitly approved 2026-07-24. Slice J0–J1 established the enforced Runtime
|
||||
|
|
@ -16,7 +16,8 @@ ownership into Runtime at `011efbea`; J4.3 moved the coupled magic/player-sheet
|
|||
owner into Runtime at `d02a12ce`; J4.4 moved character settings/projections
|
||||
and the shared typed state-command seam at `dcb61efb`; J4.5 closed canonical
|
||||
gameplay-state ownership at `89e6b207`. J5 movement, physics, interaction,
|
||||
and combat ownership is the active execution point.
|
||||
and combat ownership is active at J5.3 after canonical action state
|
||||
(`b298f99f`) and interaction transactions (`f5f7b417`) moved to Runtime.
|
||||
|
||||
**Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and
|
||||
Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit.
|
||||
|
|
@ -1274,7 +1275,7 @@ single Runtime shortcut/spellbook/inventory owners, graphical/no-window
|
|||
command parity, failure-safe combined ledger, 8,544-test Release suite,
|
||||
exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass.
|
||||
J5 movement/physics/interaction/combat ownership is the current execution
|
||||
point.
|
||||
point. J5.1–J5.2 are complete; J5.3 combat/magic intent is active.
|
||||
Evidence:
|
||||
[`../research/2026-07-25-slice-g5-production-profile.md`](../research/2026-07-25-slice-g5-production-profile.md)
|
||||
and
|
||||
|
|
|
|||
|
|
@ -290,8 +290,16 @@ UI, session routing, typed commands/views, and shutdown borrow its children;
|
|||
the App interaction-state class and private controller fallback are gone.
|
||||
Its 182 Runtime tests, 3,779 App tests / 3 skips, 8,550 complete Release tests /
|
||||
5 skips, and exact-binary seven-checkpoint lifecycle/reconnect gate pass.
|
||||
J5.2 interaction-transaction ownership is next. Evidence:
|
||||
[`../research/2026-07-26-slice-j5-1-canonical-action-state.md`](../research/2026-07-26-slice-j5-1-canonical-action-state.md).
|
||||
J5.2 completed at `f5f7b417`. Runtime now owns the use throttle and exact
|
||||
use/appraisal/pickup transaction identities, typed ordered interaction FIFO,
|
||||
and post-arrival pickup token while borrowing J4's sole busy/request gate.
|
||||
App retains picking, movement/transport, lighting, toasts, drag/drop, and
|
||||
pending-slot presentation. Its 197 Runtime tests, 3,775 App tests / 3 skips,
|
||||
8,561 complete Release tests / 5 skips, and exact-binary seven-checkpoint
|
||||
lifecycle/reconnect gate pass. J5.3 combat/magic intent is next. Evidence:
|
||||
[`../research/2026-07-26-slice-j5-1-canonical-action-state.md`](../research/2026-07-26-slice-j5-1-canonical-action-state.md)
|
||||
and
|
||||
[`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md).
|
||||
|
||||
- Move presentation-free movement interpretation, authoritative/predicted
|
||||
physics state, selection identity, approach/use transactions, combat intent,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modern runtime Slice J5 — movement, physics, interaction, and combat
|
||||
|
||||
**Status:** ACTIVE — J5.1 complete; J5.2 next
|
||||
**Status:** ACTIVE — J5.1–J5.2 complete; J5.3 next
|
||||
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J5
|
||||
**Production base:** `2c67a2c3`
|
||||
**Authorization:** the user approved Slices F–L, including the Slice J
|
||||
|
|
@ -86,7 +86,7 @@ commands to Runtime. The camera may not write the player heading directly.
|
|||
|---|---|---|
|
||||
| J5.0 owner/retail inventory | complete | `docs/research/2026-07-26-slice-j5-owner-and-retail-order-inventory.md` |
|
||||
| J5.1 canonical action state | complete | `b298f99f913249d299796e6a71f7a9b6b283ac1a`; one Runtime selection/combat/target-mode owner; 182 Runtime tests, 3,779 App tests / 3 skips, 8,550 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass |
|
||||
| J5.2 interaction transactions | pending | use/appraisal/pickup/approach state and transport ordering |
|
||||
| J5.2 interaction transactions | complete | `f5f7b4177f449ebcad9724bfea263ef73ab60255`; one Runtime transaction owner; 197 Runtime tests, 3,775 App tests / 3 skips, 8,561 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass |
|
||||
| J5.3 combat and magic intent | pending | attack/mode/target/cast owners and typed input |
|
||||
| J5.4 local movement and outbound cadence | pending | controller, body, movement managers, MTS/AP/jump cadence |
|
||||
| J5.5 per-session physics and remote simulation | pending | engine/scratch/shadows/remote canonical body |
|
||||
|
|
@ -187,6 +187,29 @@ Gate:
|
|||
reentrancy, reset/disposal;
|
||||
- normalized graphical/direct ordered traces and no duplicate busy owner.
|
||||
|
||||
Completed 2026-07-26 at
|
||||
`f5f7b4177f449ebcad9724bfea263ef73ab60255`.
|
||||
`RuntimeInteractionTransactionState`, owned beneath `RuntimeActionState`, now
|
||||
owns the retail 200-ms use gate, exact use source/target identity, pending and
|
||||
current appraisal identity, typed ordered interactions, and the exact
|
||||
post-arrival pickup token. It borrows—not duplicates—J4's
|
||||
`InventoryTransactionState`, so ordinary Use transfers one busy reference to
|
||||
authoritative UseDone and pickup retains the same one-request-at-a-time gate.
|
||||
App retains world rays, lighting, movement installation, transport, toasts,
|
||||
drag/drop, and pending-slot presentation. The old App delegate queue and App
|
||||
transaction fields are deleted.
|
||||
|
||||
Identity-bound work is cancelled by exact local incarnation on delete and by
|
||||
server GUID on Hidden. Re-entrant reset, disposal, transport failure, stale
|
||||
approach completion, and GUID reuse cannot resurrect a transaction or strand
|
||||
the busy gate. Focused near/far use, carried-use, appraisal, item-on-target,
|
||||
pickup, pending-slot, hidden/delete, reset, and callback-order tests pass.
|
||||
The exact-binary connected report is
|
||||
`logs/connected-world-gate-20260726-111330/report.json`: 7/7 ready
|
||||
checkpoints, two graceful code-zero exits, zero failures or invariant
|
||||
violations, and only the 25 expected world-edge landblock misses. Evidence:
|
||||
[`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md).
|
||||
|
||||
## J5.3 — combat and magic intent
|
||||
|
||||
Move:
|
||||
|
|
@ -381,6 +404,12 @@ J5.1 rollback:
|
|||
git revert b298f99f913249d299796e6a71f7a9b6b283ac1a
|
||||
```
|
||||
|
||||
J5.2 rollback:
|
||||
|
||||
```text
|
||||
git revert f5f7b4177f449ebcad9724bfea263ef73ab60255
|
||||
```
|
||||
|
||||
## Acceptance
|
||||
|
||||
J5 is complete only when:
|
||||
|
|
|
|||
121
docs/research/2026-07-26-slice-j5-2-interaction-transactions.md
Normal file
121
docs/research/2026-07-26-slice-j5-2-interaction-transactions.md
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
# Slice J5.2 — canonical interaction transactions
|
||||
|
||||
**Date:** 2026-07-26
|
||||
**Production commit:** `f5f7b4177f449ebcad9724bfea263ef73ab60255`
|
||||
**Parent plan:** `docs/plans/2026-07-26-modern-runtime-slice-j5.md`
|
||||
|
||||
## Result
|
||||
|
||||
Interaction transaction authority now lives beneath the canonical Runtime
|
||||
action root. `RuntimeInteractionTransactionState` owns:
|
||||
|
||||
- retail's strict 200-ms local use throttle;
|
||||
- last ordinary or targeted-use source/target identity;
|
||||
- pending and current appraisal identity;
|
||||
- the typed frame-ordered Activate/Use/Pickup FIFO;
|
||||
- the exact pending pickup identity, inventory-placement token, and
|
||||
post-arrival movement token;
|
||||
- reset, disposal, failure, and ownership accounting.
|
||||
|
||||
It borrows the exact `RuntimeInventoryState.Transactions` instance. There is no
|
||||
second busy counter, inventory request, object table, or pending-pickup
|
||||
authority.
|
||||
|
||||
App remains the graphical adapter. It performs world picking, selection
|
||||
lighting, approach installation, wire transport, toasts, retained drag/drop,
|
||||
and pending-slot drawing. The former App `OutboundInteractionQueue` and the
|
||||
use/appraisal/pickup transaction fields in App controllers are deleted.
|
||||
|
||||
## Retail order preserved
|
||||
|
||||
The implementation preserves the named-retail order recorded in
|
||||
`docs/research/2026-07-26-slice-j5-owner-and-retail-order-inventory.md`:
|
||||
|
||||
- `ItemHolder::UseObject @ 0x00588A80` applies the strict local use gate,
|
||||
emits ordinary Use immediately after policy accepts it, and transfers one
|
||||
shared UI-busy reference to the server completion;
|
||||
- `ClientUISystem::Handle_Item__UseDone @ 0x00564900` releases exactly one
|
||||
busy reference;
|
||||
- targeted Use stores the source until a compatible target is acquired, then
|
||||
emits the exact source/target pair;
|
||||
- pickup alone retains the existing local approach transaction and sends once
|
||||
after the exact natural completion token.
|
||||
|
||||
No new polling, background thread, asynchronous command seam, speculative
|
||||
approach for ordinary Use, or frame of gameplay latency was introduced.
|
||||
|
||||
## Lifetime and failure behavior
|
||||
|
||||
- Queued work carries server GUID, optional exact Runtime local ID, and
|
||||
optional exact `ClientObject` identity.
|
||||
- Hidden cancels every queued/deferred transaction for that server object.
|
||||
- Deletion cancels only the removed local incarnation, so GUID reuse cannot
|
||||
erase or execute replacement work.
|
||||
- A captured frame drains in FIFO order; re-entrant additions wait for the
|
||||
next frame.
|
||||
- Re-entrant reset/disposal stops the captured suffix and cannot resurrect
|
||||
targeted-use or pickup state.
|
||||
- Appraisal transport failure rolls back only the busy reference acquired by
|
||||
that exact request.
|
||||
- A dispatched ordinary Use remains busy until authoritative UseDone; later
|
||||
movement cancellation, Hidden, or deletion cannot retract or duplicate its
|
||||
packet.
|
||||
- Runtime action disposal precedes inventory disposal because the transaction
|
||||
child borrows the exact inventory gate.
|
||||
|
||||
## Automated gates
|
||||
|
||||
All commands ran in Release:
|
||||
|
||||
- `dotnet test tests/AcDream.Runtime.Tests/AcDream.Runtime.Tests.csproj`:
|
||||
197 passed.
|
||||
- `dotnet test tests/AcDream.App.Tests/AcDream.App.Tests.csproj`:
|
||||
3,775 passed / 3 fixture-generator skips.
|
||||
- `dotnet build AcDream.slnx -c Release --no-restore`: passed.
|
||||
- `dotnet test AcDream.slnx -c Release --no-build --no-restore`:
|
||||
8,561 passed / 5 established skips.
|
||||
- `git diff --check`: passed.
|
||||
|
||||
Focused tests cover the 199/200-ms throttle boundary, ordinary and targeted
|
||||
Use, UseDone, appraisal replacement/refresh/failure, typed FIFO and re-entrant
|
||||
drain, Hidden/delete cancellation, exact approach completion, transport
|
||||
failure, pending-slot acceptance/failure, GUID reuse, reset/disposal, and
|
||||
two-instance isolation.
|
||||
|
||||
## Exact-binary connected gate
|
||||
|
||||
Report:
|
||||
`logs/connected-world-gate-20260726-111330/report.json`.
|
||||
|
||||
The report identifies exact source/binary commit
|
||||
`f5f7b4177f449ebcad9724bfea263ef73ab60255` and passes:
|
||||
|
||||
- six capped login/outdoor/world-edge/dungeon/revisit checkpoints;
|
||||
- one fresh uncapped-process reconnect checkpoint;
|
||||
- 7/7 complete reveal/readiness checkpoints;
|
||||
- zero invariant failures and zero render-scene mismatches;
|
||||
- 243.534-second capped and 61.619-second reconnect sessions;
|
||||
- graceful logout and code-zero exit for both processes;
|
||||
- zero failures;
|
||||
- one expected warning covering 25 empty world-edge landblocks.
|
||||
|
||||
## Divergence audit
|
||||
|
||||
This is an ownership-only move of accepted retail-faithful behavior. It adds
|
||||
no approximation, alternate algorithm, polling mirror, or asynchronous seam.
|
||||
No divergence-register row was added or retired.
|
||||
|
||||
## Rollback
|
||||
|
||||
```text
|
||||
git revert f5f7b4177f449ebcad9724bfea263ef73ab60255
|
||||
```
|
||||
|
||||
Revert J5 sub-slices in reverse order. Do not revert J4's canonical inventory
|
||||
owner or Slice I's flat-collision cutover to mask a later action-owner defect.
|
||||
|
||||
## Next boundary
|
||||
|
||||
J5.3 moves combat attack and spell-cast intent into Runtime. App continues to
|
||||
own the combat/spell widgets, camera tracking, animations, audio, particles,
|
||||
DAT catalog/icon/formula presentation, and response text.
|
||||
Loading…
Add table
Add a link
Reference in a new issue