REPOSITORY SOURCE

authoring-acceptance.json

docs/evidence/authoring-acceptance.json

1{
2  "format": 1,
3  "source": {
4    "revision": "382ea48e93e3a4b9e78742d1c86a190baaf50af1",
5    "dirty": false,
6    "builtAt": "2026-10-24T21:26:50.082Z"
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": 136,
18    "pass": 136,
19    "fail": 0,
20    "skipped": 0,
21    "log": "authoring-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:26:49.650Z",
27      "duration": 157924.891,
28      "expected": 23,
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": 9236
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": 37645
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": 8919
61          }
62        ]
63      },
64      {
65        "name": "world pixel checks use completed presentation and reject an invisible canvas despite visible UI",
66        "ok": true,
67        "results": [
68          {
69            "status": "passed",
70            "durationMs": 2592
71          }
72        ]
73      },
74      {
75        "name": "canonical ECS frames stay bounded while acknowledgements stall and then catch up",
76        "ok": true,
77        "results": [
78          {
79            "status": "passed",
80            "durationMs": 3239
81          }
82        ]
83      },
84      {
85        "name": "new checkpoints save without animation frames",
86        "ok": true,
87        "results": [
88          {
89            "status": "passed",
90            "durationMs": 4549
91          }
92        ]
93      },
94      {
95        "name": "restored checkpoints save without animation frames",
96        "ok": true,
97        "results": [
98          {
99            "status": "passed",
100            "durationMs": 3572
101          }
102        ]
103      },
104      {
105        "name": "front lawn supports leaving the porch and walking back up",
106        "ok": true,
107        "results": [
108          {
109            "status": "passed",
110            "durationMs": 7555
111          }
112        ]
113      },
114      {
115        "name": "renders, walks, pauses, releases input, and restores the local checkpoint",
116        "ok": true,
117        "results": [
118          {
119            "status": "passed",
120            "durationMs": 11223
121          }
122        ]
123      },
124      {
125        "name": "keeper dialogue pauses movement and updates the journal",
126        "ok": true,
127        "results": [
128          {
129            "status": "passed",
130            "durationMs": 4815
131          }
132        ]
133      },
134      {
135        "name": "place travel, pickup conditions, beacon state, and render resources remain coherent",
136        "ok": true,
137        "results": [
138          {
139            "status": "passed",
140            "durationMs": 10209
141          }
142        ]
143      },
144      {
145        "name": "unsupported GPU and malformed saves fail safely",
146        "ok": true,
147        "results": [
148          {
149            "status": "passed",
150            "durationMs": 2145
151          }
152        ]
153      },
154      {
155        "name": "legacy saves are preserved while exact uint64 saves advance and reload from the new key",
156        "ok": true,
157        "results": [
158          {
159            "status": "passed",
160            "durationMs": 8603
161          }
162        ]
163      },
164      {
165        "name": "owned renderer works on the main thread and survives worker resize, device loss and restart",
166        "ok": true,
167        "results": [
168          {
169            "status": "passed",
170            "durationMs": 10316
171          }
172        ]
173      },
174      {
175        "name": "probe reports unsupported graphics without joining a room",
176        "ok": true,
177        "results": [
178          {
179            "status": "passed",
180            "durationMs": 193
181          }
182        ]
183      },
184      {
185        "name": "cancelling a worker probe releases ownership and permits another run",
186        "ok": true,
187        "results": [
188          {
189            "status": "passed",
190            "durationMs": 4573
191          }
192        ]
193      },
194      {
195        "name": "gesture probe confirms pointer release and closes the silent audio context",
196        "ok": true,
197        "results": [
198          {
199            "status": "passed",
200            "durationMs": 208
201          }
202        ]
203      },
204      {
205        "name": "worker exceptions produce a bounded failure and the next run can recover",
206        "ok": true,
207        "results": [
208          {
209            "status": "passed",
210            "durationMs": 6994
211          }
212        ]
213      },
214      {
215        "name": "a silent worker hits its deadline and releases ownership",
216        "ok": true,
217        "results": [
218          {
219            "status": "passed",
220            "durationMs": 634
221          }
222        ]
223      },
224      {
225        "name": "contract worker failures release ownership and can be retried",
226        "ok": true,
227        "results": [
228          {
229            "status": "passed",
230            "durationMs": 8052
231          }
232        ]
233      },
234      {
235        "name": "unavailable workers are reported as unsupported after main-thread rendering",
236        "ok": true,
237        "results": [
238          {
239            "status": "passed",
240            "durationMs": 570
241          }
242        ]
243      },
244      {
245        "name": "replay worker failure and cancellation release ownership and allow recovery",
246        "ok": true,
247        "results": [
248          {
249            "status": "passed",
250            "durationMs": 8080
251          }
252        ]
253      },
254      {
255        "name": "a silent simulation replay worker reaches its deadline and releases ownership",
256        "ok": true,
257        "results": [
258          {
259            "status": "passed",
260            "durationMs": 2133
261          }
262        ]
263      }
264    ]
265  },
266  "ci": {
267    "url": "https://github.com/jasona/darkwind-web/actions/runs/40134228664",
268    "status": "completed",
269    "conclusion": "success",
270    "jobs": [
271      {
272        "name": "core",
273        "conclusion": "success"
274      },
275      {
276        "name": "browser",
277        "conclusion": "success"
278      },
279      {
280        "name": "container",
281        "conclusion": "success"
282      }
283    ]
284  },
285  "scope": "Persistent file authoring, compiler identity preservation, profile-4 migration and real runtime restoration. Includes software-WebGPU gameplay and multiplayer regressions; no live content activation or physical-GPU capacity claim."
286}
287