REPOSITORY SOURCE

simulation-recovery-acceptance.json

docs/evidence/simulation-recovery-acceptance.json

1{
2  "date": "2026-10-25",
3  "branch": "codex/engine-foundations",
4  "approximateFullPlanCompletePercent": 57,
5  "scope": [
6    "Retain one sealed native checkpoint outside the simulation worker with one pending capture",
7    "Replace a blocked or faulted worker without a page reload; clear input, reconstruct presentation and verify a frame before Continue",
8    "Reconnect the same room session and reconcile authoritative state and shared route clocks",
9    "Restore an older development checkpoint into a compatible accepted world and recover from a stall during revision preparation",
10    "Bound attempts and preserve durable local saves on failed restoration",
11    "Preserve airborne velocity, jump/ground state, controller configuration and rider support during shared platform admission"
12  ],
13  "verification": {
14    "headless": {
15      "passed": 552,
16      "failed": 0,
17      "evidence": "simulation-recovery-full.tap"
18    },
19    "focusedHeadless": {
20      "passed": 34,
21      "failed": 0,
22      "evidence": "simulation-recovery-focused.tap"
23    },
24    "coreBrowser": {
25      "passed": 12,
26      "failed": 0,
27      "evidence": "simulation-recovery-browser-tests.json"
28    },
29    "affectedSharedWorldBrowser": {
30      "passed": 3,
31      "failed": 0,
32      "evidence": "simulation-recovery-development-tests.json"
33    },
34    "staticChecks": "TypeScript and import boundaries passed (108 package source files)",
35    "build": "Isolated production client and engine bundles built by browser harness; local editor rebuilt after verification",
36    "order": "Core browser acceptance preceded the final shared-platform motor correction. Full headless and affected development/ferry browser acceptance followed that correction; ordinary non-route core browser behavior is unchanged."
37  },
38  "nativeProof": [
39    "Both render placements restore exact airborne position, velocity and tick from a native checkpoint with animation frames withheld and without changing performance.timeOrigin",
40    "Shared session identity survives and new authoritative door mutations reach the replacement",
41    "Two replacements succeed; a third stall takes the manual retry path without a restart loop",
42    "A corrupt native checksum retires the replacement and leaves durable local save bytes unchanged",
43    "Older-source checkpoints restore into the accepted edited world; subsequent live Apply succeeds",
44    "Stalling the worker in revision preparation preserves the accepted source and permits Apply retry",
45    "Shared route time continues while locally paused after recovery; ferry boarding, pause, host handoff and reload remain coherent"
46  ],
47  "regressionEvidence": {
48    "before": "simulation-recovery-airborne-before.tap",
49    "observed": "Shared admission changed restored vertical velocity from 6 to 0. The corrected path preserves motor/controller state and passes native checkpoint validation and the full suite."
50  },
51  "testDevelopmentNotes": [
52    "An initial combined browser run correctly found an already-open shared door left by the preceding journey. The fallback test now toggles the observed authoritative state instead of assuming a fresh relay; final core acceptance passes all 12 scenarios."
53  ],
54  "visualReview": [
55    "simulation-recovery-wait.png",
56    "simulation-recovered-worker.png",
57    "simulation-recovered-main.png",
58    "development-native-recovered.png"
59  ],
60  "diagnostics": "simulation-recovery-report.json",
61  "localEditor": {
62    "editor": "http://localhost:5181/editor.html",
63    "relayPort": 8791,
64    "savedDraftUnchanged": true,
65    "document": {
66      "revision": "0",
67      "sha256": "f076388ad340c7b1e1aa84e72368aa6a9d3a3f6546187a2fed1d0fba66c36977"
68    },
69    "health": {
70      "ready": true,
71      "players": 0,
72      "revision": "0",
73      "epoch": "0"
74    },
75    "developmentActive": false
76  },
77  "limits": [
78    "Native points remain in page memory; local movement and solo actions since the latest point may roll back. The ordinary lightweight save remains the reload fallback.",
79    "Two attempts and a 45-second per-attempt deadline; invalid, incompatible or failed recovery falls back to manual retry.",
80    "The main-thread watchdog cannot interrupt its own blocked event loop.",
81    "Arbitrary engine/source migration, behavior-level transaction rollback and budgets, durable native storage and hostile-code isolation remain open.",
82    "Software-rendered acceptance does not certify physical devices, multi-machine operation or long soaks.",
83    "No full numbered roadmap milestone is closed; final character art remains deferred."
84  ]
85}
86