2.6 KiB
Slice J6.1 — canonical world-environment ownership
Date: 2026-07-26
Production commit: 902076c0a42079596a8a273e9be402776cabf4b0
Exact rollback: git revert 902076c0a42079596a8a273e9be402776cabf4b0
Outcome
AcDream.Runtime now owns one world-environment lifetime per client session:
- an instance-scoped
DerethCalendar; - the server-synchronized world clock;
- weather progression and active weather state;
- retail day-group selection;
- AdminEnvirons state;
- typed debug time and weather overrides.
AcDream.App remains the graphical host. It converts immutable DAT sky
definitions into the Runtime definition and maps Runtime's selected day-group
index, clock, and weather snapshot into sky rendering. It does not own a
second clock or weather state.
The production path no longer mutates a process-global Region calendar origin.
Two Runtime instances may therefore use different Region origins and server
times without contaminating each other. Startup environment variables enter
once through RuntimeOptions.
Retail mechanism
SkyDesc::CalcPresentDayGroup @ 0x00500E10CPlayerSystem::Handle_Admin__Environs @ 0x0055DE20
SkyDayGroupSelector preserves the named-retail ordered selection algorithm
and its 0x6A42FDB2 pseudo-random multiplier. DerethCalendar preserves the
existing retail epoch conversion while moving the mutable Region origin into
the owning Runtime instance.
No new retail divergence was introduced.
Automated evidence
- Runtime: 332 passed.
- App: 3,718 passed / 3 skipped.
- Complete solution: 8,611 passed / 5 skipped.
- Release build: 0 errors, 0 warnings.
- Runtime dependency/source guards: passed.
- Two-instance calendar, TimeSync, rollover/day-group, AdminEnvirons, debug override, reset, and projection fixtures: passed.
Connected evidence
Report:
logs/connected-world-gate-20260726-164602/report.json
The report records source and embedded binary commit
902076c0a42079596a8a273e9be402776cabf4b0.
- Capped process: 244.907 seconds, six checkpoints, graceful code-zero exit.
- Uncapped fresh-process reconnect: 61.46 seconds, one checkpoint, graceful code-zero exit.
- Route: fresh login, Aerlinthe, Rynthid world edge, Facility Hub dungeon, Holtburg, Aerlinthe revisit, then fresh-process reconnect.
- Failures: zero.
- Expected warning: 25 instrumented world-edge landblock misses.
- Reveal invariant failures: zero.
This proves the new environment owner preserves connected login, outdoor, world-edge, dungeon, revisit, disconnect, and reconnect behavior before J6.2 moves the independent portal/reveal lifetime.