ecs-presentation-browser-tests.json
docs/evidence/ecs-presentation-browser-tests.json
1{
2 "format": 1,
3 "source": {
4 "revision": "c372760ca3cdb7d9664d6343b7dbbf202166d576",
5 "dirty": false,
6 "builtAt": "2026-10-24T20:26:18.018Z"
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 "command": "CI=1 PLAYWRIGHT_EXECUTABLE_PATH=/tmp/dw-browser-test/chrome-linux/headless_shell npm run test:browser",
16 "stats": {
17 "startTime": "2026-10-24T20:26:17.572Z",
18 "duration": 131014.62899999999,
19 "expected": 19,
20 "skipped": 0,
21 "unexpected": 0,
22 "flaky": 0
23 },
24 "tests": [
25 {
26 "name": "two real browsers share doors and chat, then the guest takes over when the host leaves",
27 "ok": true,
28 "results": [
29 {
30 "status": "passed",
31 "durationMs": 11982
32 }
33 ]
34 },
35 {
36 "name": "simultaneous real-browser pickups grant one lantern, including across host handoff",
37 "ok": true,
38 "results": [
39 {
40 "status": "passed",
41 "durationMs": 36021
42 }
43 ]
44 },
45 {
46 "name": "travelers see each other move in the rendered world",
47 "ok": true,
48 "results": [
49 {
50 "status": "passed",
51 "durationMs": 7274
52 }
53 ]
54 },
55 {
56 "name": "front lawn supports leaving the porch and walking back up",
57 "ok": true,
58 "results": [
59 {
60 "status": "passed",
61 "durationMs": 7906
62 }
63 ]
64 },
65 {
66 "name": "renders, walks, pauses, releases input, and restores the local checkpoint",
67 "ok": true,
68 "results": [
69 {
70 "status": "passed",
71 "durationMs": 9808
72 }
73 ]
74 },
75 {
76 "name": "keeper dialogue pauses movement and updates the journal",
77 "ok": true,
78 "results": [
79 {
80 "status": "passed",
81 "durationMs": 3759
82 }
83 ]
84 },
85 {
86 "name": "place travel, pickup conditions, beacon state, and render resources remain coherent",
87 "ok": true,
88 "results": [
89 {
90 "status": "passed",
91 "durationMs": 8330
92 }
93 ]
94 },
95 {
96 "name": "unsupported GPU and malformed saves fail safely",
97 "ok": true,
98 "results": [
99 {
100 "status": "passed",
101 "durationMs": 1886
102 }
103 ]
104 },
105 {
106 "name": "legacy saves are preserved while exact uint64 saves advance and reload from the new key",
107 "ok": true,
108 "results": [
109 {
110 "status": "passed",
111 "durationMs": 6857
112 }
113 ]
114 },
115 {
116 "name": "owned renderer works on the main thread and survives worker resize, device loss and restart",
117 "ok": true,
118 "results": [
119 {
120 "status": "passed",
121 "durationMs": 8872
122 }
123 ]
124 },
125 {
126 "name": "probe reports unsupported graphics without joining a room",
127 "ok": true,
128 "results": [
129 {
130 "status": "passed",
131 "durationMs": 198
132 }
133 ]
134 },
135 {
136 "name": "cancelling a worker probe releases ownership and permits another run",
137 "ok": true,
138 "results": [
139 {
140 "status": "passed",
141 "durationMs": 4589
142 }
143 ]
144 },
145 {
146 "name": "gesture probe confirms pointer release and closes the silent audio context",
147 "ok": true,
148 "results": [
149 {
150 "status": "passed",
151 "durationMs": 203
152 }
153 ]
154 },
155 {
156 "name": "worker exceptions produce a bounded failure and the next run can recover",
157 "ok": true,
158 "results": [
159 {
160 "status": "passed",
161 "durationMs": 5031
162 }
163 ]
164 },
165 {
166 "name": "a silent worker hits its deadline and releases ownership",
167 "ok": true,
168 "results": [
169 {
170 "status": "passed",
171 "durationMs": 641
172 }
173 ]
174 },
175 {
176 "name": "contract worker failures release ownership and can be retried",
177 "ok": true,
178 "results": [
179 {
180 "status": "passed",
181 "durationMs": 6001
182 }
183 ]
184 },
185 {
186 "name": "unavailable workers are reported as unsupported after main-thread rendering",
187 "ok": true,
188 "results": [
189 {
190 "status": "passed",
191 "durationMs": 592
192 }
193 ]
194 },
195 {
196 "name": "replay worker failure and cancellation release ownership and allow recovery",
197 "ok": true,
198 "results": [
199 {
200 "status": "passed",
201 "durationMs": 7012
202 }
203 ]
204 },
205 {
206 "name": "a silent simulation replay worker reaches its deadline and releases ownership",
207 "ok": true,
208 "results": [
209 {
210 "status": "passed",
211 "durationMs": 2140
212 }
213 ]
214 }
215 ],
216 "developmentCorrection": "The first clean-source run at 04b2df2 stopped during test loading because the direct JSON import needed an import attribute under Playwright. c372760 uses Node readFileSync for the pinned matrix fixture. No runtime change was needed.",
217 "scope": "Version-two matrix presentation and ECS-derived engine-zoo main/worker rendering, hierarchy/shear, eight primitive replacement frames, missing-asset preservation, deletion/journal overflow and exact restored frame. Includes the complete existing multiplayer journey. No live Darkwind authored-entity migration, transferable queue or physical-GPU performance claim."
218}
219