presentation-browser-tests.json
docs/evidence/presentation-browser-tests.json
1{
2 "format": 1,
3 "source": {
4 "revision": "b53e3ba719702a2073c947327d4244e00895f013",
5 "dirty": false,
6 "builtAt": "2026-10-24T20:15:06.906Z"
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:15:06.470Z",
18 "duration": 130850.504,
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": 13195
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": 35702
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": 7088
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": 8086
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": 10091
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": 3000
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": 9859
92 }
93 ]
94 },
95 {
96 "name": "unsupported GPU and malformed saves fail safely",
97 "ok": true,
98 "results": [
99 {
100 "status": "passed",
101 "durationMs": 2135
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": 6714
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": 7848
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": 194
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": 3542
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": 191
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": 5049
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": 623
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": 6047
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": 575
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": 7011
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": 2118
212 }
213 ]
214 }
215 ],
216 "scope": "Production-build player and owned WebGPU main/worker protocol with injected structural loss, baseline recovery, stale update rejection, shared multiplayer and delayed worker pause acknowledgment. Software WebGPU; not physical-device performance or completion of the renderer milestone."
217}
218