==> Building on abomasnow ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/gemini-cli ./ .SRCINFO 591 100% 0.00kB/s 0:00:00 591 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 55 100% 53.71kB/s 0:00:00 55 100% 53.71kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 1,279 100% 1.22MB/s 0:00:00 1,279 100% 1.22MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) gemini-cli-1:0.20.2-1.log 734 100% 716.80kB/s 0:00:00 734 100% 716.80kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 2,587 bytes received 186 bytes 1,848.67 bytes/sec total size is 3,152 speedup is 1.14 ==> Patching arch to riscv64... ==> Running pkgctl build --arch riscv64 --repo extra on remote host... ==> WARNING: unsupported architecture: riscv64 ==> Building gemini-cli  -> repo: extra  -> arch: riscv64  -> worker: felix-1 ==> Building gemini-cli for [extra] (riscv64) ]2;๐Ÿ”ต Container arch-nspawn-478722 on abomasnow.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Package (5) Old Version New Version Net Change Download Size core/ca-certificates-mozilla 3.119-1 3.119.1-1 0.00 MiB 0.39 MiB core/iana-etc 20251114-1 20251120-1 0.00 MiB 0.39 MiB core/libgpg-error 1.57-1 1.58-1 0.00 MiB 0.27 MiB core/readline 8.3.001-1 8.3.003-1 0.00 MiB 0.41 MiB core/tzdata 2025b-1 2025c-1 0.01 MiB 0.34 MiB Total Download Size: 1.81 MiB Total Installed Size: 9.60 MiB Net Upgrade Size: 0.01 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... readline-8.3.003-1-riscv64 downloading... iana-etc-20251120-1-any downloading... ca-certificates-mozilla-3.119.1-1-riscv64 downloading... tzdata-2025c-1-riscv64 downloading... libgpg-error-1.58-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... upgrading tzdata... upgrading iana-etc... upgrading readline... upgrading libgpg-error... upgrading ca-certificates-mozilla... :: Running post-transaction hooks... (1/3) Arming ConditionNeedsUpdate... (2/3) Rebuilding certificate stores... (3/3) Updating the info directory file... [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-1]...done ==> Making package: gemini-cli 1:0.20.2-1 (Wed Dec 17 06:14:46 2025) ==> Retrieving sources...  -> Cloning gemini-cli git repo... Cloning into bare repository '/home/felix/packages/gemini-cli/gemini-cli'... remote: Enumerating objects: 317277, done. remote: Counting objects: 0% (1/3417) remote: Counting objects: 1% (35/3417) remote: Counting objects: 2% (69/3417) remote: Counting objects: 3% (103/3417) remote: Counting objects: 4% (137/3417) remote: Counting objects: 5% (171/3417) remote: Counting objects: 6% (206/3417) remote: Counting objects: 7% (240/3417) remote: Counting objects: 8% (274/3417) remote: Counting objects: 9% (308/3417) remote: Counting objects: 10% (342/3417) remote: Counting objects: 11% (376/3417) remote: Counting objects: 12% (411/3417) remote: Counting objects: 13% (445/3417) remote: Counting objects: 14% (479/3417) remote: Counting objects: 15% (513/3417) remote: Counting objects: 16% (547/3417) remote: Counting objects: 17% (581/3417) remote: Counting objects: 18% (616/3417) remote: Counting objects: 19% (650/3417) remote: Counting objects: 20% (684/3417) remote: Counting objects: 21% (718/3417) remote: Counting objects: 22% (752/3417) remote: Counting objects: 23% (786/3417) remote: Counting objects: 24% (821/3417) remote: Counting objects: 25% (855/3417) remote: Counting objects: 26% (889/3417) remote: Counting objects: 27% (923/3417) remote: Counting objects: 28% (957/3417) remote: Counting objects: 29% (991/3417) remote: Counting objects: 30% (1026/3417) remote: Counting objects: 31% (1060/3417) remote: Counting objects: 32% (1094/3417) remote: Counting objects: 33% (1128/3417) remote: Counting objects: 34% (1162/3417) remote: Counting objects: 35% (1196/3417) remote: Counting objects: 36% (1231/3417) remote: Counting objects: 37% (1265/3417) remote: Counting objects: 38% (1299/3417) remote: Counting objects: 39% (1333/3417) remote: Counting objects: 40% (1367/3417) remote: Counting objects: 41% (1401/3417) remote: Counting objects: 42% (1436/3417) remote: Counting objects: 43% (1470/3417) remote: Counting objects: 44% (1504/3417) remote: Counting objects: 45% (1538/3417) remote: Counting objects: 46% (1572/3417) remote: Counting objects: 47% (1606/3417) remote: Counting objects: 48% (1641/3417) remote: Counting objects: 49% (1675/3417) remote: Counting objects: 50% (1709/3417) remote: Counting objects: 51% (1743/3417) remote: Counting objects: 52% (1777/3417) remote: Counting objects: 53% (1812/3417) remote: Counting objects: 54% (1846/3417) remote: Counting objects: 55% (1880/3417) remote: Counting objects: 56% (1914/3417) remote: Counting objects: 57% (1948/3417) remote: Counting objects: 58% (1982/3417) remote: Counting objects: 59% (2017/3417) remote: Counting objects: 60% (2051/3417) remote: Counting objects: 61% (2085/3417) remote: Counting objects: 62% (2119/3417) remote: Counting objects: 63% (2153/3417) remote: Counting objects: 64% (2187/3417) remote: Counting objects: 65% (2222/3417) remote: Counting objects: 66% (2256/3417) remote: Counting objects: 67% (2290/3417) remote: Counting objects: 68% (2324/3417) remote: Counting objects: 69% (2358/3417) remote: Counting objects: 70% (2392/3417) remote: Counting objects: 71% (2427/3417) remote: Counting objects: 72% (2461/3417) remote: Counting objects: 73% (2495/3417) remote: Counting objects: 74% (2529/3417) remote: Counting objects: 75% (2563/3417) remote: Counting objects: 76% (2597/3417) remote: Counting objects: 77% (2632/3417) remote: Counting objects: 78% (2666/3417) remote: Counting objects: 79% (2700/3417) remote: Counting objects: 80% (2734/3417) remote: Counting objects: 81% (2768/3417) remote: Counting objects: 82% (2802/3417) remote: Counting objects: 83% (2837/3417) remote: Counting objects: 84% (2871/3417) remote: Counting objects: 85% (2905/3417) remote: Counting objects: 86% (2939/3417) remote: Counting objects: 87% (2973/3417) remote: Counting objects: 88% (3007/3417) remote: Counting objects: 89% (3042/3417) remote: Counting objects: 90% (3076/3417) remote: Counting objects: 91% (3110/3417) remote: Counting objects: 92% (3144/3417) remote: Counting objects: 93% (3178/3417) remote: Counting objects: 94% (3212/3417) remote: Counting objects: 95% (3247/3417) remote: Counting objects: 96% (3281/3417) remote: Counting objects: 97% (3315/3417) remote: Counting objects: 98% (3349/3417) remote: Counting objects: 99% (3383/3417) remote: Counting objects: 100% (3417/3417) remote: Counting objects: 100% (3417/3417), done. remote: Compressing objects: 0% (1/1746) remote: Compressing objects: 1% (18/1746) remote: Compressing objects: 2% (35/1746) remote: Compressing objects: 3% (53/1746) remote: Compressing objects: 4% (70/1746) remote: Compressing objects: 5% (88/1746) remote: Compressing objects: 6% (105/1746) remote: Compressing objects: 7% (123/1746) remote: Compressing objects: 8% (140/1746) remote: Compressing objects: 9% (158/1746) remote: Compressing objects: 10% (175/1746) remote: Compressing objects: 11% (193/1746) remote: Compressing objects: 12% (210/1746) remote: Compressing objects: 13% (227/1746) remote: Compressing objects: 14% (245/1746) remote: Compressing objects: 15% (262/1746) remote: Compressing objects: 16% (280/1746) remote: Compressing objects: 17% (297/1746) remote: Compressing objects: 18% (315/1746) remote: Compressing objects: 19% (332/1746) remote: Compressing objects: 20% (350/1746) remote: Compressing objects: 21% (367/1746) remote: Compressing objects: 22% (385/1746) remote: Compressing objects: 23% (402/1746) remote: Compressing objects: 24% (420/1746) remote: Compressing objects: 25% (437/1746) remote: Compressing objects: 26% (454/1746) remote: Compressing objects: 27% (472/1746) remote: Compressing objects: 28% (489/1746) remote: Compressing objects: 29% (507/1746) remote: Compressing objects: 30% (524/1746) remote: Compressing objects: 31% (542/1746) remote: Compressing objects: 32% (559/1746) remote: Compressing objects: 33% (577/1746) remote: Compressing objects: 34% (594/1746) remote: Compressing objects: 35% (612/1746) remote: Compressing objects: 36% (629/1746) remote: Compressing objects: 37% (647/1746) remote: Compressing objects: 38% (664/1746) remote: Compressing objects: 39% (681/1746) remote: Compressing objects: 40% (699/1746) remote: Compressing objects: 41% (716/1746) remote: Compressing objects: 42% (734/1746) remote: Compressing objects: 43% (751/1746) remote: Compressing objects: 44% (769/1746) remote: Compressing objects: 45% (786/1746) remote: Compressing objects: 46% (804/1746) remote: Compressing objects: 47% (821/1746) remote: Compressing objects: 48% (839/1746) remote: Compressing objects: 49% (856/1746) remote: Compressing objects: 50% (873/1746) remote: Compressing objects: 51% (891/1746) remote: Compressing objects: 52% (908/1746) remote: Compressing objects: 53% (926/1746) remote: Compressing objects: 54% (943/1746) remote: Compressing objects: 55% (961/1746) remote: Compressing objects: 56% (978/1746) remote: Compressing objects: 57% (996/1746) remote: Compressing objects: 58% (1013/1746) remote: Compressing objects: 59% (1031/1746) remote: Compressing objects: 60% (1048/1746) remote: Compressing objects: 61% (1066/1746) remote: Compressing objects: 62% (1083/1746) remote: Compressing objects: 63% (1100/1746) remote: Compressing objects: 64% (1118/1746) remote: Compressing objects: 65% (1135/1746) remote: Compressing objects: 66% (1153/1746) remote: Compressing objects: 67% (1170/1746) remote: Compressing objects: 68% (1188/1746) remote: Compressing objects: 69% (1205/1746) remote: Compressing objects: 70% (1223/1746) remote: Compressing objects: 71% (1240/1746) remote: Compressing objects: 72% (1258/1746) remote: Compressing objects: 73% (1275/1746) remote: Compressing objects: 74% (1293/1746) remote: Compressing objects: 75% (1310/1746) remote: Compressing objects: 76% (1327/1746) remote: Compressing objects: 77% (1345/1746) remote: Compressing objects: 78% (1362/1746) remote: Compressing objects: 79% (1380/1746) remote: Compressing objects: 80% (1397/1746) remote: Compressing objects: 81% (1415/1746) remote: Compressing objects: 82% (1432/1746) remote: Compressing objects: 83% (1450/1746) remote: Compressing objects: 84% (1467/1746) remote: Compressing objects: 85% (1485/1746) remote: Compressing objects: 86% (1502/1746) remote: Compressing objects: 87% (1520/1746) remote: Compressing objects: 88% (1537/1746) remote: Compressing objects: 89% (1554/1746) remote: Compressing objects: 90% (1572/1746) remote: Compressing objects: 91% (1589/1746) remote: Compressing objects: 92% (1607/1746) remote: Compressing objects: 93% (1624/1746) remote: Compressing objects: 94% (1642/1746) remote: Compressing objects: 95% (1659/1746) remote: Compressing objects: 96% (1677/1746) remote: Compressing objects: 97% (1694/1746) remote: Compressing objects: 98% (1712/1746) remote: Compressing objects: 99% (1729/1746) remote: Compressing objects: 100% (1746/1746) remote: Compressing objects: 100% (1746/1746), done. Receiving objects: 0% (1/317277) Receiving objects: 1% (3173/317277), 1.43 MiB | 2.82 MiB/s Receiving objects: 2% (6346/317277), 1.43 MiB | 2.82 MiB/s Receiving objects: 2% (7643/317277), 4.74 MiB | 4.72 MiB/s Receiving objects: 3% (9519/317277), 8.17 MiB | 5.34 MiB/s Receiving objects: 3% (10839/317277), 8.17 MiB | 5.34 MiB/s Receiving objects: 4% (12692/317277), 11.37 MiB | 5.61 MiB/s Receiving objects: 5% (15864/317277), 14.46 MiB | 5.62 MiB/s Receiving objects: 5% (16454/317277), 14.46 MiB | 5.62 MiB/s Receiving objects: 6% (19037/317277), 18.33 MiB | 5.94 MiB/s Receiving objects: 7% (22210/317277), 18.33 MiB | 5.94 MiB/s Receiving objects: 7% (25126/317277), 23.39 MiB | 6.52 MiB/s Receiving objects: 7% (25132/317277), 31.53 MiB | 6.79 MiB/s Receiving objects: 8% (25383/317277), 36.57 MiB | 6.76 MiB/s Receiving objects: 9% (28555/317277), 36.57 MiB | 6.76 MiB/s Receiving objects: 9% (30219/317277), 36.57 MiB | 6.76 MiB/s Receiving objects: 10% (31728/317277), 36.57 MiB | 6.76 MiB/s Receiving objects: 11% (34901/317277), 40.88 MiB | 6.99 MiB/s Receiving objects: 12% (38074/317277), 40.88 MiB | 6.99 MiB/s Receiving objects: 13% (41247/317277), 43.69 MiB | 6.80 MiB/s Receiving objects: 13% (43657/317277), 43.69 MiB | 6.80 MiB/s Receiving objects: 14% (44419/317277), 43.69 MiB | 6.80 MiB/s Receiving objects: 15% (47592/317277), 47.62 MiB | 7.04 MiB/s Receiving objects: 16% (50765/317277), 47.62 MiB | 7.04 MiB/s Receiving objects: 17% (53938/317277), 47.62 MiB | 7.04 MiB/s Receiving objects: 18% (57110/317277), 47.62 MiB | 7.04 MiB/s Receiving objects: 19% (60283/317277), 47.62 MiB | 7.04 MiB/s Receiving objects: 20% (63456/317277), 47.62 MiB | 7.04 MiB/s Receiving objects: 21% (66629/317277), 51.41 MiB | 6.93 MiB/s Receiving objects: 21% (68938/317277), 51.41 MiB | 6.93 MiB/s Receiving objects: 22% (69801/317277), 51.41 MiB | 6.93 MiB/s Receiving objects: 22% (70287/317277), 58.57 MiB | 5.74 MiB/s Receiving objects: 23% (72974/317277), 58.57 MiB | 5.74 MiB/s Receiving objects: 23% (73956/317277), 64.73 MiB | 6.36 MiB/s Receiving objects: 24% (76147/317277), 69.79 MiB | 6.60 MiB/s Receiving objects: 25% (79320/317277), 69.79 MiB | 6.60 MiB/s Receiving objects: 26% (82493/317277), 69.79 MiB | 6.60 MiB/s Receiving objects: 27% (85665/317277), 69.79 MiB | 6.60 MiB/s Receiving objects: 28% (88838/317277), 69.79 MiB | 6.60 MiB/s Receiving objects: 29% (92011/317277), 75.04 MiB | 7.46 MiB/s Receiving objects: 29% (95061/317277), 75.04 MiB | 7.46 MiB/s Receiving objects: 30% (95184/317277), 75.04 MiB | 7.46 MiB/s Receiving objects: 31% (98356/317277), 75.04 MiB | 7.46 MiB/s Receiving objects: 32% (101529/317277), 75.04 MiB | 7.46 MiB/s Receiving objects: 33% (104702/317277), 79.89 MiB | 7.57 MiB/s Receiving objects: 34% (107875/317277), 79.89 MiB | 7.57 MiB/s Receiving objects: 35% (111047/317277), 79.89 MiB | 7.57 MiB/s Receiving objects: 35% (114150/317277), 85.39 MiB | 8.20 MiB/s Receiving objects: 36% (114220/317277), 85.39 MiB | 8.20 MiB/s Receiving objects: 37% (117393/317277), 85.39 MiB | 8.20 MiB/s Receiving objects: 38% (120566/317277), 90.82 MiB | 8.47 MiB/s Receiving objects: 39% (123739/317277), 90.82 MiB | 8.47 MiB/s Receiving objects: 40% (126911/317277), 90.82 MiB | 8.47 MiB/s Receiving objects: 41% (130084/317277), 90.82 MiB | 8.47 MiB/s Receiving objects: 42% (133257/317277), 90.82 MiB | 8.47 MiB/s Receiving objects: 43% (136430/317277), 90.82 MiB | 8.47 MiB/s Receiving objects: 44% (139602/317277), 90.82 MiB | 8.47 MiB/s Receiving objects: 45% (142775/317277), 96.31 MiB | 8.94 MiB/s Receiving objects: 45% (145910/317277), 96.31 MiB | 8.94 MiB/s Receiving objects: 46% (145948/317277), 96.31 MiB | 8.94 MiB/s Receiving objects: 46% (147130/317277), 105.10 MiB | 10.30 MiB/s Receiving objects: 47% (149121/317277), 109.67 MiB | 9.92 MiB/s Receiving objects: 48% (152293/317277), 109.67 MiB | 9.92 MiB/s Receiving objects: 49% (155466/317277), 109.67 MiB | 9.92 MiB/s Receiving objects: 50% (158639/317277), 109.67 MiB | 9.92 MiB/s Receiving objects: 51% (161812/317277), 109.67 MiB | 9.92 MiB/s Receiving objects: 52% (164985/317277), 109.67 MiB | 9.92 MiB/s Receiving objects: 53% (168157/317277), 114.73 MiB | 9.91 MiB/s Receiving objects: 53% (168751/317277), 114.73 MiB | 9.91 MiB/s Receiving objects: 54% (171330/317277), 114.73 MiB | 9.91 MiB/s Receiving objects: 55% (174503/317277), 114.73 MiB | 9.91 MiB/s Receiving objects: 56% (177676/317277), 114.73 MiB | 9.91 MiB/s Receiving objects: 57% (180848/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 58% (184021/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 59% (187194/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 60% (190367/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 61% (193539/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 62% (196712/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 63% (199885/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 64% (203058/317277), 119.93 MiB | 9.86 MiB/s Receiving objects: 64% (204552/317277), 125.10 MiB | 9.93 MiB/s Receiving objects: 65% (206231/317277), 125.10 MiB | 9.93 MiB/s Receiving objects: 66% (209403/317277), 125.10 MiB | 9.93 MiB/s Receiving objects: 67% (212576/317277), 129.68 MiB | 9.74 MiB/s Receiving objects: 68% (215749/317277), 129.68 MiB | 9.74 MiB/s Receiving objects: 69% (218922/317277), 129.68 MiB | 9.74 MiB/s Receiving objects: 70% (222094/317277), 129.68 MiB | 9.74 MiB/s Receiving objects: 71% (225267/317277), 129.68 MiB | 9.74 MiB/s Receiving objects: 72% (228440/317277), 129.68 MiB | 9.74 MiB/s Receiving objects: 73% (231613/317277), 135.78 MiB | 9.91 MiB/s Receiving objects: 73% (233889/317277), 135.78 MiB | 9.91 MiB/s Receiving objects: 74% (234785/317277), 135.78 MiB | 9.91 MiB/s Receiving objects: 75% (237958/317277), 135.78 MiB | 9.91 MiB/s Receiving objects: 76% (241131/317277), 140.98 MiB | 9.85 MiB/s Receiving objects: 77% (244304/317277), 140.98 MiB | 9.85 MiB/s Receiving objects: 78% (247477/317277), 140.98 MiB | 9.85 MiB/s Receiving objects: 78% (248921/317277), 146.60 MiB | 10.31 MiB/s Receiving objects: 78% (249165/317277), 157.86 MiB | 10.60 MiB/s Receiving objects: 78% (249749/317277), 167.88 MiB | 10.60 MiB/s Receiving objects: 78% (249860/317277), 173.82 MiB | 8.76 MiB/s Receiving objects: 78% (249905/317277), 177.37 MiB | 8.18 MiB/s Receiving objects: 78% (250150/317277), 183.05 MiB | 6.92 MiB/s Receiving objects: 78% (250333/317277), 187.42 MiB | 5.61 MiB/s Receiving objects: 78% (250333/317277), 192.29 MiB | 4.61 MiB/s Receiving objects: 78% (250334/317277), 194.74 MiB | 4.70 MiB/s Receiving objects: 78% (250574/317277), 199.79 MiB | 4.73 MiB/s Receiving objects: 79% (250649/317277), 202.38 MiB | 4.77 MiB/s Receiving objects: 79% (250811/317277), 207.50 MiB | 4.95 MiB/s Receiving objects: 79% (250972/317277), 210.05 MiB | 4.99 MiB/s Receiving objects: 79% (251082/317277), 215.11 MiB | 5.01 MiB/s Receiving objects: 79% (251271/317277), 220.25 MiB | 5.01 MiB/s Receiving objects: 79% (251493/317277), 225.53 MiB | 5.05 MiB/s Receiving objects: 79% (251755/317277), 230.64 MiB | 5.03 MiB/s Receiving objects: 80% (253822/317277), 233.17 MiB | 5.01 MiB/s Receiving objects: 81% (256995/317277), 233.17 MiB | 5.01 MiB/s Receiving objects: 82% (260168/317277), 235.71 MiB | 5.02 MiB/s Receiving objects: 82% (260819/317277), 235.71 MiB | 5.02 MiB/s Receiving objects: 83% (263340/317277), 235.71 MiB | 5.02 MiB/s Receiving objects: 84% (266513/317277), 238.30 MiB | 5.06 MiB/s Receiving objects: 85% (269686/317277), 238.30 MiB | 5.06 MiB/s Receiving objects: 86% (272859/317277), 238.30 MiB | 5.06 MiB/s Receiving objects: 87% (276031/317277), 238.30 MiB | 5.06 MiB/s Receiving objects: 87% (276617/317277), 241.09 MiB | 5.11 MiB/s Receiving objects: 87% (277696/317277), 243.36 MiB | 4.38 MiB/s Receiving objects: 88% (279204/317277), 243.36 MiB | 4.38 MiB/s Receiving objects: 89% (282377/317277), 245.98 MiB | 4.35 MiB/s Receiving objects: 90% (285550/317277), 245.98 MiB | 4.35 MiB/s Receiving objects: 90% (286864/317277), 248.68 MiB | 4.37 MiB/s Receiving objects: 91% (288723/317277), 248.68 MiB | 4.37 MiB/s Receiving objects: 92% (291895/317277), 251.50 MiB | 4.44 MiB/s Receiving objects: 93% (295068/317277), 251.50 MiB | 4.44 MiB/s Receiving objects: 93% (297075/317277), 251.50 MiB | 4.44 MiB/s Receiving objects: 94% (298241/317277), 251.50 MiB | 4.44 MiB/s Receiving objects: 95% (301414/317277), 254.36 MiB | 4.52 MiB/s Receiving objects: 96% (304586/317277), 254.36 MiB | 4.52 MiB/s Receiving objects: 97% (307759/317277), 254.36 MiB | 4.52 MiB/s Receiving objects: 98% (310932/317277), 254.36 MiB | 4.52 MiB/s Receiving objects: 99% (314105/317277), 256.80 MiB | 4.50 MiB/s Receiving objects: 99% (316628/317277), 256.80 MiB | 4.50 MiB/s remote: Total 317277 (delta 2979), reused 1687 (delta 1671), pack-reused 313860 (from 4) Receiving objects: 100% (317277/317277), 259.15 MiB | 4.46 MiB/s Receiving objects: 100% (317277/317277), 259.80 MiB | 6.64 MiB/s, done. Resolving deltas: 0% (0/229221) Resolving deltas: 1% (2293/229221) Resolving deltas: 2% (4585/229221) Resolving deltas: 3% (6877/229221) Resolving deltas: 4% (9169/229221) Resolving deltas: 5% (11463/229221) Resolving deltas: 5% (11574/229221) Resolving deltas: 5% (13247/229221) Resolving deltas: 6% (13754/229221) Resolving deltas: 7% (16046/229221) Resolving deltas: 8% (18338/229221) Resolving deltas: 9% (20630/229221) Resolving deltas: 10% (22923/229221) Resolving deltas: 11% (25215/229221) Resolving deltas: 12% (27507/229221) Resolving deltas: 13% (29799/229221) Resolving deltas: 13% (31360/229221) Resolving deltas: 14% (32091/229221) Resolving deltas: 15% (34384/229221) Resolving deltas: 16% (36676/229221) Resolving deltas: 17% (38968/229221) Resolving deltas: 18% (41260/229221) Resolving deltas: 19% (43552/229221) Resolving deltas: 20% (45845/229221) Resolving deltas: 21% (48137/229221) Resolving deltas: 22% (50429/229221) Resolving deltas: 22% (51309/229221) Resolving deltas: 23% (52721/229221) Resolving deltas: 24% (55014/229221) Resolving deltas: 25% (57306/229221) Resolving deltas: 26% (59598/229221) Resolving deltas: 26% (61435/229221) Resolving deltas: 27% (61890/229221) Resolving deltas: 28% (64182/229221) Resolving deltas: 29% (66475/229221) Resolving deltas: 30% (68767/229221) Resolving deltas: 31% (71059/229221) Resolving deltas: 32% (73351/229221) Resolving deltas: 33% (75643/229221) Resolving deltas: 34% (77936/229221) Resolving deltas: 35% (80228/229221) Resolving deltas: 36% (82520/229221) Resolving deltas: 37% (84812/229221) Resolving deltas: 38% (87104/229221) Resolving deltas: 38% (88299/229221) Resolving deltas: 39% (89397/229221) Resolving deltas: 40% (91689/229221) Resolving deltas: 41% (93981/229221) Resolving deltas: 42% (96273/229221) Resolving deltas: 43% (98566/229221) Resolving deltas: 44% (100858/229221) Resolving deltas: 45% (103150/229221) Resolving deltas: 46% (105442/229221) Resolving deltas: 47% (107734/229221) Resolving deltas: 48% (110028/229221) Resolving deltas: 49% (112319/229221) Resolving deltas: 49% (112449/229221) Resolving deltas: 50% (114611/229221) Resolving deltas: 51% (116903/229221) Resolving deltas: 52% (119196/229221) Resolving deltas: 53% (121488/229221) Resolving deltas: 54% (123780/229221) Resolving deltas: 55% (126072/229221) Resolving deltas: 56% (128364/229221) Resolving deltas: 56% (130073/229221) Resolving deltas: 57% (130656/229221) Resolving deltas: 58% (132949/229221) Resolving deltas: 59% (135241/229221) Resolving deltas: 60% (137533/229221) Resolving deltas: 61% (139825/229221) Resolving deltas: 62% (142118/229221) Resolving deltas: 63% (144410/229221) Resolving deltas: 64% (146702/229221) Resolving deltas: 65% (148994/229221) Resolving deltas: 66% (151286/229221) Resolving deltas: 67% (153579/229221) Resolving deltas: 68% (155871/229221) Resolving deltas: 69% (158163/229221) Resolving deltas: 70% (160455/229221) Resolving deltas: 71% (162747/229221) Resolving deltas: 72% (165040/229221) Resolving deltas: 73% (167332/229221) Resolving deltas: 74% (169624/229221) Resolving deltas: 75% (171916/229221) Resolving deltas: 76% (174209/229221) Resolving deltas: 77% (176501/229221) Resolving deltas: 78% (178793/229221) Resolving deltas: 79% (181085/229221) Resolving deltas: 80% (183377/229221) Resolving deltas: 81% (185670/229221) Resolving deltas: 82% (187962/229221) Resolving deltas: 82% (188698/229221) Resolving deltas: 83% (190254/229221) Resolving deltas: 84% (192546/229221) Resolving deltas: 85% (194838/229221) Resolving deltas: 86% (197131/229221) Resolving deltas: 87% (199423/229221) Resolving deltas: 88% (201715/229221) Resolving deltas: 89% (204007/229221) Resolving deltas: 90% (206299/229221) Resolving deltas: 91% (208593/229221) Resolving deltas: 92% (210884/229221) Resolving deltas: 93% (213176/229221) Resolving deltas: 94% (215468/229221) Resolving deltas: 94% (215623/229221) Resolving deltas: 95% (217760/229221) Resolving deltas: 96% (220053/229221) Resolving deltas: 97% (222345/229221) Resolving deltas: 98% (224637/229221) Resolving deltas: 99% (226929/229221) Resolving deltas: 100% (229221/229221) Resolving deltas: 100% (229221/229221), done. ==> Validating source files with sha512sums... gemini-cli ... Passed ]2;๐Ÿ”ต Container arch-nspawn-480456 on abomasnow.felixc.at\==> Making package: gemini-cli 1:0.20.2-1 (Wed Dec 17 06:16:01 2025) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (5) New Version Net Change Download Size extra/c-ares 1.34.6-1 0.51 MiB 0.24 MiB extra/libngtcp2 1.18.0-1 0.61 MiB extra/libuv 1.51.0-1 0.60 MiB extra/simdjson 1:4.2.2-1 6.16 MiB extra/nodejs 25.2.1-1 55.37 MiB Total Download Size: 0.24 MiB Total Installed Size: 63.25 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... c-ares-1.34.6-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing c-ares... installing libngtcp2... installing libuv... installing simdjson... installing nodejs... Optional dependencies for nodejs npm: nodejs package manager :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (11) New Version Net Change extra/node-gyp 12.1.0-1 7.81 MiB extra/nodejs-nopt 7.2.1-1 0.03 MiB extra/oniguruma 6.9.10-1 0.88 MiB extra/perl-error 0.17030-2 0.04 MiB extra/perl-mailtools 2.22-2 0.10 MiB extra/perl-timedate 2.33-9 0.08 MiB extra/semver 7.7.3-1 0.09 MiB extra/zlib-ng 2.2.5-1 0.21 MiB extra/git 2.52.0-1 28.75 MiB extra/jq 1.8.1-1 0.46 MiB extra/npm 11.6.4-1 7.14 MiB Total Installed Size: 45.61 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-cgi: gitweb (web interface) support python: git svn & git p4 subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing oniguruma... installing jq... installing nodejs-nopt... installing semver... installing node-gyp... Optional dependencies for node-gyp gcc: to build C++ modules [installed] make: to build C++ modules [installed] python: to build C++ modules installing npm... Optional dependencies for npm git: for dependencies using Git URL's [installed] :: Running post-transaction hooks... (1/4) Creating system user accounts... Creating group 'git' with GID 971. Creating user 'git' (git daemon user) with UID 971 and GID 971. (2/4) Reloading system manager configuration... Skipped: Current root is not booted. (3/4) Arming ConditionNeedsUpdate... (4/4) Checking for old perl modules... [?25h==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of gemini-cli git repo... Cloning into 'gemini-cli'... done. Switched to a new branch 'makepkg' ==> Starting prepare()... npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead added 1303 packages, and audited 1309 packages in 1m 347 packages are looking for funding run `npm fund` for details 4 vulnerabilities (1 moderate, 3 high) To address all issues, run: npm audit fix Run `npm audit` for details. npm notice npm notice New minor version of npm available! 11.6.4 -> 11.7.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.7.0 npm notice To update run: npm install -g npm@11.7.0 npm notice ==> Starting build()... > @google/gemini-cli@0.20.2 bundle > npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js > @google/gemini-cli@0.20.2 generate > node scripts/generate-git-commit-info.js Assets copied to bundle/ > @google/gemini-cli@0.20.2 prepare > husky && npm run bundle > @google/gemini-cli@0.20.2 bundle > npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js > @google/gemini-cli@0.20.2 generate > node scripts/generate-git-commit-info.js Assets copied to bundle/ npm notice npm notice ๐Ÿ“ฆ @google/gemini-cli@0.20.2 npm notice Tarball Contents npm notice 11.4kB LICENSE npm notice 11.6kB README.md npm notice 21.4MB bundle/gemini.js npm notice 1.0kB bundle/sandbox-macos-permissive-closed.sb npm notice 890B bundle/sandbox-macos-permissive-open.sb npm notice 1.3kB bundle/sandbox-macos-permissive-proxied.sb npm notice 3.3kB bundle/sandbox-macos-restrictive-closed.sb npm notice 3.4kB bundle/sandbox-macos-restrictive-open.sb npm notice 3.6kB bundle/sandbox-macos-restrictive-proxied.sb npm notice 6.2kB package.json npm notice Bundled Dependencies npm notice node-pty npm notice minimist npm notice config-chain npm notice @alcalzone/ansi-tokenize npm notice @kwsites/file-exists npm notice @kwsites/promise-deferred npm notice @lydell/node-pty npm notice @pnpm/network.ca-file npm notice @pnpm/npm-conf npm notice ansi-escapes npm notice ansi-regex npm notice auto-bind npm notice cli-boxes npm notice cli-cursor npm notice cli-truncate npm notice code-excerpt npm notice convert-to-spaces npm notice debug npm notice deep-extend npm notice environment npm notice es-toolkit npm notice get-east-asian-width npm notice indent-string npm notice ini npm notice ink npm notice ky npm notice latest-version npm notice mimic-fn npm notice onetime npm notice package-json npm notice patch-console npm notice proto-list npm notice rc npm notice react-reconciler npm notice registry-auth-token npm notice registry-url npm notice restore-cursor npm notice scheduler npm notice semver npm notice slice-ansi npm notice stack-utils npm notice strip-ansi npm notice wrap-ansi npm notice ws npm notice yoga-layout npm notice nan npm notice mnemonist npm notice obliterator npm notice @pnpm/config.env-replace npm notice ms npm notice simple-git npm notice Tarball Details npm notice name: @google/gemini-cli npm notice version: 0.20.2 npm notice filename: google-gemini-cli-0.20.2.tgz npm notice package size: 5.7 MB npm notice unpacked size: 30.9 MB npm notice shasum: 9edd50cc4bafb341f5b08d9f2a07fcdc63cbac4d npm notice integrity: sha512-h9FLalNPHsX+Q[...]hy8ZiVdFmsEkw== npm notice bundled deps: 51 npm notice bundled files: 0 npm notice own files: 4150 npm notice total files: 4150 npm notice google-gemini-cli-0.20.2.tgz ==> Starting check()... > @google/gemini-cli@0.20.2 build > node scripts/build.js > @google/gemini-cli@0.20.2 generate > node scripts/generate-git-commit-info.js > @google/gemini-cli-a2a-server@0.20.2 build > node ../../scripts/build_package.js Successfully copied files. > @google/gemini-cli@0.20.2 build > node ../../scripts/build_package.js Successfully copied files. > @google/gemini-cli-core@0.20.2 build > node ../../scripts/build_package.js Successfully copied files. > @google/gemini-cli-test-utils@0.20.2 build > node ../../scripts/build_package.js Successfully copied files. > gemini-cli-vscode-ide-companion@0.20.2 build > npm run build:dev > gemini-cli-vscode-ide-companion@0.20.2 build:dev > npm run check-types && npm run lint && node esbuild.js > gemini-cli-vscode-ide-companion@0.20.2 check-types > tsc --noEmit > gemini-cli-vscode-ide-companion@0.20.2 lint > eslint src [watch] build started [watch] build finished > @google/gemini-cli@0.20.2 test > npm run test --workspaces --if-present --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/mcp-client.test.ts npm warn Unknown cli config "--exclude". This will stop working in the next major version of npm. > @google/gemini-cli-a2a-server@0.20.2 test > vitest run RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/a2a-server Coverage enabled with v8 โœ“ src/persistence/gcs.test.ts (12 tests) 218ms โœ“ src/agent/task.test.ts (8 tests) 179ms โœ“ src/http/endpoints.test.ts (5 tests) 303ms โœ“ src/http/app.test.ts (13 tests) 541ms โœ“ src/commands/command-registry.test.ts (6 tests) 70ms โœ“ src/commands/extensions.test.ts (8 tests) 23ms Test Files 6 passed (6) Tests 52 passed (52) Start at 06:21:56 Duration 23.37s (transform 7.36s, setup 0ms, collect 43.48s, tests 1.33s, environment 5ms, prepare 2.70s) JUNIT report written to /build/gemini-cli/src/gemini-cli/packages/a2a-server/junit.xml % Coverage report from v8 > @google/gemini-cli@0.20.2 test > vitest run RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/cli Coverage enabled with v8 stderr | src/ui/hooks/useGeminiStream.test.tsx > useGeminiStream > should submit tool responses when all tool calls are completed and ready Error recording completed tool call information: TypeError: config.getGeminiClient(...).getCurrentSequenceModel is not a function stderr | src/ui/hooks/useGeminiStream.test.tsx > useGeminiStream > should handle all tool calls being cancelled Error recording completed tool call information: TypeError: config.getGeminiClient(...).getCurrentSequenceModel is not a function stderr | src/ui/hooks/useGeminiStream.test.tsx > useGeminiStream > should group multiple cancelled tool call responses into a single history entry Error recording completed tool call information: TypeError: config.getGeminiClient(...).getCurrentSequenceModel is not a function stderr | src/ui/hooks/useGeminiStream.test.tsx > useGeminiStream > should not flicker streaming state to Idle between tool completion and submission Error recording completed tool call information: TypeError: config.getGeminiClient(...).getCurrentSequenceModel is not a function stderr | src/ui/hooks/useGeminiStream.test.tsx > useGeminiStream > Memory Refresh on save_memory > should call performMemoryRefresh when a save_memory tool call completes successfully Error recording completed tool call information: TypeError: config.getGeminiClient(...).getCurrentSequenceModel is not a function โœ“ src/ui/hooks/useGeminiStream.test.tsx (54 tests) 1182ms โœ“ src/ui/components/InputPrompt.test.tsx (110 tests) 5658ms โœ“ InputPrompt > should call shellHistory.getPreviousCommand on up arrow in shell mode 357ms stderr | src/config/config.test.ts > loadCliConfig > Proxy configuration > should leave proxy to empty by default innerError Error: Cannot find module '../build/Debug/pty.node' Require stack: - /build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/unixTerminal.js - /build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/index.js  at Module._resolveFilename (node:internal/modules/cjs/loader:1420:15)  at defaultResolveImpl (node:internal/modules/cjs/loader:1058:19)  at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1063:22)  at Module._load (node:internal/modules/cjs/loader:1226:37)  at TracingChannel.traceSync (node:diagnostics_channel:328:14)  at wrapModuleLoad (node:internal/modules/cjs/loader:245:24)  at Module.require (node:internal/modules/cjs/loader:1503:12)  at require (node:internal/modules/helpers:152:16) at Object. (/build/gemini-cli/src/gemini-cli/node_modules/node-pty/src/unixTerminal.ts:20:11)  at Module._compile (node:internal/modules/cjs/loader:1760:14) { code: 'MODULE_NOT_FOUND', requireStack: [ '/build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/unixTerminal.js', '/build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/index.js' ] } stderr | src/config/config.test.ts > Approval mode tool exclusion logic > should exclude no interactive tools in non-interactive mode with yolo approval mode YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > Approval mode tool exclusion logic > should exclude no interactive tools in non-interactive mode with legacy yolo flag YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > Approval mode tool exclusion logic > should not exclude interactive tools in interactive mode regardless of approval mode YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > Approval mode tool exclusion logic > should not exclude interactive tools in interactive mode regardless of approval mode YOLO mode is enabled. All tool calls will be automatically approved. โœ“ src/ui/components/shared/text-buffer.test.ts (161 tests) 1142ms stderr | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude interactive tools in interactive mode with YOLO YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude interactive tools in non-interactive mode with YOLO YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > loadCliConfig interactive > should not be interactive if positional prompt words are provided with multiple flags YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when --yolo flag is used YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when -y flag is used YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when --approval-mode=yolo YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > loadCliConfig approval mode > should fall back to --yolo behavior when --approval-mode is not set YOLO mode is enabled. All tool calls will be automatically approved. stderr | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=yolo to DEFAULT YOLO mode is enabled. All tool calls will be automatically approved. Approval mode overridden to "default" because the current folder is not trusted. stderr | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=auto_edit to DEFAULT Approval mode overridden to "default" because the current folder is not trusted. stderr | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --yolo flag to DEFAULT YOLO mode is enabled. All tool calls will be automatically approved. Approval mode overridden to "default" because the current folder is not trusted. stdout | src/config/settings.test.ts > Settings Loading and Merging > migrateDeprecatedSettings > should migrate disabled extensions from user and workspace settings Migrating deprecated extensions.disabled settings from User settings... Migrating deprecated extensions.disabled settings from Workspace settings... stderr | src/config/settings.test.ts > Settings Loading and Merging > migrateDeprecatedSettings > should migrate disabled extensions from user and workspace settings [WARN] Skipping unreadable directory: /mock/workspace (ENOENT: no such file or directory, stat '/mock/workspace') stderr | src/config/settings.test.ts > Settings Loading and Merging > migrateDeprecatedSettings > should not do anything if there are no deprecated settings [WARN] Skipping unreadable directory: /mock/workspace (ENOENT: no such file or directory, stat '/mock/workspace') โœ“ src/config/settings.test.ts (80 tests) 432ms โœ“ src/config/config.test.ts (146 tests | 1 skipped) 7014ms stderr | DiagConsoleLogger.error (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/api/src/diag/consoleLogger.ts:49:28) {"stack":"Error: PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED 127.0.0.1:4317)\n at PeriodicExportingMetricReader._doRun (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:144:13)\n at processTicksAndRejections (node:internal/process/task_queues:103:5)\n at PeriodicExportingMetricReader._runOnce (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:103:7)\n at PeriodicExportingMetricReader.onForceFlush (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:160:5)\n at PeriodicExportingMetricReader.onShutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:168:5)\n at PeriodicExportingMetricReader.shutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/MetricReader.ts:261:7)\n at MetricCollector.shutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/state/MetricCollector.ts:86:5)\n at async Promise.all (index 0)\n at MeterProvider.shutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/MeterProvider.ts:98:5)\n at async Promise.all (index 2)","message":"PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED 127.0.0.1:4317)","name":"Error"} โœ“ src/config/extension.test.ts (70 tests) 1211ms stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Basic Rendering > renders with startup warnings [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > State Initialization > initializes with theme error from initialization result [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. โœ“ src/nonInteractiveCli.test.ts (34 tests) 908ms โœ“ runNonInteractive > should handle cancellation (Ctrl+C) 428ms stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Context Providers > provides AppContext with correct values [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Context Providers > provides UIStateContext with state management [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Context Providers > provides UIActionsContext with action handlers [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Context Providers > provides ConfigContext with config object [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Settings Integration > handles settings with all display options disabled [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Settings Integration > handles settings with memory usage enabled [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Version Handling > handles version format: 1.0.0 [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Version Handling > handles version format: 2.1.3-beta [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Version Handling > handles version format: 3.0.0-nightly [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Error Handling > handles undefined settings gracefully [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Provider Hierarchy > establishes correct provider nesting order [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Session Resumption > handles resumed session data correctly [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Session Resumption > renders without resumed session data [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Quota and Fallback Integration > passes a null proQuotaRequest to UIStateContext by default [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Quota and Fallback Integration > passes a valid proQuotaRequest to UIStateContext when provided by the hook [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Quota and Fallback Integration > passes the handleProQuotaChoice function to UIActionsContext [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should not update terminal title when showStatusInTitle is false [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should not update terminal title when hideWindowTitle is true [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should update terminal title with thought subject when in active state [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should update terminal title with default text when in Idle state and no thought subject [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should update terminal title when in WaitingForConfirmation state with thought subject [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should pad title to exactly 80 characters [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should use correct ANSI escape code format [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Title Update Feature > should use CLI_TITLE environment variable when set [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Queue Error Message > should set and clear the queue error message after a timeout [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Queue Error Message > should reset the timer if a new error message is set [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Terminal Height Calculation > should prevent terminal height from being less than 1 [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+C > should cancel ongoing request on first press [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+C > should quit on second press [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+C > should reset press count after a timeout [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+D > should do nothing if text buffer is not empty [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+D > should quit on second press if buffer is empty [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+D > should reset press count after a timeout [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Copy Mode (CTRL+S) > 'Normal Mode' > should NOT toggle mouse off when Ctrl+S is pressed [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Copy Mode (CTRL+S) > 'Alternate Buffer Mode' > should toggle mouse off when Ctrl+S is pressed [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Copy Mode (CTRL+S) > 'Alternate Buffer Mode' > should toggle mouse back on when Ctrl+S is pressed again [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Copy Mode (CTRL+S) > 'Alternate Buffer Mode' > should exit copy mode on any key press [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Model Dialog Integration > should provide isModelDialogOpen in the UIStateContext [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Model Dialog Integration > should provide model dialog actions in the UIActionsContext [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > CoreEvents Integration > subscribes to UserFeedback and drains backlog on mount [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > CoreEvents Integration > unsubscribes from UserFeedback on unmount [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > CoreEvents Integration > adds history item when UserFeedback event is received [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > CoreEvents Integration > updates currentModel when ModelChanged event is received [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Shell Interaction > should not crash if resizing the pty fails [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > Banner Text > should render placeholder banner text for USE_GEMINI auth type [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > onCancelSubmit Behavior > clears the prompt when onCancelSubmit is called with shouldRestorePrompt=false [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > onCancelSubmit Behavior > restores the prompt when onCancelSubmit is called with shouldRestorePrompt=true (or undefined) [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. stderr | src/ui/AppContainer.test.tsx > AppContainer State Management > onCancelSubmit Behavior > input history is independent from conversation history (survives /clear) [STARTUP] Cannot start phase 'discover_tools': phase is already active. Call end() before starting again. โœ“ src/ui/AppContainer.test.tsx (60 tests) 3721ms โœ“ AppContainer State Management > State Initialization > handles debug mode state 530ms โœ“ src/utils/sessionCleanup.test.ts (70 tests) 453ms โœ“ src/ui/hooks/vim.test.tsx (87 tests) 1875ms โœ“ src/services/FileCommandLoader.test.ts (40 tests) 692ms ]2;Gemini - clistderr | src/gemini.test.tsx > gemini.tsx main function kitty protocol > should handle --'listSessions' flag [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. stderr | src/gemini.test.tsx > gemini.tsx main function kitty protocol > should handle --'deleteSession' flag [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. stderr | src/gemini.test.tsx > gemini.tsx main function kitty protocol > should handle sandbox activation [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. stderr | src/gemini.test.tsx > gemini.tsx main function kitty protocol > should read from stdin in non-interactive mode [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. Error: The --prompt-interactive flag cannot be used when input is piped from stdin. stderr | src/gemini.test.tsx > gemini.tsx main function exit codes > should exit with 41 for auth failure during sandbox setup [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. stderr | src/gemini.test.tsx > gemini.tsx main function exit codes > should exit with 42 for session resume failure [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. stderr | src/gemini.test.tsx > gemini.tsx main function exit codes > should exit with 42 for no input provided [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. ]2;Gemini - root[?7l]2;Gemini - root[?7l]2;Gemini - root[?7l]2;Gemini - root[?7l]2;Gemini - root[?7l]2;Gemini - root[?7l โœ“ src/gemini.test.tsx (33 tests | 1 skipped) 585ms stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should skip git-ignored files in @ commands Ignored 1 files: Git-ignored: /tmp/folder-structure-test-Och8Of/node_modules/package.json stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files Ignored 1 files: Git-ignored: /tmp/folder-structure-test-kHAqRA/.env stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should always ignore .git directory files Ignored 1 files: Git-ignored: /tmp/folder-structure-test-cWECs3/.git/config stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > gemini-ignore filtering > should skip gemini-ignored files in @ commands Ignored 1 files: Gemini-ignored: /tmp/folder-structure-test-jLOLYo/build/output.js stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle mixed gemini-ignored and valid files Ignored 1 files: Gemini-ignored: /tmp/folder-structure-test-v9FhkJ/dist/bundle.js โœ“ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 224ms โœ“ src/ui/hooks/atCommandProcessor.test.ts (42 tests) 1342ms โœ“ handleAtCommand > should process a valid text file path 319ms โœ“ src/utils/settingsUtils.test.ts (73 tests) 165ms โœ“ src/ui/hooks/slashCommandProcessor.test.tsx (37 tests) 1418ms stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Toggling > should toggle setting with Enter key [DEBUG SettingsDialog] Saving general.vimMode immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Toggling > enum values > 'toggles to next value' [DEBUG SettingsDialog] Saving ui.theme immediately with value: baz stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Toggling > enum values > 'loops back to first value when at end' [DEBUG SettingsDialog] Saving ui.theme immediately with value: foo stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Toggling > should toggle setting with Space key [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Toggling > should handle vim mode setting specially [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Error Handling > should handle vim mode toggle errors gracefully [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Complex State Management > should track modified settings correctly [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > VimMode Integration > should sync with VimModeContext when vim mode is toggled [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Specific Settings Behavior > should handle immediate settings save for non-restart-required settings [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Race Condition Regression Tests > should 'not reset sibling settings when togglโ€ฆ' [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: true [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: false [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: true [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: false [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Race Condition Regression Tests > should 'preserve multiple sibling settings inโ€ฆ' [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: true [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: false [DEBUG SettingsDialog] Saving tools.shell.showColor immediately with value: true โœ“ src/ui/hooks/useToolScheduler.test.ts (23 tests) 483ms stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true [DEBUG SettingsDialog] Saving general.previewFeatures immediately with value: true stdout | src/ui/components/SettingsDialog.test.tsx > SettingsDialog > String Settings Editing > should allow editing and committing a string setting [DEBUG SettingsDialog] Saving general.vimMode immediately with value: true [DEBUG SettingsDialog] Saving general.vimMode immediately with value: true [DEBUG SettingsDialog] Saving general.vimMode immediately with value: true โœ“ src/ui/hooks/useSelectionList.test.tsx (45 tests) 473ms โœ“ src/ui/contexts/KeypressContext.test.tsx (87 tests) 639ms โœ“ src/ui/hooks/useSlashCompletion.test.ts (21 tests) 669ms โœ“ src/ui/commands/extensionsCommand.test.ts (38 tests) 268ms โœ“ src/services/prompt-processors/shellProcessor.test.ts (33 tests) 272ms โฏ src/ui/components/SettingsDialog.test.tsx (50 tests | 20 failed) 38505ms โœ“ SettingsDialog > Initial Rendering > should render the settings dialog with default state 608ms ร— SettingsDialog > Initial Rendering > should accept availableTerminalHeight prop without errors 456ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Settings' ร— SettingsDialog > Initial Rendering > should render settings list with visual indicators 2641ms โ†’ Snapshot `SettingsDialog > Initial Rendering > should render settings list with visual indicators 1` mismatched โœ“ SettingsDialog > Settings Navigation > should navigate with 'arrow keys' 388ms โœ“ SettingsDialog > Settings Navigation > should navigate with 'vim keys (j/k)' 349ms โœ“ SettingsDialog > Settings Navigation > wraps around when at the top of the list 258ms โœ“ SettingsDialog > Settings Toggling > should toggle setting with Enter key 310ms โœ“ SettingsDialog > Settings Toggling > enum values > 'toggles to next value' 156ms โœ“ SettingsDialog > Settings Toggling > enum values > 'loops back to first value when at end' 113ms โœ“ SettingsDialog > Settings Toggling > should toggle setting with Space key 317ms โœ“ SettingsDialog > Settings Toggling > should handle vim mode setting specially 254ms โœ“ SettingsDialog > Scope Selection > should switch between scopes 252ms ร— SettingsDialog > Scope Selection > should reset to settings focus when scope is selected 225ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Apply To' โœ“ SettingsDialog > Restart Prompt > should show restart prompt for restart-required settings 166ms โœ“ SettingsDialog > Restart Prompt > should handle restart request when r is pressed 162ms ร— SettingsDialog > Escape Key Behavior > should call onSelect with undefined when Escape is pressed 1256ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Vim Mode' โœ“ SettingsDialog > Settings Persistence > should persist settings across scope changes 298ms ร— SettingsDialog > Settings Persistence > should show different values for different scopes 205ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Settings' โœ“ SettingsDialog > Error Handling > should handle vim mode toggle errors gracefully 219ms โœ“ SettingsDialog > Complex State Management > should track modified settings correctly 208ms โœ“ SettingsDialog > Complex State Management > should handle scrolling when there are many settings 206ms โœ“ SettingsDialog > VimMode Integration > should sync with VimModeContext when vim mode is toggled 233ms ร— SettingsDialog > Specific Settings Behavior > should show correct display values for settings with different states 342ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Settings' โœ“ SettingsDialog > Specific Settings Behavior > should handle immediate settings save for non-restart-required settings 273ms โœ“ SettingsDialog > Specific Settings Behavior > should show restart prompt for restart-required settings 169ms โœ“ SettingsDialog > Specific Settings Behavior > should clear restart prompt when switching scopes 165ms ร— SettingsDialog > Settings Display Values > should show correct values for inherited settings 204ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Settings' ร— SettingsDialog > Settings Display Values > should show override indicator for overridden settings 202ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Settings' โœ“ SettingsDialog > Race Condition Regression Tests > should 'not reset sibling settings when togglโ€ฆ' 279ms โœ“ SettingsDialog > Race Condition Regression Tests > should 'preserve multiple sibling settings inโ€ฆ' 293ms โœ“ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle rapid key presses gracefully 231ms โœ“ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+C' to reset current setting to default 206ms โœ“ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+L' to reset current setting to default 254ms โœ“ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle navigation when only one setting exists 256ms ร— SettingsDialog > Keyboard Shortcuts Edge Cases > should properly handle Tab navigation between sections 1252ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Vim Mode' ร— SettingsDialog > Error Recovery > should handle malformed settings gracefully 206ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Settings' ร— SettingsDialog > Error Recovery > should handle missing setting definitions gracefully 220ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Settings' ร— SettingsDialog > Complex User Interactions > should handle complete user workflow: navigate, toggle, change scope, exit 1304ms โ†’ expected 'โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Vim Mode' โœ“ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes 250ms โœ“ SettingsDialog > Complex User Interactions > should maintain state consistency during complex interactions 212ms โœ“ SettingsDialog > Complex User Interactions > should handle restart workflow correctly 151ms โœ“ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 421ms ร— SettingsDialog > Snapshot Tests > should render 'default state' correctly 2767ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'default state' correctly 1` mismatched ร— SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 2770ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 1` mismatched ร— SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 2842ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 1` mismatched ร— SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 2773ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 1` mismatched ร— SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 2844ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 1` mismatched ร— SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 2742ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 1` mismatched ร— SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 2689ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 1` mismatched ร— SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 2894ms โ†’ Snapshot `SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 1` mismatched โœ“ src/ui/hooks/shellCommandProcessor.test.tsx (20 tests) 453ms โœ“ src/ui/commands/chatCommand.test.ts (30 tests) 371ms stdout | src/zed-integration/zedIntegration.test.ts > GeminiAgent > should create a new session [STARTUP] StartupProfiler.flush() called with 0 phases stdout | src/zed-integration/zedIntegration.test.ts > GeminiAgent > should create a new session with mcp servers [STARTUP] StartupProfiler.flush() called with 0 phases stdout | src/zed-integration/zedIntegration.test.ts > GeminiAgent > should handle authentication failure gracefully [STARTUP] StartupProfiler.flush() called with 0 phases stdout | src/zed-integration/zedIntegration.test.ts > GeminiAgent > should initialize file system service if client supports it [STARTUP] StartupProfiler.flush() called with 0 phases stdout | src/zed-integration/zedIntegration.test.ts > GeminiAgent > should cancel a session [STARTUP] StartupProfiler.flush() called with 0 phases stdout | src/zed-integration/zedIntegration.test.ts > GeminiAgent > should delegate prompt to session [STARTUP] StartupProfiler.flush() called with 0 phases TEST: calling prompt TEST: waiting for streamStarted TEST: asyncStream started TEST: waiting for read TEST: streamStarted TEST: cancelled TEST: stream closed TEST: read returned done=true TEST: releasing lock TEST: result received {"stopReason":"cancelled"} stderr | src/zed-integration/zedIntegration.test.ts > Session > should ignore files based on configuration Path ignored.txt is ignored and will be skipped. No valid file paths found in @ commands to read. โœ“ src/zed-integration/zedIntegration.test.ts (20 tests) 451ms โœ“ src/utils/sessions.test.ts (16 tests) 145ms โœ“ src/ui/hooks/useAutoAcceptIndicator.test.ts (17 tests) 262ms โœ“ src/config/extensions/extensionEnablement.test.ts (48 tests) 220ms โœ“ src/utils/sessionUtils.test.ts (20 tests) 330ms โœ“ src/ui/hooks/useAtCompletion.test.ts (14 tests) 1985ms stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act โœ“ src/ui/hooks/useCommandCompletion.test.tsx (21 tests) 442ms stderr | updateHookTypesDev (/build/gemini-cli/src/gemini-cli/node_modules/react-reconciler/cjs/react-reconciler.development.js:3128:19) React has detected a change in the order of Hooks called by TestComponent. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks Previous render Next render ------------------------------------------------------ 1. useMemo useMemo 2. useReducer useReducer 3. useMemo useMemo 4. useMemo useMemo 5. useState useState 6. useEffect useEffect 7. useEffect useEffect 8. useEffect useEffect 9. useCallback useCallback 10. useCallback useCallback 11. useCallback useCallback 12. useCallback useCallback 13. useCallback useCallback 14. useCallback useCallback 15. useCallback useCallback 16. useCallback useCallback 17. useCallback useCallback 18. useCallback useCallback 19. useCallback useCallback 20. useCallback useCallback 21. useCallback useCallback 22. useCallback useCallback 23. useCallback useCallback 24. useCallback useCallback 25. useCallback useCallback 26. useCallback useCallback 27. useCallback useCallback 28. useCallback useCallback 29. useCallback useCallback 30. useCallback useCallback 31. useCallback useCallback 32. useCallback useCallback 33. useCallback useCallback 34. useCallback useCallback 35. useCallback useCallback 36. useCallback useCallback 37. useCallback useCallback 38. useCallback useCallback 39. useCallback useCallback 40. useCallback useCallback 41. useCallback useCallback 42. useCallback useCallback 43. useCallback useCallback 44. useCallback useCallback 45. useCallback useCallback 46. useCallback useCallback 47. useCallback useCallback 48. useCallback useCallback 49. useCallback useCallback 50. useCallback useCallback 51. useCallback useCallback 52. useCallback useCallback 53. useCallback useCallback 54. useCallback useCallback 55. useMemo useMemo 56. useCallback useCallback 57. useCallback useCallback 58. useCallback useCallback 59. useCallback useCallback 60. useCallback useCallback 61. useMemo useMemo 62. useState useState 63. useState useState 64. useState useState 65. useState useState 66. useState useState 67. useState useState 68. useCallback useCallback 69. useCallback useCallback 70. useCallback useCallback 71. useMemo useMemo 72. useEffect useState ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Root inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Root inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Root inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Root inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Root inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Root inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Root inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act โฏ src/ui/components/shared/BaseSelectionList.test.tsx (26 tests | 10 failed) 8324ms โœ“ BaseSelectionList > Rendering and Structure > should render all items using the renderItem prop 250ms โœ“ BaseSelectionList > Rendering and Structure > should render the selection indicator (โ— or space) and layout 37ms โœ“ BaseSelectionList > Rendering and Structure > should handle an empty list gracefully 12ms โœ“ BaseSelectionList > useSelectionList Integration > should pass props correctly to useSelectionList 31ms โœ“ BaseSelectionList > useSelectionList Integration > should use the activeIndex returned by the hook 41ms โœ“ BaseSelectionList > Styling and Colors > should apply success color to the selected item 75ms โœ“ BaseSelectionList > Styling and Colors > should apply primary color to unselected, enabled items 58ms โœ“ BaseSelectionList > Styling and Colors > should apply secondary color to disabled items (when not selected) 65ms โœ“ BaseSelectionList > Styling and Colors > should apply success color to disabled items if they are selected 59ms โœ“ BaseSelectionList > Numbering (showNumbers) > should show numbers by default with correct formatting 43ms โœ“ BaseSelectionList > Numbering (showNumbers) > should hide numbers when showNumbers is false 66ms โœ“ BaseSelectionList > Numbering (showNumbers) > should apply correct padding for alignment in long lists 169ms โœ“ BaseSelectionList > Numbering (showNumbers) > should apply secondary color to numbers if showNumbers is false (internal logic check) 35ms ร— BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should only show maxItemsToShow items initially 84ms โ†’ expected 'โ— 1. I\n t\n e\n m\n โ€ฆ' to contain 'Item 1' ร— BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll down when activeIndex moves beyond the visible window 1117ms โ†’ expected ' 2. I\n t\n e\n m\n โ€ฆ' to contain 'Item 2' ร— BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll up when activeIndex moves before the visible window 1108ms โ†’ expected ' 3. I\n t\n e\n m\n โ€ฆ' to contain 'Item 3' ร— BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should pin the scroll offset to the end if selection starts near the end 1104ms โ†’ expected ' 8. I\n t\n e\n m\n โ€ฆ' to contain 'Item 10' ร— BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle dynamic scrolling through multiple activeIndex changes 110ms โ†’ expected 'โ— 1. I\n t\n e\n m\n โ€ฆ' to contain 'Item 1' โœ“ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item within the visible window 38ms โœ“ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item when scrolled (high index) 102ms ร— BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle maxItemsToShow larger than the list length 117ms โ†’ expected 'โ— 1. I\n t\n e\n m\n โ€ฆ' to contain 'Item 1' โœ“ BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows by default 80ms ร— BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows with correct colors when enabled (at the top) 1296ms โ†’ expected 'โ–ฒ\nโ— 1. I\n t\n e\n mโ€ฆ' to contain 'Item 1' ร— BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the middle 1090ms โ†’ expected 'โ–ฒ\n 4. I\n t\n e\n mโ€ฆ' to contain 'Item 4' ร— BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the end 1089ms โ†’ expected 'โ–ฒ\n 8. I\n t\n e\n mโ€ฆ' to contain 'Item 8' ร— BaseSelectionList > Scroll Arrows (showScrollArrows) > should show both arrows dimmed when list fits entirely 38ms โ†’ expected 'โ–ฒ\nโ— 1. I\n t\n e\n m\n โ€ฆ' to contain 'Item A' โœ“ src/validateNonInterActiveAuth.test.ts (17 tests) 162ms โœ“ src/ui/hooks/useQuotaAndFallback.test.ts (12 tests) 419ms โœ“ src/utils/errors.test.ts (28 tests) 165ms โœ“ src/services/McpPromptLoader.test.ts (27 tests) 77ms โœ“ src/ui/keyMatchers.test.ts (44 tests) 90ms stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should create a working PolicyEngine from basic settings [PolicyEngine.check] toolCall.name: run_shell_command, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=run_shell_command, decision=allow, priority=2.3, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should create a working PolicyEngine from basic settings [PolicyEngine.check] toolCall.name: write_file, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=write_file, decision=deny, priority=2.4, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should create a working PolicyEngine from basic settings [PolicyEngine.check] toolCall.name: replace, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=replace, decision=ask_user, priority=1.01, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should create a working PolicyEngine from basic settings [PolicyEngine.check] toolCall.name: unknown_tool, stringifiedArgs: undefined [PolicyEngine.check] NO MATCH - using default decision: ask_user stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle MCP server wildcard patterns correctly [PolicyEngine.check] toolCall.name: allowed-server__tool1, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=allowed-server__*, decision=allow, priority=2.1, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle MCP server wildcard patterns correctly [PolicyEngine.check] toolCall.name: allowed-server__another_tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=allowed-server__*, decision=allow, priority=2.1, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle MCP server wildcard patterns correctly [PolicyEngine.check] toolCall.name: trusted-server__tool1, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=trusted-server__*, decision=allow, priority=2.2, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle MCP server wildcard patterns correctly [PolicyEngine.check] toolCall.name: trusted-server__special_tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=trusted-server__*, decision=allow, priority=2.2, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle MCP server wildcard patterns correctly [PolicyEngine.check] toolCall.name: blocked-server__tool1, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=blocked-server__*, decision=deny, priority=2.9, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle MCP server wildcard patterns correctly [PolicyEngine.check] toolCall.name: blocked-server__any_tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=blocked-server__*, decision=deny, priority=2.9, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle MCP server wildcard patterns correctly [PolicyEngine.check] toolCall.name: unknown-server__tool, stringifiedArgs: undefined [PolicyEngine.check] NO MATCH - using default decision: ask_user stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should correctly prioritize specific tool excludes over MCP server wildcards [PolicyEngine.check] toolCall.name: my-server__safe-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=my-server__*, decision=allow, priority=2.1, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should correctly prioritize specific tool excludes over MCP server wildcards [PolicyEngine.check] toolCall.name: my-server__dangerous-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=my-server__dangerous-tool, decision=deny, priority=2.4, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: read_file, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=read_file, decision=allow, priority=1.05, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: list_directory, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=list_directory, decision=allow, priority=1.05, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: glob, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=glob, decision=deny, priority=2.4, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: replace, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=replace, decision=ask_user, priority=1.01, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: custom-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=custom-tool, decision=allow, priority=2.3, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: my-server__special-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=my-server__special-tool, decision=allow, priority=2.3, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: allowed-server__tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=allowed-server__*, decision=allow, priority=2.1, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: trusted-server__tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=trusted-server__*, decision=allow, priority=2.2, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: blocked-server__tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=blocked-server__*, decision=deny, priority=2.9, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle complex mixed configurations [PolicyEngine.check] toolCall.name: write_file, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=write_file, decision=ask_user, priority=1.01, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle YOLO mode correctly [PolicyEngine.check] toolCall.name: run_shell_command, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=undefined, decision=allow, priority=1.999, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle YOLO mode correctly [PolicyEngine.check] toolCall.name: write_file, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=undefined, decision=allow, priority=1.999, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle YOLO mode correctly [PolicyEngine.check] toolCall.name: unknown_tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=undefined, decision=allow, priority=1.999, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle YOLO mode correctly [PolicyEngine.check] toolCall.name: dangerous-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=dangerous-tool, decision=deny, priority=2.4, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle AUTO_EDIT mode correctly [PolicyEngine.check] toolCall.name: replace, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=replace, decision=allow, priority=1.015, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle AUTO_EDIT mode correctly [PolicyEngine.check] toolCall.name: write_file, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=write_file, decision=allow, priority=1.015, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle AUTO_EDIT mode correctly [PolicyEngine.check] toolCall.name: run_shell_command, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=run_shell_command, decision=ask_user, priority=1.01, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify priority ordering works correctly in practice [PolicyEngine.check] toolCall.name: blocked-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=blocked-tool, decision=deny, priority=2.4, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify priority ordering works correctly in practice [PolicyEngine.check] toolCall.name: blocked-server__any, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=blocked-server__*, decision=deny, priority=2.9, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify priority ordering works correctly in practice [PolicyEngine.check] toolCall.name: specific-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=specific-tool, decision=allow, priority=2.3, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify priority ordering works correctly in practice [PolicyEngine.check] toolCall.name: trusted-server__any, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=trusted-server__*, decision=allow, priority=2.2, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify priority ordering works correctly in practice [PolicyEngine.check] toolCall.name: mcp-server__any, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=mcp-server__*, decision=allow, priority=2.1, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify priority ordering works correctly in practice [PolicyEngine.check] toolCall.name: glob, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=glob, decision=allow, priority=1.05, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle edge case: MCP server with both trust and exclusion [PolicyEngine.check] toolCall.name: conflicted-server__tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=conflicted-server__*, decision=deny, priority=2.9, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle edge case: specific tool allowed but server excluded [PolicyEngine.check] toolCall.name: my-server__special-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=my-server__*, decision=deny, priority=2.9, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle edge case: specific tool allowed but server excluded [PolicyEngine.check] toolCall.name: my-server__other-tool, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=my-server__*, decision=deny, priority=2.9, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify non-interactive mode transformation [PolicyEngine.check] toolCall.name: unknown_tool, stringifiedArgs: undefined [PolicyEngine.check] NO MATCH - using default decision: ask_user stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should verify non-interactive mode transformation [PolicyEngine.check] toolCall.name: run_shell_command, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=run_shell_command, decision=ask_user, priority=1.01, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle empty settings gracefully [PolicyEngine.check] toolCall.name: write_file, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=write_file, decision=ask_user, priority=1.01, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle empty settings gracefully [PolicyEngine.check] toolCall.name: replace, stringifiedArgs: undefined [PolicyEngine.check] MATCHED rule: toolName=replace, decision=ask_user, priority=1.01, argsPattern=none stdout | src/config/policy-engine.integration.test.ts > Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should handle empty settings gracefully [PolicyEngine.check] toolCall.name: unknown, stringifiedArgs: undefined [PolicyEngine.check] NO MATCH - using default decision: ask_user โœ“ src/config/policy-engine.integration.test.ts (12 tests) 308ms โœ“ src/config/extensions/extensionSettings.test.ts (17 tests) 131ms โœ“ src/config/settingsSchema.test.ts (17 tests) 108ms โœ“ src/ui/components/Composer.test.tsx (20 tests) 831ms (node:2676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 mcp-client-update listeners added to [EventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/components/Composer.test.tsx An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act โœ“ src/utils/sandbox.test.ts (7 tests) 251ms stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | ../../node_modules/react-reconciler/cjs/react-reconciler.development.js:13614:19 An update to Spinner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act โœ“ src/ui/hooks/useSessionResume.test.ts (12 tests) 165ms โœ“ src/config/trustedFolders.test.ts (21 tests) 79ms โœ“ src/ui/hooks/usePhraseCycler.test.tsx (13 tests) 757ms โœ“ src/ui/contexts/ScrollProvider.test.tsx (9 tests) 297ms โœ“ src/utils/handleAutoUpdate.test.ts (19 tests) 99ms โœ“ src/ui/components/StatsDisplay.test.tsx (13 tests) 1448ms โœ“ > renders only the Performance section in its zero state 413ms โœ“ src/services/CommandService.test.ts (11 tests) 68ms โœ“ src/ui/hooks/usePermissionsModifyTrust.test.ts (13 tests) 184ms โœ“ src/ui/components/shared/MaxSizedBox.test.tsx (21 tests) 670ms stderr | src/ui/auth/AuthDialog.test.tsx > AuthDialog > handleAuthSelect > exits process for Login with Google when browser is suppressed An update to AuthDialog inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act โœ“ src/ui/auth/AuthDialog.test.tsx (21 tests) 1531ms โœ“ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'in Cloud Shell' 352ms โฏ src/ui/components/messages/ToolGroupMessage.test.tsx (17 tests | 2 failed) 2577ms โœ“ > Golden Snapshots > renders single successful tool call 515ms โœ“ > Golden Snapshots > renders multiple tool calls with different statuses 333ms ร— > Golden Snapshots > renders tool call awaiting confirmation 298ms โ†’ Snapshot ` > Golden Snapshots > renders tool call awaiting confirmation 1` mismatched โœ“ > Golden Snapshots > renders shell command with yellow border 61ms โœ“ > Golden Snapshots > renders mixed tool calls including shell command 143ms โœ“ > Golden Snapshots > renders with limited terminal height 118ms โœ“ > Golden Snapshots > renders when not focused 65ms โœ“ > Golden Snapshots > renders with narrow terminal width 81ms โœ“ > Golden Snapshots > renders empty tool calls array 11ms โœ“ > Golden Snapshots > renders header when scrolled 147ms โœ“ > Golden Snapshots > renders tool call with outputFile 79ms โœ“ > Golden Snapshots > renders two tool groups where only the last line of the previous group is visible 190ms โœ“ > Border Color Logic > uses yellow border when tools are pending 53ms โœ“ > Border Color Logic > uses yellow border for shell commands even when successful 54ms โœ“ > Border Color Logic > uses gray border when all tools are successful and no shell commands 92ms โœ“ > Height Calculation > calculates available height correctly with multiple tools with results 151ms ร— > Confirmation Handling > shows confirmation dialog for first confirming tool only 178ms โ†’ Snapshot ` > Confirmation Handling > shows confirmation dialog for first confirming tool only 1` mismatched โœ“ src/config/extensions/github.test.ts (26 tests) 332ms โœ“ src/utils/installationInfo.test.ts (16 tests) 63ms stdout | src/commands/mcp/add.test.ts > mcp add command > should add a stdio server to project settings MCP server "my-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > should handle multiple env vars before positional args MCP server "my-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > should add an sse server to user settings MCP server "sse-server" added to user settings. (sse) stdout | src/commands/mcp/add.test.ts > mcp add command > should add an http server to project settings MCP server "http-server" added to project settings. (http) stdout | src/commands/mcp/add.test.ts > mcp add command > should handle MCP server args with -- separator MCP server "my-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > should handle unknown options as MCP server args MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use project scope when --scope=project is used MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use user scope when --scope=user is used MCP server "test-server" added to user settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of a project > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in the home directory > should use user scope when --scope=user is used MCP server "test-server" added to user settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of home (not a project) > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of home (not a project) > should write to the WORKSPACE scope, not the USER scope MCP server "my-new-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when outside of home (not a project) > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when updating an existing server > should update the existing server in the project scope MCP server "existing-server" is already configured within project settings. MCP server "existing-server" updated in project settings. stdout | src/commands/mcp/add.test.ts > mcp add command > when updating an existing server > should update the existing server in the user scope MCP server "existing-server" is already configured within user settings. MCP server "existing-server" updated in user settings. โœ“ src/commands/mcp/add.test.ts (18 tests) 488ms โฏ src/ui/components/shared/ScrollableList.test.tsx (3 tests | 3 failed) 1846ms ร— ScrollableList Demo Behavior > should scroll to bottom when new items are added and stop when scrolled up 738ms โ†’ expected '\n โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ€ฆ' to contain 'Item 1002' ร— ScrollableList Demo Behavior > should display sticky header when scrolled past the item 1070ms โ†’ expected '\n\n\n\n\n\n\n\n\n' to contain '[Normal] Item 1' ร— ScrollableList Demo Behavior > Keyboard Navigation > should handle scroll keys correctly 32ms โ†’ expected '\n\n\n\n\n\n\n\n\n' to contain 'Item 0' โœ“ src/utils/commentJson.test.ts (12 tests) 87ms โœ“ src/ui/commands/directoryCommand.test.tsx (13 tests) 91ms โœ“ src/ui/commands/memoryCommand.test.ts (10 tests) 116ms stdout | src/ui/commands/setupGithubCommand.test.ts > setupGithubCommand > throws an error when download fails Failed to download required setup files: Error: Invalid response code downloading https://raw.githubusercontent.com/google-github-actions/run-gemini-cli/refs/tags/v1.2.3/examples/workflows/gemini-dispatch/gemini-dispatch.yml: 404 - Not Found at /build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:131:17 at async Promise.all (index 0) at downloadFiles (/build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:158:3) at async Promise.all (index 0) at downloadSetupFiles (/build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:184:5) at Object.action (/build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:240:5) at /build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.test.ts:215:5 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 stdout | src/ui/commands/setupGithubCommand.test.ts > updateGitignore > handles file system errors gracefully Failed to update .gitignore: Error: ENOENT: no such file or directory, open '/tmp/update-gitignore-0KtHZc/non-existent/.gitignore'  at open (node:internal/fs/promises:641:25)  at Object.writeFile (node:internal/fs/promises:1249:14) at Module.updateGitignore (/build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:82:7) at /build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.test.ts:318:5 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 { errno: -2, code: 'ENOENT', syscall: 'open', path: '/tmp/update-gitignore-0KtHZc/non-existent/.gitignore' } โœ“ src/ui/commands/setupGithubCommand.test.ts (10 tests) 334ms โฏ src/ui/components/Footer.test.tsx (21 tests | 3 failed) 935ms โœ“