authored-world-acceptance.json
docs/evidence/authored-world-acceptance.json
1{
2 "format": 1,
3 "source": {
4 "revision": "cbb9ec34f56b0d5d868dc99c2fdf21d6ff6144ef",
5 "dirty": false,
6 "builtAt": "2026-10-24T21:10:20.507Z"
7 },
8 "engine": "0.1.0",
9 "environment": {
10 "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36",
11 "secureContext": true,
12 "hardwareConcurrency": 16,
13 "devicePixelRatio": 1
14 },
15 "headless": {
16 "command": "npm test",
17 "tests": 129,
18 "pass": 129,
19 "fail": 0,
20 "skipped": 0,
21 "log": "authored-world-headless.tap"
22 },
23 "browser": {
24 "command": "CI=1 PLAYWRIGHT_EXECUTABLE_PATH=/tmp/dw-browser-test/chrome-linux/headless_shell npm run test:browser",
25 "stats": {
26 "startTime": "2026-10-24T21:10:20.054Z",
27 "duration": 158691.604,
28 "expected": 22,
29 "skipped": 0,
30 "unexpected": 0,
31 "flaky": 0
32 },
33 "tests": [
34 {
35 "name": "two real browsers share doors and chat, then the guest takes over when the host leaves",
36 "ok": true,
37 "results": [
38 {
39 "status": "passed",
40 "durationMs": 11036
41 }
42 ]
43 },
44 {
45 "name": "simultaneous real-browser pickups grant one lantern, including across host handoff",
46 "ok": true,
47 "results": [
48 {
49 "status": "passed",
50 "durationMs": 38581
51 }
52 ]
53 },
54 {
55 "name": "travelers see each other move in the rendered world",
56 "ok": true,
57 "results": [
58 {
59 "status": "passed",
60 "durationMs": 7879
61 }
62 ]
63 },
64 {
65 "name": "canonical ECS frames stay bounded while acknowledgements stall and then catch up",
66 "ok": true,
67 "results": [
68 {
69 "status": "passed",
70 "durationMs": 4039
71 }
72 ]
73 },
74 {
75 "name": "new checkpoints save without animation frames",
76 "ok": true,
77 "results": [
78 {
79 "status": "passed",
80 "durationMs": 4451
81 }
82 ]
83 },
84 {
85 "name": "restored checkpoints save without animation frames",
86 "ok": true,
87 "results": [
88 {
89 "status": "passed",
90 "durationMs": 3542
91 }
92 ]
93 },
94 {
95 "name": "front lawn supports leaving the porch and walking back up",
96 "ok": true,
97 "results": [
98 {
99 "status": "passed",
100 "durationMs": 10835
101 }
102 ]
103 },
104 {
105 "name": "renders, walks, pauses, releases input, and restores the local checkpoint",
106 "ok": true,
107 "results": [
108 {
109 "status": "passed",
110 "durationMs": 12859
111 }
112 ]
113 },
114 {
115 "name": "keeper dialogue pauses movement and updates the journal",
116 "ok": true,
117 "results": [
118 {
119 "status": "passed",
120 "durationMs": 4284
121 }
122 ]
123 },
124 {
125 "name": "place travel, pickup conditions, beacon state, and render resources remain coherent",
126 "ok": true,
127 "results": [
128 {
129 "status": "passed",
130 "durationMs": 9272
131 }
132 ]
133 },
134 {
135 "name": "unsupported GPU and malformed saves fail safely",
136 "ok": true,
137 "results": [
138 {
139 "status": "passed",
140 "durationMs": 2751
141 }
142 ]
143 },
144 {
145 "name": "legacy saves are preserved while exact uint64 saves advance and reload from the new key",
146 "ok": true,
147 "results": [
148 {
149 "status": "passed",
150 "durationMs": 8441
151 }
152 ]
153 },
154 {
155 "name": "owned renderer works on the main thread and survives worker resize, device loss and restart",
156 "ok": true,
157 "results": [
158 {
159 "status": "passed",
160 "durationMs": 10250
161 }
162 ]
163 },
164 {
165 "name": "probe reports unsupported graphics without joining a room",
166 "ok": true,
167 "results": [
168 {
169 "status": "passed",
170 "durationMs": 199
171 }
172 ]
173 },
174 {
175 "name": "cancelling a worker probe releases ownership and permits another run",
176 "ok": true,
177 "results": [
178 {
179 "status": "passed",
180 "durationMs": 3557
181 }
182 ]
183 },
184 {
185 "name": "gesture probe confirms pointer release and closes the silent audio context",
186 "ok": true,
187 "results": [
188 {
189 "status": "passed",
190 "durationMs": 206
191 }
192 ]
193 },
194 {
195 "name": "worker exceptions produce a bounded failure and the next run can recover",
196 "ok": true,
197 "results": [
198 {
199 "status": "passed",
200 "durationMs": 6028
201 }
202 ]
203 },
204 {
205 "name": "a silent worker hits its deadline and releases ownership",
206 "ok": true,
207 "results": [
208 {
209 "status": "passed",
210 "durationMs": 669
211 }
212 ]
213 },
214 {
215 "name": "contract worker failures release ownership and can be retried",
216 "ok": true,
217 "results": [
218 {
219 "status": "passed",
220 "durationMs": 7060
221 }
222 ]
223 },
224 {
225 "name": "unavailable workers are reported as unsupported after main-thread rendering",
226 "ok": true,
227 "results": [
228 {
229 "status": "passed",
230 "durationMs": 562
231 }
232 ]
233 },
234 {
235 "name": "replay worker failure and cancellation release ownership and allow recovery",
236 "ok": true,
237 "results": [
238 {
239 "status": "passed",
240 "durationMs": 8027
241 }
242 ]
243 },
244 {
245 "name": "a silent simulation replay worker reaches its deadline and releases ownership",
246 "ok": true,
247 "results": [
248 {
249 "status": "passed",
250 "durationMs": 2143
251 }
252 ]
253 }
254 ]
255 },
256 "ci": {
257 "url": "https://github.com/jasona/darkwind-web/actions/runs/40133042326",
258 "status": "completed",
259 "conclusion": "failure",
260 "jobs": [
261 {
262 "name": "core",
263 "conclusion": "success"
264 },
265 {
266 "name": "browser",
267 "conclusion": "failure"
268 },
269 {
270 "name": "container",
271 "conclusion": "success"
272 }
273 ],
274 "failure": "21 browser cases passed; the raw-canvas pixel assertion returned false while the CI trace visibly showed the complete rendered house. The follow-up check samples the composited image with all DOM UI hidden and includes delayed-GPU and invisible-canvas controls.",
275 "visualEvidence": "authored-world-ci-visible-house.jpeg"
276 },
277 "scope": "Actual authored-world ECS integration, bounded worker snapshot delivery, shared player journey, canvas pixels, native checkpoint migration and Node/browser replay. Software WebGPU only; no physical-device, large-room capacity, live-editing physics or full-milestone acceptance.",
278 "developmentDiagnostics": [
279 "The default Playwright headless-shell path was absent. Acceptance explicitly selected the existing pinned Chromium 141 executable.",
280 "A preliminary Google Chrome 156.0.8078.47 headless software-WebGPU run passed 21 of 22 cases, failed the shared-door prompt case and showed missing world graphics. Its cause remains unproven; that configuration is not accepted by this report. The pinned development run passed all 22, followed by the clean-source run above with a raw-canvas pixel assertion."
281 ]
282}
283