$ /nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin/timeout --kill-after=15s 7200s /nix/store/23zk8sgzamrbmj1fday15szf7f2279s8-nix-2.34.7/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes --log-format internal-json build --no-link --print-out-paths git+https://codeberg.org/mtlynch/mikeville?ref=multiplayer&rev=111202c35399e1e5a86fc909c10d1d48404647b8&shallow=1#packages.x86_64-linux.check-frontend --print-build-logs fetching Git repository 'https://codeberg.org/mtlynch/mikeville' remote: Enumerating objects: 129, done. remote: Counting objects: 0% (1/129) remote: Counting objects: 1% (2/129) remote: Counting objects: 2% (3/129) remote: Counting objects: 3% (4/129) remote: Counting objects: 4% (6/129) remote: Counting objects: 5% (7/129) remote: Counting objects: 6% (8/129) remote: Counting objects: 7% (10/129) remote: Counting objects: 8% (11/129) remote: Counting objects: 9% (12/129) remote: Counting objects: 10% (13/129) remote: Counting objects: 11% (15/129) remote: Counting objects: 12% (16/129) remote: Counting objects: 13% (17/129) remote: Counting objects: 14% (19/129) remote: Counting objects: 15% (20/129) remote: Counting objects: 16% (21/129) remote: Counting objects: 17% (22/129) remote: Counting objects: 18% (24/129) remote: Counting objects: 19% (25/129) remote: Counting objects: 20% (26/129) remote: Counting objects: 21% (28/129) remote: Counting objects: 22% (29/129) remote: Counting objects: 23% (30/129) remote: Counting objects: 24% (31/129) remote: Counting objects: 25% (33/129) remote: Counting objects: 26% (34/129) remote: Counting objects: 27% (35/129) remote: Counting objects: 28% (37/129) remote: Counting objects: 29% (38/129) remote: Counting objects: 30% (39/129) remote: Counting objects: 31% (40/129) remote: Counting objects: 32% (42/129) remote: Counting objects: 33% (43/129) remote: Counting objects: 34% (44/129) remote: Counting objects: 35% (46/129) remote: Counting objects: 36% (47/129) remote: Counting objects: 37% (48/129) remote: Counting objects: 38% (50/129) remote: Counting objects: 39% (51/129) remote: Counting objects: 40% (52/129) remote: Counting objects: 41% (53/129) remote: Counting objects: 42% (55/129) remote: Counting objects: 43% (56/129) remote: Counting objects: 44% (57/129) remote: Counting objects: 45% (59/129) remote: Counting objects: 46% (60/129) remote: Counting objects: 47% (61/129) remote: Counting objects: 48% (62/129) remote: Counting objects: 49% (64/129) remote: Counting objects: 50% (65/129) remote: Counting objects: 51% (66/129) remote: Counting objects: 52% (68/129) remote: Counting objects: 53% (69/129) remote: Counting objects: 54% (70/129) remote: Counting objects: 55% (71/129) remote: Counting objects: 56% (73/129) remote: Counting objects: 57% (74/129) remote: Counting objects: 58% (75/129) remote: Counting objects: 59% (77/129) remote: Counting objects: 60% (78/129) remote: Counting objects: 61% (79/129) remote: Counting objects: 62% (80/129) remote: Counting objects: 63% (82/129) remote: Counting objects: 64% (83/129) remote: Counting objects: 65% (84/129) remote: Counting objects: 66% (86/129) remote: Counting objects: 67% (87/129) remote: Counting objects: 68% (88/129) remote: Counting objects: 69% (90/129) remote: Counting objects: 70% (91/129) remote: Counting objects: 71% (92/129) remote: Counting objects: 72% (93/129) remote: Counting objects: 73% (95/129) remote: Counting objects: 74% (96/129) remote: Counting objects: 75% (97/129) remote: Counting objects: 76% (99/129) remote: Counting objects: 77% (100/129) remote: Counting objects: 78% (101/129) remote: Counting objects: 79% (102/129) remote: Counting objects: 80% (104/129) remote: Counting objects: 81% (105/129) remote: Counting objects: 82% (106/129) remote: Counting objects: 83% (108/129) remote: Counting objects: 84% (109/129) remote: Counting objects: 85% (110/129) remote: Counting objects: 86% (111/129) remote: Counting objects: 87% (113/129) remote: Counting objects: 88% (114/129) remote: Counting objects: 89% (115/129) remote: Counting objects: 90% (117/129) remote: Counting objects: 91% (118/129) remote: Counting objects: 92% (119/129) remote: Counting objects: 93% (120/129) remote: Counting objects: 94% (122/129) remote: Counting objects: 95% (123/129) remote: Counting objects: 96% (124/129) remote: Counting objects: 97% (126/129) remote: Counting objects: 98% (127/129) remote: Counting objects: 99% (128/129) remote: Counting objects: 100% (129/129) remote: Counting objects: 100% (129/129), done. remote: Compressing objects: 0% (1/122) remote: Compressing objects: 1% (2/122) remote: Compressing objects: 2% (3/122) remote: Compressing objects: 3% (4/122) remote: Compressing objects: 4% (5/122) remote: Compressing objects: 5% (7/122) remote: Compressing objects: 6% (8/122) remote: Compressing objects: 7% (9/122) remote: Compressing objects: 8% (10/122) remote: Compressing objects: 9% (11/122) remote: Compressing objects: 10% (13/122) remote: Compressing objects: 11% (14/122) remote: Compressing objects: 12% (15/122) remote: Compressing objects: 13% (16/122) remote: Compressing objects: 14% (18/122) remote: Compressing objects: 15% (19/122) remote: Compressing objects: 16% (20/122) remote: Compressing objects: 17% (21/122) remote: Compressing objects: 18% (22/122) remote: Compressing objects: 19% (24/122) remote: Compressing objects: 20% (25/122) remote: Compressing objects: 21% (26/122) remote: Compressing objects: 22% (27/122) remote: Compressing objects: 23% (29/122) remote: Compressing objects: 24% (30/122) remote: Compressing objects: 25% (31/122) remote: Compressing objects: 26% (32/122) remote: Compressing objects: 27% (33/122) remote: Compressing objects: 28% (35/122) remote: Compressing objects: 29% (36/122) remote: Compressing objects: 30% (37/122) remote: Compressing objects: 31% (38/122) remote: Compressing objects: 32% (40/122) remote: Compressing objects: 33% (41/122) remote: Compressing objects: 34% (42/122) remote: Compressing objects: 35% (43/122) remote: Compressing objects: 36% (44/122) remote: Compressing objects: 37% (46/122) remote: Compressing objects: 38% (47/122) remote: Compressing objects: 39% (48/122) remote: Compressing objects: 40% (49/122) remote: Compressing objects: 41% (51/122) remote: Compressing objects: 42% (52/122) remote: Compressing objects: 43% (53/122) remote: Compressing objects: 44% (54/122) remote: Compressing objects: 45% (55/122) remote: Compressing objects: 46% (57/122) remote: Compressing objects: 47% (58/122) remote: Compressing objects: 48% (59/122) remote: Compressing objects: 49% (60/122) remote: Compressing objects: 50% (61/122) remote: Compressing objects: 51% (63/122) remote: Compressing objects: 52% (64/122) remote: Compressing objects: 53% (65/122) remote: Compressing objects: 54% (66/122) remote: Compressing objects: 55% (68/122) remote: Compressing objects: 56% (69/122) remote: Compressing objects: 57% (70/122) remote: Compressing objects: 58% (71/122) remote: Compressing objects: 59% (72/122) remote: Compressing objects: 60% (74/122) remote: Compressing objects: 61% (75/122) remote: Compressing objects: 62% (76/122) remote: Compressing objects: 63% (77/122) remote: Compressing objects: 64% (79/122) remote: Compressing objects: 65% (80/122) remote: Compressing objects: 66% (81/122) remote: Compressing objects: 67% (82/122) remote: Compressing objects: 68% (83/122) remote: Compressing objects: 69% (85/122) remote: Compressing objects: 70% (86/122) remote: Compressing objects: 71% (87/122) remote: Compressing objects: 72% (88/122) remote: Compressing objects: 73% (90/122) remote: Compressing objects: 74% (91/122) remote: Compressing objects: 75% (92/122) remote: Compressing objects: 76% (93/122) remote: Compressing objects: 77% (94/122) remote: Compressing objects: 78% (96/122) remote: Compressing objects: 79% (97/122) remote: Compressing objects: 80% (98/122) remote: Compressing objects: 81% (99/122) remote: Compressing objects: 82% (101/122) remote: Compressing objects: 83% (102/122) remote: Compressing objects: 84% (103/122) remote: Compressing objects: 85% (104/122) remote: Compressing objects: 86% (105/122) remote: Compressing objects: 87% (107/122) remote: Compressing objects: 88% (108/122) remote: Compressing objects: 89% (109/122) remote: Compressing objects: 90% (110/122) remote: Compressing objects: 91% (112/122) remote: Compressing objects: 92% (113/122) remote: Compressing objects: 93% (114/122) remote: Compressing objects: 94% (115/122) remote: Compressing objects: 95% (116/122) remote: Compressing objects: 96% (118/122) remote: Compressing objects: 97% (119/122) remote: Compressing objects: 98% (120/122) remote: Compressing objects: 99% (121/122) remote: Compressing objects: 100% (122/122) remote: Compressing objects: 100% (122/122), done. Receiving objects: 0% (1/129) Receiving objects: 1% (2/129) Receiving objects: 2% (3/129) Receiving objects: 3% (4/129) Receiving objects: 4% (6/129) Receiving objects: 5% (7/129) Receiving objects: 6% (8/129) Receiving objects: 7% (10/129) Receiving objects: 8% (11/129) Receiving objects: 9% (12/129) Receiving objects: 10% (13/129) Receiving objects: 11% (15/129) Receiving objects: 12% (16/129) Receiving objects: 13% (17/129) Receiving objects: 14% (19/129) Receiving objects: 15% (20/129) Receiving objects: 16% (21/129) Receiving objects: 17% (22/129) Receiving objects: 18% (24/129) Receiving objects: 19% (25/129) Receiving objects: 20% (26/129) Receiving objects: 21% (28/129) Receiving objects: 22% (29/129) Receiving objects: 23% (30/129) Receiving objects: 24% (31/129) Receiving objects: 25% (33/129) Receiving objects: 26% (34/129) Receiving objects: 27% (35/129) Receiving objects: 28% (37/129) Receiving objects: 29% (38/129) Receiving objects: 30% (39/129) Receiving objects: 31% (40/129) Receiving objects: 32% (42/129) Receiving objects: 33% (43/129) Receiving objects: 34% (44/129) Receiving objects: 35% (46/129) Receiving objects: 36% (47/129) Receiving objects: 37% (48/129) Receiving objects: 38% (50/129) Receiving objects: 39% (51/129) Receiving objects: 40% (52/129) Receiving objects: 41% (53/129) remote: Total 129 (delta 1), reused 65 (delta 0), pack-reused 0 (from 0) Receiving objects: 42% (55/129) Receiving objects: 43% (56/129) Receiving objects: 44% (57/129) Receiving objects: 45% (59/129) Receiving objects: 46% (60/129) Receiving objects: 47% (61/129) Receiving objects: 48% (62/129) Receiving objects: 49% (64/129) Receiving objects: 50% (65/129) Receiving objects: 51% (66/129) Receiving objects: 52% (68/129) Receiving objects: 53% (69/129) Receiving objects: 54% (70/129) Receiving objects: 55% (71/129) Receiving objects: 56% (73/129) Receiving objects: 57% (74/129) Receiving objects: 58% (75/129) Receiving objects: 59% (77/129) Receiving objects: 60% (78/129) Receiving objects: 61% (79/129) Receiving objects: 62% (80/129) Receiving objects: 63% (82/129) Receiving objects: 64% (83/129) Receiving objects: 65% (84/129) Receiving objects: 66% (86/129) Receiving objects: 67% (87/129) Receiving objects: 68% (88/129) Receiving objects: 69% (90/129) Receiving objects: 70% (91/129) Receiving objects: 71% (92/129) Receiving objects: 72% (93/129) Receiving objects: 73% (95/129) Receiving objects: 74% (96/129) Receiving objects: 75% (97/129) Receiving objects: 76% (99/129) Receiving objects: 77% (100/129) Receiving objects: 78% (101/129) Receiving objects: 79% (102/129) Receiving objects: 80% (104/129) Receiving objects: 81% (105/129) Receiving objects: 82% (106/129) Receiving objects: 83% (108/129) Receiving objects: 84% (109/129) Receiving objects: 85% (110/129) Receiving objects: 86% (111/129) Receiving objects: 87% (113/129) Receiving objects: 88% (114/129) Receiving objects: 89% (115/129) Receiving objects: 90% (117/129) Receiving objects: 91% (118/129) Receiving objects: 92% (119/129) Receiving objects: 93% (120/129) Receiving objects: 94% (122/129) Receiving objects: 95% (123/129) Receiving objects: 96% (124/129) Receiving objects: 97% (126/129) Receiving objects: 98% (127/129) Receiving objects: 99% (128/129) Receiving objects: 100% (129/129) Receiving objects: 100% (129/129), 109.78 KiB | 5.23 MiB/s, done. Resolving deltas: 0% (0/1) Resolving deltas: 100% (1/1) Resolving deltas: 100% (1/1), done. From https://codeberg.org/mtlynch/mikeville * branch 111202c35399e1e5a86fc909c10d1d48404647b8 -> FETCH_HEAD  Building /nix/store/7zs8rcmls6y9qkvc3s03sbki2hnc6yqx-check-frontend-0.0.0.drv [check-frontend] Phase: unpackPhase [check-frontend] unpacking source archive /nix/store/q9dr9zajznli2zy96dadd7hbr5j66i8v-source [check-frontend] source root is source [check-frontend] Phase: patchPhase [check-frontend] Phase: updateAutotoolsGnuConfigScriptsPhase [check-frontend] Phase: configurePhase [check-frontend] no configure script, doing nothing [check-frontend] Executing pnpmConfigHook [check-frontend] /build/source/assets /build/source [check-frontend] Using fetcherVersion: 2 [check-frontend] Configuring pnpm store [check-frontend] /build/source /build/source/assets /build/source [check-frontend] /build/source/assets /build/source [check-frontend] Installing dependencies [check-frontend] Lockfile is up to date, resolution step is skipped [check-frontend] Progress: resolved 1, reused 0, downloaded 0, added 0 [check-frontend] Packages: +10 [check-frontend]  [check-frontend] Progress: resolved 1, reused 0, downloaded 0, added 0 [check-frontend] Progress: resolved 10, reused 9, downloaded 0, added 9 [check-frontend] Progress: resolved 10, reused 10, downloaded 0, added 9 [check-frontend] Progress: resolved 10, reused 10, downloaded 0, added 10 [check-frontend] Progress: resolved 10, reused 10, downloaded 0, added 10, done [check-frontend]  [check-frontend] dependencies: [check-frontend] + phaser 4.2.1 [check-frontend] + phoenix 0.0.0 <- ../deps/phoenix [check-frontend] + phoenix_html 0.0.0 <- ../deps/phoenix_html [check-frontend]  [check-frontend] devDependencies: [check-frontend] + @playwright/test 1.57.0 [check-frontend] + @types/node 26.1.1 [check-frontend] + esbuild 0.25.4 [check-frontend] + typescript 5.9.3 [check-frontend]  [check-frontend] Done in 951ms using pnpm v10.25.0 [check-frontend] Patching scripts [check-frontend] patching script interpreter paths in node_modules/@playwright node_modules/@types node_modules/esbuild node_modules/phaser node_modules/phoenix node_modules/phoenix_html node_modules/typescript node_modules/.bin node_modules/.modules.yaml node_modules/.pnpm node_modules/.pnpm-workspace-state-v1.json [check-frontend] node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.bin/playwright: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.pnpm/node_modules/.bin/playwright-core: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.pnpm/node_modules/.bin/playwright: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/lib/utilsBundleImpl/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] node_modules/.pnpm/playwright-core@1.57.0/node_modules/playwright-core/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [check-frontend] node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [check-frontend] node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [check-frontend] node_modules/.pnpm/playwright@1.57.0/node_modules/playwright/node_modules/.bin/playwright-core: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.pnpm/playwright@1.57.0/node_modules/playwright/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [check-frontend] node_modules/.pnpm/@playwright+test@1.57.0/node_modules/@playwright/test/node_modules/.bin/playwright: interpreter directive changed from "#!/bin/sh" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh" [check-frontend] node_modules/.pnpm/@playwright+test@1.57.0/node_modules/@playwright/test/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [check-frontend] node_modules/.pnpm/esbuild@0.25.4/node_modules/esbuild/bin/esbuild: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [check-frontend] /build/source [check-frontend] Finished pnpmConfigHook [check-frontend] Phase: buildPhase [check-frontend] patching script interpreter paths in ./dev-scripts [check-frontend] ./dev-scripts/check-frontend: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/run-js-tests: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/check-bash: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/run-elixir-tests: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/run-browser-tests: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/check-trailing-whitespace: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/enable-git-hooks: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/serve: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/serve-prod: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/git-hooks/pre-commit: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] ./dev-scripts/check-trailing-newline: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/bash" [check-frontend] + set -u [check-frontend] +++ dirname ./dev-scripts/check-frontend [check-frontend] ++ cd ./dev-scripts [check-frontend] ++ pwd [check-frontend] + SCRIPT_DIR=/build/source/dev-scripts [check-frontend] + readonly SCRIPT_DIR [check-frontend] + cd /build/source/dev-scripts/../assets [check-frontend] + pnpm exec tsc --noEmit [check-frontend] + ../dev-scripts/run-js-tests [check-frontend] + set -u [check-frontend] +++ dirname ../dev-scripts/run-js-tests [check-frontend] ++ cd ../dev-scripts [check-frontend] ++ pwd [check-frontend] + SCRIPT_DIR=/build/source/dev-scripts [check-frontend] + readonly SCRIPT_DIR [check-frontend] + cd /build/source/dev-scripts/../assets [check-frontend] + shopt -s globstar nullglob [check-frontend] + test_files=(js/**/*.test.ts) [check-frontend] + [[ 7 -eq 0 ]] [check-frontend] + node --import ./test-support/register.js --test js/game/boulders.test.ts js/game/camera-zoom.test.ts js/game/inventory-counter.test.ts js/game/network.test.ts js/game/player.test.ts js/game/river.test.ts js/game/scenes/game-scene.test.ts [check-frontend] ✔ rock textures use rounded boulder silhouettes (0.758733ms) [check-frontend] ✔ mouse wheel zoom keeps HUD fixed on screen (0.643597ms) [check-frontend] ✔ inventory counter keeps its screen layout when camera zoom changes (1.442286ms) [check-frontend] ✔ parseInitPayload returns a typed init payload (1.353879ms) [check-frontend] ✔ parseInitPayload accepts a null diversion side (0.111038ms) [check-frontend] ✔ parseAreaPayload returns a typed area payload (0.35149ms) [check-frontend] ✔ parseSnapshotPayload returns a typed snapshot payload (0.214372ms) [check-frontend] ✔ parseWorldEvent returns each known event type (0.21343ms) [check-frontend] ✔ parseSnapshotPayload rejects malformed remote players (0.321032ms) [check-frontend] ✔ parseSnapshotPayload rejects an invalid boulder transition (0.150812ms) [check-frontend] ✔ parseWorldEvent rejects unknown event types (0.125204ms) [check-frontend] ✔ player body depth follows its feet (0.938631ms) [check-frontend] ✔ player name label stays above world sprites (0.169087ms) [check-frontend] ✔ local player name uses a distinct label color (1.07153ms) [check-frontend] ✔ targeted arm swings do not replace the most recent walking direction (0.320241ms) [check-frontend] ✔ advanceRiverDrops leaves a drop past a newly inserted blocker unchanged (1.570256ms) [check-frontend] ✔ advanceRiverDrops waits until a drop reaches a blocker before diverting it (0.427683ms) [check-frontend] ✔ advanceRiverDrops moves smoothly sideways around a blocker (0.150122ms) [check-frontend] ✔ advanceRiverDrops rises to overflow a three-sided boulder pool (0.237576ms) [check-frontend] ✔ advanceRiverDrops flows past adjacent boulders without turning back (0.154269ms) [check-frontend] ✔ advanceRiverDrops keeps following its diverted path downstream (0.137879ms) [check-frontend] ✔ advanceRiverDrops resets a wrapped drop to the spawn column (0.200016ms) [check-frontend] ✔ advanceRiverDrops produces the same route for partitioned elapsed time (0.132368ms) [check-frontend] ✔ local player collides with remote players (1.978641ms) [check-frontend] ✔ new boulder transitions animate smoothly despite a stale server clock (0.491462ms) [check-frontend] ✔ stale local snapshots do not replace a newer lease (0.610776ms) [check-frontend] ✔ reports a completed crossing before reserving the next tile (0.478527ms) [check-frontend] ✔ diagonal input leases the nearest cardinal boundary (0.121528ms) [check-frontend] ✔ diagonal input reports the leased cardinal direction (0.231274ms) [check-frontend] ✔ snapshots remove boulders that no longer exist on the server (0.241383ms) [check-frontend] ✔ a sole reachable item determines the arm swing direction (0.244399ms) [check-frontend] ✔ multiple reachable items preserve the most recent walking direction (0.185228ms) [check-frontend] ✔ camera deadzone keeps a fixed screen-space edge margin (0.217268ms) [check-frontend] ✔ rendered local player stays inside the right world edge (0.265107ms) [check-frontend] ℹ tests 34 [check-frontend] ℹ suites 0 [check-frontend] ℹ pass 34 [check-frontend] ℹ fail 0 [check-frontend] ℹ cancelled 0 [check-frontend] ℹ skipped 0 [check-frontend] ℹ todo 0 [check-frontend] ℹ duration_ms 179.415222 [check-frontend] Phase: installPhase [check-frontend] Phase: fixupPhase [check-frontend] shrinking RPATHs of ELF executables and libraries in /nix/store/69pzxwaqzgs7d79dmxwfacqqi8zqr1n4-check-frontend-0.0.0 [check-frontend] checking for references to /build/ in /nix/store/69pzxwaqzgs7d79dmxwfacqqi8zqr1n4-check-frontend-0.0.0... [check-frontend] patching script interpreter paths in /nix/store/69pzxwaqzgs7d79dmxwfacqqi8zqr1n4-check-frontend-0.0.0 [check-frontend:post-build] Uploading to the NixCI cache: /nix/store/69pzxwaqzgs7d79dmxwfacqqi8zqr1n4-check-frontend-0.0.0 [check-frontend:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [check-frontend:post-build] copying 1 paths... [check-frontend:post-build] copying path '/nix/store/69pzxwaqzgs7d79dmxwfacqqi8zqr1n4-check-frontend-0.0.0' to 'https://cache.nix-ci.com'... [check-frontend:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [check-frontend:post-build] copying 1 paths... [check-frontend:post-build] copying path '/nix/store/7zs8rcmls6y9qkvc3s03sbki2hnc6yqx-check-frontend-0.0.0.drv' to 'https://cache.nix-ci.com'... Uploaded check-frontend in 1.9s Progress: 1 of 2 built Built check-frontend in 4.9s Progress: 2 of 2 built /nix/store/69pzxwaqzgs7d79dmxwfacqqi8zqr1n4-check-frontend-0.0.0 Build succeeded.