REPOSITORY SOURCE

streamed-revisions-acceptance.json

docs/evidence/streamed-revisions-acceptance.json

1{
2  "date": "2026-10-25",
3  "baseCommit": "9fe5d9d22515a7e5ee06af1731c3f3fd578c7571",
4  "scope": "Streamed development room startup, proposed/accepted live revisions, rejected retry, reconnect, retained local saves and native checkpoint migration. Immutable revision archive delivery is bounded and publication-safe.",
5  "environment": {
6    "node": "22.23.4",
7    "browser": "Playwright 1.56.1 / Chromium 141 / SwiftShader Vulkan WebGPU",
8    "temporaryDirectories": "Isolated short .data/sr-* directories; interactive beta/editor preserved"
9  },
10  "checks": {
11    "headless": {
12      "tests": 831,
13      "pass": 771,
14      "fail": 0,
15      "skipped": 60,
16      "report": "streamed-revisions-headless.tap"
17    },
18    "targetedAfterTypeFix": {
19      "passed": 7,
20      "report": "streamed-revisions-cache-after.log"
21    },
22    "build": {
23      "passed": true,
24      "packageFiles": 154,
25      "engine": "a89adf142f40c4d80631970ba89b50cc44c407a202ee277c5f2cb3b30634551c",
26      "report": "streamed-revisions-build.log"
27    },
28    "browser": {
29      "passed": 7,
30      "reports": {
31        "portals": {
32          "report": "streamed-revisions-portals.json",
33          "startTime": "2026-10-25T22:33:54.323Z",
34          "duration": 122563.122,
35          "expected": 1,
36          "skipped": 0,
37          "unexpected": 0,
38          "flaky": 0
39        },
40        "room": {
41          "report": "streamed-revisions-room.json",
42          "startTime": "2026-10-25T22:38:34.461Z",
43          "duration": 119283.722,
44          "expected": 3,
45          "skipped": 0,
46          "unexpected": 0,
47          "flaky": 0
48        },
49        "browser": {
50          "report": "streamed-revisions-browser.json",
51          "startTime": "2026-10-25T22:44:03.242Z",
52          "duration": 27006.518,
53          "expected": 1,
54          "skipped": 0,
55          "unexpected": 0,
56          "flaky": 0
57        },
58        "recovery": {
59          "report": "streamed-revisions-recovery.json",
60          "startTime": "2026-10-25T22:41:04.218Z",
61          "duration": 105118.89300000001,
62          "expected": 2,
63          "skipped": 0,
64          "unexpected": 0,
65          "flaky": 0
66        }
67      }
68    }
69  },
70  "verified": [
71    "Native streamed revision checkpoints exactly match the existing full-source revision adapter; accepted runtime and leases survive candidate rejection.",
72    "Two actual players reject corrupt replacement model bytes, keep the accepted head while downloads are held, then apply a corrected retry in worker/main graphics placements.",
73    "No full-world document request; unused/far models are not requested before selection/travel in the focused browser fixture.",
74    "Offline save migration, offline return after 36 revisions, lost-commit reconnect, older native checkpoint migration and worker stall during preparation preserve shared identity and permit later Apply.",
75    "Portal editor preview/undo, source/destination travelers, rejected portal GPU preparation/travel, reconnect and graphics/simulation recovery pass in both placements.",
76    "Immutable archive delivery survives relay restart, coalesces reads, bounds four archives/eight requests, fences shutdown and retries a previously missing archive after publication.",
77    "Old asynchronous abort cannot unfreeze a newer proposal; disconnect after local commit cannot abort the adopted content owner.",
78    "Starting preparation/recovery clears the obsolete toast; the held-download screenshot and DOM assertion verify the retry message."
79  ],
80  "initialFailuresAndCorrections": [
81    "Initial portal corrected-retry run rejected because a player disconnected before acceptance. Diagnostic and final uninstrumented runs pass; the original disconnect cause is not proven. Initial result/log retained.",
82    "Independent old-abort regression failed before lifecycle fencing and passed afterward; before/after TAP retained. It is not asserted to explain the portal disconnect.",
83    "The first shared-room run completed functional assertions but exceeded 60 seconds during cleanup. Retained trace excerpt records the final assertions. Its multi-stage test timeout is now 120 seconds; assertions, runtime deadlines and three active GPU scenes are unchanged. This is not performance qualification.",
84    "A real HTTP test reproduced a negative cache entry poisoning later publication (503 instead of 200). Failed archive reads now retire the entry; known archived compilation failures remain cached.",
85    "Type checking rejected self-reference to next.loaded inside its asynchronous initializer. A closure-local loaded flag preserves behavior and passes type checking plus seven focused HTTP checks.",
86    "Visual inspection found the old rejection toast beneath the next preparation banner; new preparation/recovery now clears it. The focused browser journey was rerun after that final UI change."
87  ],
88  "verificationOrder": "Full suite passed before the closure-local TypeScript correction; its seven affected HTTP checks and production build passed afterward. Seven browser scenarios passed; the focused two-player streaming journey was rerun after the final message-only UI change.",
89  "visualInspection": [
90    "streamed-revisions-portal-interest-player.png",
91    "streamed-revisions-portal-player-main.png",
92    "streamed-revisions-streamed-development-held.png",
93    "streamed-revisions-streamed-development-applied.png"
94  ],
95  "visualScope": "Fixture model replacement, portal travelers and status UI. Final production character/arrival art remains deferred.",
96  "remaining": [
97    "Interest-based adjacent preloading, stable loading priorities and bounded cooling",
98    "Broader delayed/replaced delivery faults, long-session and physical-device qualification",
99    "Original intermittent portal disconnect root cause",
100    "All unfinished full-plan milestones 0\u201318 and final character/arrival art pass"
101  ],
102  "sourceSha256": {
103    "apps/player/content.ts": "c4d8b9ddc359230f98485336f5a9766a8c49b29359f0615c6f9cb742293f183f",
104    "apps/player/development.ts": "c5401ee5f237147005f7bb8fac88f646665a85ff19787bf1ab6a9d9322db9e43",
105    "apps/player/graphics-protocol.ts": "f82222f844f803ce3e53b00b8426e1d37a814362735ba7f124750a8b7e7d1e62",
106    "apps/player/main.ts": "222a66517f4df8fa958d4f1547f0e58445a6de30077d9c848e41fb959295b510",
107    "apps/player/simulation-checkpoints.ts": "bad8c438d92f33dd810590693955a7e301429c355b492ef387e68b604e670c76",
108    "apps/player/simulation.worker.ts": "183fd7c8a111fdfde40e60ac4e6681aa6a7a51fce5b936b655ba4c080c34c64f",
109    "packages/simulation/index.ts": "6363c5d6866f1964e6cec01cee88595c7c603f648ca1f5c1007862c8940a233c",
110    "packages/world/streaming.ts": "7cbf631289b553a5e687224f0ba9f7c044df45fe3b28a0c033c4796cb70c4169",
111    "services/content/revisions.ts": "6f5f6255b17a382612fa9561288f25887e715745027a9cdcf0aa9351653abafd",
112    "services/relay/server.ts": "ef901117754b73aca54cc6c771d1c622342de02e60b49ea91cbde52ed6a48ff6",
113    "tests/browser/development-room.spec.ts": "45927783d57d666174e7a8e403faa601cf3b67e7ce5bd1b725d6c4ba0b564aa1",
114    "tests/browser/editor-portal-windows.spec.ts": "7155855e618acf4f5f5ef04e2279f1dd4683fb863020d1ee39124ea3a3ca803f",
115    "tests/browser/streamed-development.spec.ts": "50f020c74f9b75fc0265ce973b444e8462a82cd9cfe94cf0a7d9461a74885d04",
116    "tests/content-http.test.ts": "6b37245b873e1f691e7753d36faf756b9220fc3a3aab9eb664e1b1928049ea2c",
117    "tests/development-session.test.ts": "91d4f714d34580139876260b0d12aed476dadb01e29fa761c39d69fa4c18d160",
118    "tests/revision-content.test.ts": "8d5a26891aa38098ac2d081995b19082b64a3b21c53fde2baa26bb4a09b1ef2b",
119    "tests/streamed-revision.test.ts": "5a6d08d8b6651823cd7507a23b8017f77f0c19e0a63d522c695635e3546cc04b"
120  },
121  "approximateFullPlanPercent": 79,
122  "numberedMilestonesClosed": []
123}
124