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