slow-gait-ci-failed.log
docs/evidence/slow-gait-ci-failed.log
1browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.7978131Z ##[group]Run npm run test:browser -- tests/browser/multiplayer.spec.ts
2browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.7978731Z ^[[36;1mnpm run test:browser -- tests/browser/multiplayer.spec.ts^[[0m
3browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.8030503Z shell: /usr/bin/bash -e {0}
4browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.8030694Z ##[endgroup]
5browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.8772673Z
6browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.8773734Z > [email protected] test:browser
7browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.8774396Z > playwright test tests/browser/multiplayer.spec.ts
8browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:40.8774756Z
9browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.2474200Z [WebServer] ^[[33m
10browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.2475086Z [WebServer] ^[[1m(!)^[[22m outDir ^[[37m^[[2m/tmp/darkwind-browser-ofwWNU/client^[[22m^[[33m is not inside project root and will not be emptied.
11browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.2475660Z [WebServer] Use --emptyOutDir to override.
12browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.2475946Z [WebServer] ^[[39m
13browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.3794778Z [WebServer] ^[[33m[plugin builtin:vite-reporter] ^[[33;1m
14browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.3795739Z [WebServer] (!) Some chunks are larger than 500 kB after minification. Consider:
15browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.3796763Z [WebServer] - Using dynamic import() to code-split the application
16browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.3820143Z [WebServer] - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting
17browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:43.3825161Z [WebServer] - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.^[[0m^[[39m
18browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:44.1909190Z
19browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:44.1910116Z Running 6 tests using 1 worker
20browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:39:44.1910614Z
21browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:40:48.8726217Z ✓ 1 tests/browser/multiplayer.spec.ts:10:1 › two real browsers share doors and chat, then the guest takes over when the host leaves (1.1m)
22browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:41:48.4359190Z ✓ 2 tests/browser/multiplayer.spec.ts:24:1 › simultaneous real-browser pickups grant one lantern, including across host handoff (59.5s)
23browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:42:41.6607756Z ✓ 3 tests/browser/multiplayer.spec.ts:42:1 › travelers see each other move in the rendered world (53.2s)
24browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:43:41.0433637Z ✘ 4 tests/browser/multiplayer.spec.ts:50:1 › rigged travelers walk, settle when pose delivery stalls, and resume without leaking actors (59.1s)
25browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:44:39.4310299Z ✓ 5 tests/browser/multiplayer.spec.ts:65:1 › travelers keep walking with slow GPU completion and settle when real movement stops (57.7s)
26browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.0235264Z ✓ 6 tests/browser/multiplayer.spec.ts:88:1 › graphics recovery keeps the shared room and receives door changes during restoration (1.5m)
27browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4021617Z
28browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4024763Z
29browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4034327Z 1) tests/browser/multiplayer.spec.ts:50:1 › rigged travelers walk, settle when pose delivery stalls, and resume without leaking actors
30browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4035096Z
31browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4035868Z Error: ^[[2mexpect(^[[22m^[[31mreceived^[[39m^[[2m).^[[22mtoBe^[[2m(^[[22m^[[32mexpected^[[39m^[[2m) // Object.is equality^[[22m
32browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4036490Z
33browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4036787Z Expected: ^[[32m"1"^[[39m
34browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4037233Z Received: ^[[31m"0"^[[39m
35browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4037577Z
36browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4037816Z Call Log:
37browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4042392Z - Timeout 30000ms exceeded while waiting on the predicate
38browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4042969Z
39browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4043420Z 54 | await enter(a,[0,.85,4.8]);await enter(b,[1.2,.85,1.4]);await a.keyboard.press('F2');
40browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4044297Z 55 | await expect.poll(()=>metric('Rigged travelers')).toBe('1');await expect.poll(()=>metric('Walking travelers')).toBe('0');
41browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4045557Z > 56 | await expect.poll(()=>proxy.state.forwarded).toBeGreaterThan(2);await b.keyboard.down('KeyW');await expect.poll(()=>metric('Walking travelers'),{timeout:30000}).toBe('1');proxy.state.hold=true;
42browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4046593Z | ^
43browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4047560Z 57 | await expect.poll(()=>proxy.state.dropped).toBeGreaterThan(2);await expect.poll(()=>metric('Stalled travelers')).toBe('1');await expect.poll(()=>metric('Walking travelers')).toBe('0');
44browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4051678Z 58 | await expect(a.locator('#save-status')).toContainText('2 travelers');
45browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4052815Z 59 | await b.keyboard.up('KeyW');await b.keyboard.down('KeyS');proxy.state.hold=false;await expect.poll(()=>metric('Walking travelers'),{timeout:30000}).toBe('1');await b.keyboard.up('KeyS');
46browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4053985Z at /home/runner/work/darkwind-web/darkwind-web/tests/browser/multiplayer.spec.ts:56:97
47browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4054550Z
48browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4055243Z attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
49browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4056158Z test-results/multiplayer-rigged-travele-6e4f2-sume-without-leaking-actors/trace.zip
50browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4056882Z Usage:
51browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4057223Z
52browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4057866Z npx playwright show-trace test-results/multiplayer-rigged-travele-6e4f2-sume-without-leaking-actors/trace.zip
53browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4059300Z
54browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4059871Z ────────────────────────────────────────────────────────────────────────────────────────────────
55browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4060336Z
56browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4060619Z 1 failed
57browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4061392Z tests/browser/multiplayer.spec.ts:50:1 › rigged travelers walk, settle when pose delivery stalls, and resume without leaking actors
58browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4062052Z 5 passed (6.5m)
59browser (multiplayer) Run npm run test:browser -- tests/browser/multiplayer.spec.ts 2026-10-25T01:46:10.4260352Z ##[error]Process completed with exit code 1.
60browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.7649442Z ##[group]Run npm run test:browser -- tests/browser/player.spec.ts
61browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.7649862Z ^[[36;1mnpm run test:browser -- tests/browser/player.spec.ts^[[0m
62browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.7704377Z shell: /usr/bin/bash -e {0}
63browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.7704612Z ##[endgroup]
64browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.8515485Z
65browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.8516289Z > [email protected] test:browser
66browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.8517198Z > playwright test tests/browser/player.spec.ts
67browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:42.8517652Z
68browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.6157423Z [WebServer] ^[[33m
69browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.6158848Z [WebServer] ^[[1m(!)^[[22m outDir ^[[37m^[[2m/tmp/darkwind-browser-EUeMzX/client^[[22m^[[33m is not inside project root and will not be emptied.
70browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.6159815Z [WebServer] Use --emptyOutDir to override.
71browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.6160448Z [WebServer] ^[[39m
72browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.7769124Z [WebServer] ^[[33m[plugin builtin:vite-reporter] ^[[33;1m
73browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.7798521Z [WebServer] (!) Some chunks are larger than 500 kB after minification. Consider:
74browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.7799533Z [WebServer] - Using dynamic import() to code-split the application
75browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.7801131Z [WebServer] - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting
76browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:45.7802725Z [WebServer] - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.^[[0m^[[39m
77browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:47.6317596Z
78browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:47.6318481Z Running 13 tests using 1 worker
79browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:39:47.6318974Z
80browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:40:02.5479161Z ✓ 1 tests/browser/player.spec.ts:30:1 › world pixel checks use completed presentation and reject an invisible canvas despite visible UI (14.2s)
81browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:40:26.1279374Z ✘ 2 tests/browser/player.spec.ts:44:1 › slow GPU completion keeps one pending frame, responsive controls and measured recovery (19.1s)
82browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:40:39.6492635Z ✓ 3 tests/browser/player.spec.ts:97:1 › canonical ECS frames stay bounded while acknowledgements stall and then catch up (12.9s)
83browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:40:52.8460041Z ✓ 4 tests/browser/player.spec.ts:115:36 › new checkpoints save without animation frames (13.2s)
84browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:41:03.6534861Z ✓ 5 tests/browser/player.spec.ts:115:36 › restored checkpoints save without animation frames (10.8s)
85browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:41:36.6008585Z ✓ 6 tests/browser/player.spec.ts:148:1 › front lawn supports leaving the porch and walking back up (32.9s)
86browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:42:23.6620707Z ✓ 7 tests/browser/player.spec.ts:168:1 › renders, walks, pauses, releases input, and restores the local checkpoint (47.0s)
87browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:42:43.4628763Z ✓ 8 tests/browser/player.spec.ts:188:1 › keeper dialogue pauses movement and updates the journal (19.8s)
88browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:43:34.2149507Z ✓ 9 tests/browser/player.spec.ts:195:1 › place travel, pickup conditions, beacon state, and render resources remain coherent (50.7s)
89browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:43:45.9949578Z ✓ 10 tests/browser/player.spec.ts:208:1 › unsupported GPU and malformed saves fail safely (11.7s)
90browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:44:08.7449398Z ✓ 11 tests/browser/player.spec.ts:213:1 › legacy saves are preserved while exact uint64 saves advance and reload from the new key (22.7s)
91browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:46:25.3542468Z ✘ 12 tests/browser/player.spec.ts:231:1 › graphics recovery preserves the world, releases held movement and bounds repeated losses (2.3m)
92browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:46:36.7828700Z ✓ 13 tests/browser/player.spec.ts:247:1 › graphics recovery reports a failed replacement and preserves the paused save (10.8s)
93browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8550661Z
94browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8555389Z
95browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8566567Z 1) tests/browser/player.spec.ts:44:1 › slow GPU completion keeps one pending frame, responsive controls and measured recovery
96browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8567789Z
97browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8568742Z Error: ^[[2mexpect(^[[22m^[[31mreceived^[[39m^[[2m).^[[22mtoBeGreaterThan^[[2m(^[[22m^[[32mexpected^[[39m^[[2m)^[[22m
98browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8569636Z
99browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8570130Z Expected: > ^[[32m2622.100000000006^[[39m
100browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8570836Z Received: ^[[31m2622.100000000006^[[39m
101browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8571281Z
102browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8574036Z 76 | const resumed=await report();conserved(resumed.render);
103browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8581531Z 77 | expect(resumed.render.completedFrames).toBeGreaterThan(held.render.completedFrames);
104browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8582965Z > 78 | expect(resumed.render.maxCompletionWaitMs).toBeGreaterThan(initial.render.maxCompletionWaitMs);
105browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8586135Z | ^
106browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8587295Z 79 | expect(resumed.render.lastCompletedAtMs!).toBeGreaterThan(initial.render.lastCompletedAtMs!);
107browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8588725Z 80 | expect(resumed.render.buffers).toBe(initial.render.buffers);expect(resumed.render.textures).toBe(initial.render.textures);
108browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8589857Z 81 | await page.locator('#settings-done').click();
109browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8590727Z at /home/runner/work/darkwind-web/darkwind-web/tests/browser/player.spec.ts:78:45
110browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8591347Z
111browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8592103Z Error Context: test-results/player-slow-GPU-completion-d2786-trols-and-measured-recovery/error-context.md
112browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8592953Z
113browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8593768Z attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
114browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8594891Z test-results/player-slow-GPU-completion-d2786-trols-and-measured-recovery/trace.zip
115browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8595732Z Usage:
116browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8596060Z
117browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8596840Z npx playwright show-trace test-results/player-slow-GPU-completion-d2786-trols-and-measured-recovery/trace.zip
118browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8597901Z
119browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8598616Z ────────────────────────────────────────────────────────────────────────────────────────────────
120browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8599200Z
121browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8600108Z 2) tests/browser/player.spec.ts:231:1 › graphics recovery preserves the world, releases held movement and bounds repeated losses
122browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8600833Z
123browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8601231Z Error: Timeout 60000ms exceeded while waiting on the predicate
124browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8602195Z
125browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8602444Z 26 | }
126browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8602949Z 27 | async function expectRenderedWorld(page:Page){
127browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8604665Z > 28 | await expect.poll(async()=>{const pixels=await renderedWorldPixels(page);return pixels.range>20&&pixels.lit>300&&pixels.opaque>700;},{timeout:process.env.CI?60000:15000,message:'The authored world must render visible geometry, not just the DOM shell'}).toBe(true);
128browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8606210Z | ^
129browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8606626Z 29 | }
130browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8607774Z 30 | test('world pixel checks use completed presentation and reject an invisible canvas despite visible UI',async({page})=>{
131browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8608754Z 31 | await page.addInitScript(()=>{
132browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8609662Z at expectRenderedWorld (/home/runner/work/darkwind-web/darkwind-web/tests/browser/player.spec.ts:28:2)
133browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8610768Z at /home/runner/work/darkwind-web/darkwind-web/tests/browser/player.spec.ts:238:311
134browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8611416Z
135browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8612145Z Error Context: test-results/player-graphics-recovery-p-c6bff--and-bounds-repeated-losses/error-context.md
136browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8612911Z
137browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8613655Z attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
138browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8614695Z test-results/player-graphics-recovery-p-c6bff--and-bounds-repeated-losses/trace.zip
139browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8615470Z Usage:
140browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8615777Z
141browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8616492Z npx playwright show-trace test-results/player-graphics-recovery-p-c6bff--and-bounds-repeated-losses/trace.zip
142browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8617437Z
143browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8618109Z ────────────────────────────────────────────────────────────────────────────────────────────────
144browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8618685Z
145browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8618959Z 2 failed
146browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8619968Z tests/browser/player.spec.ts:44:1 › slow GPU completion keeps one pending frame, responsive controls and measured recovery
147browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8621741Z tests/browser/player.spec.ts:231:1 › graphics recovery preserves the world, releases held movement and bounds repeated losses
148browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8622712Z 11 passed (7.4m)
149browser (player) Run npm run test:browser -- tests/browser/player.spec.ts 2026-10-25T01:47:06.8781413Z ##[error]Process completed with exit code 1.
150