REPOSITORY SOURCE

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