2026-10-25T00:47:12.1967649Z Current runner version: '2.338.1' 2026-10-25T00:47:12.1971456Z Runner name: 'blacksmith-8vcpu-ubuntu-2404-zw7xuqtydmcvwggs' 2026-10-25T00:47:12.1972154Z Runner group name: 'blacksmith scale sets - blacksmith-8vcpu-ubuntu-2404' 2026-10-25T00:47:12.1972998Z Machine name: 'ip-172-31-73-130' 2026-10-25T00:47:12.1974586Z ##[group]GITHUB_TOKEN Permissions 2026-10-25T00:47:12.1975913Z Contents: read 2026-10-25T00:47:12.1976387Z Metadata: read 2026-10-25T00:47:12.1976864Z ##[endgroup] 2026-10-25T00:47:12.1978550Z Secret source: None 2026-10-25T00:47:12.1979260Z Cache mode: write 2026-10-25T00:47:12.1979867Z Prepare workflow directory 2026-10-25T00:47:12.2165421Z Prepare all required actions 2026-10-25T00:47:12.2192052Z Getting action download info 2026-10-25T00:47:12.3526963Z Download action repository 'actions/checkout@v6' (SHA:d23441a48e516b6c34aea4fa41551a30e30af803) 2026-10-25T00:47:12.4002629Z Download action repository 'actions/cache@v6' (SHA:55cc8345863c7cc4c66a329aec7e433d2d1c52a9) 2026-10-25T00:47:12.5130821Z Setting BLACKSMITH_ACTIONS_RESULTS_URL to https://results-receiver.actions.githubusercontent.com/ 2026-10-25T00:47:12.5170815Z Complete job name: Build and Typecheck 2026-10-25T00:47:12.5566647Z A job started hook has been configured by the self-hosted runner administrator 2026-10-25T00:47:12.5647126Z ##[group]Run '/setup.sh' 2026-10-25T00:47:12.5661051Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} 2026-10-25T00:47:12.5661461Z env: 2026-10-25T00:47:12.5661687Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:12.5661975Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:12.5662254Z BLACKSMITH_CHECK_RUN_ID: 121033503583 2026-10-25T00:47:12.5662557Z BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck 2026-10-25T00:47:12.5662867Z GITHUB_ACTIONS_CACHE_MODE: write 2026-10-25T00:47:12.5663127Z ##[endgroup] 2026-10-25T00:47:12.5905701Z Logging daemon started (blacksmithd for logs) 2026-10-25T00:47:12.6030737Z Results daemon started (blacksmithd for results) 2026-10-25T00:47:12.6181064Z Background adoption and SSH setup started (PID: 3158) 2026-10-25T00:47:12.6182737Z 2026-10-25T00:47:12.6183485Z ---------------------------------------- 2026-10-25T00:47:12.6184046Z View this job: https://app.blacksmith.sh/pingdotgg/runs/40147550232/jobs/121033503583 2026-10-25T00:47:12.6184460Z SSH Access (using your GitHub SSH key): 2026-10-25T00:47:12.6184893Z ssh -p 64001 runner@blacksmith-8vcpu-ubuntu-2404-zw7xuqtydmcvwggs.vm.blacksmith.sh 2026-10-25T00:47:12.6185206Z 2026-10-25T00:47:12.6185318Z No GitHub SSH key? Add one at: 2026-10-25T00:47:12.6185808Z https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account 2026-10-25T00:47:12.6186204Z 2026-10-25T00:47:12.6186310Z ---------------------------------------- 2026-10-25T00:47:12.6186485Z 2026-10-25T00:47:12.6186630Z VM ID: blacksmith-8vcpu-ubuntu-2404-zw7xuqtydmcvwggs 2026-10-25T00:47:12.6186951Z Host: production-152.236.46.151-x8664 2026-10-25T00:47:12.6187221Z Host Agent PID: 754644 2026-10-25T00:47:12.6187522Z Host Agent Git SHA: 1637818df 2026-10-25T00:47:12.6187788Z Host CPU Manufacturer: AuthenticAMD 2026-10-25T00:47:12.6188066Z Blacksmith Host Generation: gen 2 2026-10-25T00:47:12.6188443Z Petname: production-sound-pipefish-0ba3a8ac 2026-10-25T00:47:12.6188736Z Region: us-east 2026-10-25T00:47:12.6188974Z Rootfs Version: ubuntu24-full-x64-081926 2026-10-25T00:47:12.6196568Z OS Version: Ubuntu 24.04.4 LTS 2026-10-25T00:47:12.6196930Z 2026-10-25T00:47:12.6197149Z Enabling Blacksmith transparent cache 2026-10-25T00:47:12.6499056Z ##[group]Run actions/checkout@v6 2026-10-25T00:47:12.6499405Z with: 2026-10-25T00:47:12.6499755Z sparse-checkout: /* !/.repos/ !/apps/mobile/modules/t3-terminal/Vendor/**/*.a 2026-10-25T00:47:12.6500218Z sparse-checkout-cone-mode: false 2026-10-25T00:47:12.6500497Z repository: pingdotgg/t3code 2026-10-25T00:47:12.6502349Z token: *** 2026-10-25T00:47:12.6502565Z ssh-strict: true 2026-10-25T00:47:12.6502783Z ssh-user: git 2026-10-25T00:47:12.6503275Z persist-credentials: true 2026-10-25T00:47:12.6503521Z clean: true 2026-10-25T00:47:12.6503733Z fetch-depth: 1 2026-10-25T00:47:12.6504019Z fetch-tags: false 2026-10-25T00:47:12.6504245Z show-progress: true 2026-10-25T00:47:12.6504467Z lfs: false 2026-10-25T00:47:12.6504678Z submodules: false 2026-10-25T00:47:12.6504906Z set-safe-directory: true 2026-10-25T00:47:12.6505162Z allow-unsafe-pr-checkout: false 2026-10-25T00:47:12.6505420Z env: 2026-10-25T00:47:12.6505662Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:12.6505949Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:12.6506237Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:12.6506500Z ##[endgroup] 2026-10-25T00:47:12.7802736Z Syncing repository: pingdotgg/t3code 2026-10-25T00:47:12.7803864Z ##[group]Getting Git version info 2026-10-25T00:47:12.7804202Z Working directory is '/home/runner/_work/t3code/t3code' 2026-10-25T00:47:12.7804698Z [command]/usr/local/bin/git version 2026-10-25T00:47:12.7874352Z git version 2.55.0 2026-10-25T00:47:12.7885293Z ##[endgroup] 2026-10-25T00:47:12.7891781Z Temporarily overriding HOME='/home/runner/_work/_temp/2373b335-fab1-452d-89f4-b81b3fb886c5' before making global git config changes 2026-10-25T00:47:12.7892426Z Adding repository directory to the temporary git global config as a safe directory 2026-10-25T00:47:12.7895081Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code 2026-10-25T00:47:12.7928831Z Deleting the contents of '/home/runner/_work/t3code/t3code' 2026-10-25T00:47:12.7930744Z ##[group]Determining repository object format 2026-10-25T00:47:12.7931852Z ##[endgroup] 2026-10-25T00:47:12.7932315Z ##[group]Initializing the repository 2026-10-25T00:47:12.7934191Z [command]/usr/local/bin/git init /home/runner/_work/t3code/t3code 2026-10-25T00:47:12.7971894Z hint: Using 'master' as the name for the initial branch. This default branch name 2026-10-25T00:47:12.7972540Z hint: will change to "main" in Git 3.0. To configure the initial branch name 2026-10-25T00:47:12.7973101Z hint: to use in all of your new repositories, which will suppress this warning, 2026-10-25T00:47:12.7973463Z hint: call: 2026-10-25T00:47:12.7973671Z hint: 2026-10-25T00:47:12.7973946Z hint: git config --global init.defaultBranch 2026-10-25T00:47:12.7974254Z hint: 2026-10-25T00:47:12.7974660Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and 2026-10-25T00:47:12.7975240Z hint: 'development'. The just-created branch can be renamed via this command: 2026-10-25T00:47:12.7975609Z hint: 2026-10-25T00:47:12.7975823Z hint: git branch -m 2026-10-25T00:47:12.7976066Z hint: 2026-10-25T00:47:12.7976379Z hint: Disable this message with "git config set advice.defaultBranchName false" 2026-10-25T00:47:12.7976855Z Initialized empty Git repository in /home/runner/_work/t3code/t3code/.git/ 2026-10-25T00:47:12.7977820Z [command]/usr/local/bin/git remote add origin https://github.com/pingdotgg/t3code 2026-10-25T00:47:12.8005594Z ##[endgroup] 2026-10-25T00:47:12.8006000Z ##[group]Disabling automatic garbage collection 2026-10-25T00:47:12.8008210Z [command]/usr/local/bin/git config --local gc.auto 0 2026-10-25T00:47:12.8031423Z ##[endgroup] 2026-10-25T00:47:12.8031910Z ##[group]Setting up auth 2026-10-25T00:47:12.8032271Z Removing SSH command configuration 2026-10-25T00:47:12.8035528Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand 2026-10-25T00:47:12.8061846Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" 2026-10-25T00:47:12.8201730Z Removing HTTP extra header 2026-10-25T00:47:12.8204609Z [command]/usr/local/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader 2026-10-25T00:47:12.8229380Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" 2026-10-25T00:47:12.8340123Z Removing includeIf entries pointing to credentials config files 2026-10-25T00:47:12.8343354Z [command]/usr/local/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: 2026-10-25T00:47:12.8367191Z [command]/usr/local/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url 2026-10-25T00:47:12.8483809Z [command]/usr/local/bin/git config --file /home/runner/_work/_temp/git-credentials-2cf4d171-8ab9-4772-9fb2-db71d5994693.config http.https://github.com/.extraheader AUTHORIZATION: basic *** 2026-10-25T00:47:12.8510035Z [command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git.path /home/runner/_work/_temp/git-credentials-2cf4d171-8ab9-4772-9fb2-db71d5994693.config 2026-10-25T00:47:12.8531582Z [command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git/worktrees/*.path /home/runner/_work/_temp/git-credentials-2cf4d171-8ab9-4772-9fb2-db71d5994693.config 2026-10-25T00:47:12.8551612Z [command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-2cf4d171-8ab9-4772-9fb2-db71d5994693.config 2026-10-25T00:47:12.8572620Z [command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-2cf4d171-8ab9-4772-9fb2-db71d5994693.config 2026-10-25T00:47:12.8591350Z ##[endgroup] 2026-10-25T00:47:12.8591711Z ##[group]Fetching the repository 2026-10-25T00:47:12.8596134Z [command]/usr/local/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --filter=blob:none --depth=1 origin +31caebd723704caeee6f7e10eb6db896065fe6d5:refs/remotes/pull/24356/merge 2026-10-25T00:47:13.1526955Z From https://github.com/pingdotgg/t3code 2026-10-25T00:47:13.1527650Z * [new ref] 31caebd723704caeee6f7e10eb6db896065fe6d5 -> pull/24356/merge 2026-10-25T00:47:13.1622299Z ##[endgroup] 2026-10-25T00:47:13.1622846Z ##[group]Determining the checkout info 2026-10-25T00:47:13.1623530Z ##[endgroup] 2026-10-25T00:47:13.1623984Z ##[group]Setting up sparse checkout 2026-10-25T00:47:13.1624483Z [command]/usr/local/bin/git config core.sparseCheckout true 2026-10-25T00:47:13.1625523Z [command]/usr/local/bin/git rev-parse --git-path info/sparse-checkout 2026-10-25T00:47:13.1626035Z .git/info/sparse-checkout 2026-10-25T00:47:13.1626874Z ##[endgroup] 2026-10-25T00:47:13.1627356Z ##[group]Checking out the ref 2026-10-25T00:47:13.1627939Z [command]/usr/local/bin/git checkout --progress --force refs/remotes/pull/24356/merge 2026-10-25T00:47:19.8981614Z Updating files: 0% (1/6432) 2026-10-25T00:47:19.9013599Z Updating files: 1% (65/6432) 2026-10-25T00:47:19.9029924Z Updating files: 2% (129/6432) 2026-10-25T00:47:19.9052959Z Updating files: 3% (193/6432) 2026-10-25T00:47:19.9075284Z Updating files: 4% (258/6432) 2026-10-25T00:47:19.9107789Z Updating files: 5% (322/6432) 2026-10-25T00:47:19.9131710Z Updating files: 6% (386/6432) 2026-10-25T00:47:19.9189458Z Updating files: 7% (451/6432) 2026-10-25T00:47:19.9235298Z Updating files: 8% (515/6432) 2026-10-25T00:47:19.9346763Z Updating files: 9% (579/6432) 2026-10-25T00:47:19.9583056Z Updating files: 10% (644/6432) 2026-10-25T00:47:19.9672984Z Updating files: 11% (708/6432) 2026-10-25T00:47:19.9686506Z Updating files: 12% (772/6432) 2026-10-25T00:47:19.9699871Z Updating files: 13% (837/6432) 2026-10-25T00:47:19.9717895Z Updating files: 14% (901/6432) 2026-10-25T00:47:19.9737060Z Updating files: 15% (965/6432) 2026-10-25T00:47:19.9755816Z Updating files: 16% (1030/6432) 2026-10-25T00:47:19.9773089Z Updating files: 17% (1094/6432) 2026-10-25T00:47:19.9793414Z Updating files: 18% (1158/6432) 2026-10-25T00:47:19.9809293Z Updating files: 19% (1223/6432) 2026-10-25T00:47:19.9827429Z Updating files: 20% (1287/6432) 2026-10-25T00:47:19.9852739Z Updating files: 21% (1351/6432) 2026-10-25T00:47:19.9872002Z Updating files: 22% (1416/6432) 2026-10-25T00:47:19.9888193Z Updating files: 23% (1480/6432) 2026-10-25T00:47:19.9903235Z Updating files: 24% (1544/6432) 2026-10-25T00:47:19.9917714Z Updating files: 25% (1608/6432) 2026-10-25T00:47:19.9935312Z Updating files: 26% (1673/6432) 2026-10-25T00:47:19.9949863Z Updating files: 27% (1737/6432) 2026-10-25T00:47:19.9971239Z Updating files: 28% (1801/6432) 2026-10-25T00:47:20.0002375Z Updating files: 29% (1866/6432) 2026-10-25T00:47:20.0024680Z Updating files: 30% (1930/6432) 2026-10-25T00:47:20.0052276Z Updating files: 31% (1994/6432) 2026-10-25T00:47:20.0083165Z Updating files: 32% (2059/6432) 2026-10-25T00:47:20.0113962Z Updating files: 33% (2123/6432) 2026-10-25T00:47:20.0186410Z Updating files: 34% (2187/6432) 2026-10-25T00:47:20.0244373Z Updating files: 35% (2252/6432) 2026-10-25T00:47:20.0281494Z Updating files: 36% (2316/6432) 2026-10-25T00:47:20.0320960Z Updating files: 37% (2380/6432) 2026-10-25T00:47:20.0365595Z Updating files: 38% (2445/6432) 2026-10-25T00:47:20.0394881Z Updating files: 39% (2509/6432) 2026-10-25T00:47:20.0427374Z Updating files: 40% (2573/6432) 2026-10-25T00:47:20.0457444Z Updating files: 41% (2638/6432) 2026-10-25T00:47:20.0475189Z Updating files: 42% (2702/6432) 2026-10-25T00:47:20.0487007Z Updating files: 43% (2766/6432) 2026-10-25T00:47:20.0504005Z Updating files: 44% (2831/6432) 2026-10-25T00:47:20.0539649Z Updating files: 45% (2895/6432) 2026-10-25T00:47:20.0565767Z Updating files: 46% (2959/6432) 2026-10-25T00:47:20.0595506Z Updating files: 47% (3024/6432) 2026-10-25T00:47:20.0625150Z Updating files: 48% (3088/6432) 2026-10-25T00:47:20.0657013Z Updating files: 49% (3152/6432) 2026-10-25T00:47:20.0696950Z Updating files: 50% (3216/6432) 2026-10-25T00:47:20.0713267Z Updating files: 51% (3281/6432) 2026-10-25T00:47:20.0751478Z Updating files: 52% (3345/6432) 2026-10-25T00:47:20.0777459Z Updating files: 53% (3409/6432) 2026-10-25T00:47:20.0798831Z Updating files: 54% (3474/6432) 2026-10-25T00:47:20.0824915Z Updating files: 55% (3538/6432) 2026-10-25T00:47:20.0845004Z Updating files: 56% (3602/6432) 2026-10-25T00:47:20.0863403Z Updating files: 57% (3667/6432) 2026-10-25T00:47:20.0883441Z Updating files: 58% (3731/6432) 2026-10-25T00:47:20.1259546Z Updating files: 59% (3795/6432) 2026-10-25T00:47:20.1277537Z Updating files: 60% (3860/6432) 2026-10-25T00:47:20.1299750Z Updating files: 61% (3924/6432) 2026-10-25T00:47:20.1321966Z Updating files: 62% (3988/6432) 2026-10-25T00:47:20.1348028Z Updating files: 63% (4053/6432) 2026-10-25T00:47:20.1378183Z Updating files: 64% (4117/6432) 2026-10-25T00:47:20.1399246Z Updating files: 65% (4181/6432) 2026-10-25T00:47:20.1418027Z Updating files: 66% (4246/6432) 2026-10-25T00:47:20.1442779Z Updating files: 67% (4310/6432) 2026-10-25T00:47:20.1457282Z Updating files: 68% (4374/6432) 2026-10-25T00:47:20.1477053Z Updating files: 69% (4439/6432) 2026-10-25T00:47:20.1489423Z Updating files: 70% (4503/6432) 2026-10-25T00:47:20.1509426Z Updating files: 71% (4567/6432) 2026-10-25T00:47:20.1523698Z Updating files: 72% (4632/6432) 2026-10-25T00:47:20.1572609Z Updating files: 73% (4696/6432) 2026-10-25T00:47:20.1859495Z Updating files: 74% (4760/6432) 2026-10-25T00:47:20.1994021Z Updating files: 74% (4810/6432) 2026-10-25T00:47:20.2022075Z Updating files: 75% (4824/6432) 2026-10-25T00:47:20.2044843Z Updating files: 76% (4889/6432) 2026-10-25T00:47:20.2068924Z Updating files: 77% (4953/6432) 2026-10-25T00:47:20.2093466Z Updating files: 78% (5017/6432) 2026-10-25T00:47:20.2111331Z Updating files: 79% (5082/6432) 2026-10-25T00:47:20.2134770Z Updating files: 80% (5146/6432) 2026-10-25T00:47:20.2152557Z Updating files: 81% (5210/6432) 2026-10-25T00:47:20.2172130Z Updating files: 82% (5275/6432) 2026-10-25T00:47:20.2198065Z Updating files: 83% (5339/6432) 2026-10-25T00:47:20.2221196Z Updating files: 84% (5403/6432) 2026-10-25T00:47:20.2240548Z Updating files: 85% (5468/6432) 2026-10-25T00:47:20.2266921Z Updating files: 86% (5532/6432) 2026-10-25T00:47:20.2341680Z Updating files: 87% (5596/6432) 2026-10-25T00:47:20.2373238Z Updating files: 88% (5661/6432) 2026-10-25T00:47:20.2395040Z Updating files: 89% (5725/6432) 2026-10-25T00:47:20.2426731Z Updating files: 90% (5789/6432) 2026-10-25T00:47:20.2456091Z Updating files: 91% (5854/6432) 2026-10-25T00:47:20.2471536Z Updating files: 92% (5918/6432) 2026-10-25T00:47:20.2494881Z Updating files: 93% (5982/6432) 2026-10-25T00:47:20.2516399Z Updating files: 94% (6047/6432) 2026-10-25T00:47:20.2541030Z Updating files: 95% (6111/6432) 2026-10-25T00:47:20.2602524Z Updating files: 96% (6175/6432) 2026-10-25T00:47:20.2626786Z Updating files: 97% (6240/6432) 2026-10-25T00:47:20.2674916Z Updating files: 98% (6304/6432) 2026-10-25T00:47:20.2695755Z Updating files: 99% (6368/6432) 2026-10-25T00:47:20.2695977Z Updating files: 100% (6432/6432) 2026-10-25T00:47:20.2696169Z Updating files: 100% (6432/6432), done. 2026-10-25T00:47:20.2858401Z Note: switching to 'refs/remotes/pull/24356/merge'. 2026-10-25T00:47:20.2858574Z 2026-10-25T00:47:20.2858715Z You are in 'detached HEAD' state. You can look around, make experimental 2026-10-25T00:47:20.2858997Z changes and commit them, and you can discard any commits you make in this 2026-10-25T00:47:20.2859280Z state without impacting any branches by switching back to a branch. 2026-10-25T00:47:20.2859431Z 2026-10-25T00:47:20.2859557Z If you want to create a new branch to retain commits you create, you may 2026-10-25T00:47:20.2859826Z do so (now or later) by using -c with the switch command. Example: 2026-10-25T00:47:20.2859969Z 2026-10-25T00:47:20.2860055Z git switch -c 2026-10-25T00:47:20.2860164Z 2026-10-25T00:47:20.2860243Z Or undo this operation with: 2026-10-25T00:47:20.2860348Z 2026-10-25T00:47:20.2860425Z git switch - 2026-10-25T00:47:20.2860510Z 2026-10-25T00:47:20.2860648Z Turn off this advice by setting config variable advice.detachedHead to false 2026-10-25T00:47:20.2860811Z 2026-10-25T00:47:20.2861021Z HEAD is now at 31caebd Merge 29ae8e2f73c470653a3786934148fcab60125965 into 91ea0e18ebe2db81752bad7f0d4fa70a66d7562b 2026-10-25T00:47:20.2872141Z ##[endgroup] 2026-10-25T00:47:20.2907279Z [command]/usr/local/bin/git log -1 --format=%H 2026-10-25T00:47:20.2925584Z 31caebd723704caeee6f7e10eb6db896065fe6d5 2026-10-25T00:47:20.3061833Z Prepare all required actions 2026-10-25T00:47:20.3115146Z ##[group]Run ./.github/actions/setup-apt-mirrors 2026-10-25T00:47:20.3115346Z env: 2026-10-25T00:47:20.3115487Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:20.3115660Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:20.3115835Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:20.3115994Z ##[endgroup] 2026-10-25T00:47:20.3156368Z ##[start-action display=Run # Replace the existing Blacksmith mirror list as well as direct sources.;id=__self.__run] 2026-10-25T00:47:20.3174886Z ##[group]Run # Replace the existing Blacksmith mirror list as well as direct sources. 2026-10-25T00:47:20.3175255Z # Replace the existing Blacksmith mirror list as well as direct sources. 2026-10-25T00:47:20.3175491Z printf '%s\tpriority:%s\n' \ 2026-10-25T00:47:20.3175695Z  https://archive.ubuntu.com/ubuntu 1 \ 2026-10-25T00:47:20.3175935Z  https://mirrors.edge.kernel.org/ubuntu 2 \ 2026-10-25T00:47:20.3176158Z  https://mirror.math.princeton.edu/pub/ubuntu 3 \ 2026-10-25T00:47:20.3176406Z  | sudo tee /etc/apt/blacksmith-ubuntu-mirrors.txt > /dev/null 2026-10-25T00:47:20.3196245Z  2026-10-25T00:47:20.3196459Z # APT's mirror transport retries each file against the next server. 2026-10-25T00:47:20.3196767Z sudo find /etc/apt -maxdepth 2 -type f \( -name '*.list' -o -name '*.sources' \) \ 2026-10-25T00:47:20.3197017Z  -exec sed -i -E \ 2026-10-25T00:47:20.3197466Z  's#https?://(([^/]+\.)?archive|security)\.ubuntu\.com/ubuntu/?#mirror+file:/etc/apt/blacksmith-ubuntu-mirrors.txt#g' {} + 2026-10-25T00:47:20.3197749Z  2026-10-25T00:47:20.3197934Z # Move on to a fallback before an unreachable server exhausts the job. 2026-10-25T00:47:20.3198210Z printf '%s\n' 'Acquire::http::Timeout "15";' 'Acquire::https::Timeout "15";' \ 2026-10-25T00:47:20.3198578Z  | sudo tee /etc/apt/apt.conf.d/80-mirror-timeouts > /dev/null 2026-10-25T00:47:20.3216179Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} 2026-10-25T00:47:20.3216382Z env: 2026-10-25T00:47:20.3216528Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:20.3216700Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:20.3216871Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:20.3217044Z ##[endgroup] 2026-10-25T00:47:20.3492271Z ##[end-action id=__self.__run;outcome=success;conclusion=success;duration_ms=33] 2026-10-25T00:47:20.3518807Z ##[group]Run sudo sed -i 's|http://|https://|g' /etc/apt/blacksmith-ubuntu-mirrors.txt /etc/apt/sources.list.d/ubuntu.sources 2026-10-25T00:47:20.3519258Z sudo sed -i 's|http://|https://|g' /etc/apt/blacksmith-ubuntu-mirrors.txt /etc/apt/sources.list.d/ubuntu.sources 2026-10-25T00:47:20.3519540Z ( 2026-10-25T00:47:20.3519671Z  set +e 2026-10-25T00:47:20.3519875Z  sudo apt-get update && sudo apt-get install -y libsecret-1-dev pkg-config 2026-10-25T00:47:20.3520115Z  echo "$?" > "$RUNNER_TEMP/apt-status" 2026-10-25T00:47:20.3520309Z ) > "$RUNNER_TEMP/apt.log" 2>&1 < /dev/null & 2026-10-25T00:47:20.3536312Z shell: /usr/bin/bash -e {0} 2026-10-25T00:47:20.3536467Z env: 2026-10-25T00:47:20.3536611Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:20.3536785Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:20.3536953Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:20.3537112Z ##[endgroup] 2026-10-25T00:47:20.3683962Z Prepare all required actions 2026-10-25T00:47:20.3684298Z Getting action download info 2026-10-25T00:47:20.4736438Z Download action repository 'voidzero-dev/setup-vp@v1' (SHA:250f29ce396baf5e8f24498e17c0dfdebabc26eb) 2026-10-25T00:47:20.5630461Z ##[group]Run ./.github/actions/setup-ci-deps 2026-10-25T00:47:20.5630664Z env: 2026-10-25T00:47:20.5630811Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:20.5631060Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:20.5631323Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:20.5631607Z ##[endgroup] 2026-10-25T00:47:20.5724795Z ##[start-action display=Resolve Vite+ version;id=__self_2.vp] 2026-10-25T00:47:20.5739202Z ##[group]Run echo "version=$(sed -nE 's/^ vite-plus: ([0-9][^ ]*)$/\1/p' pnpm-workspace.yaml)" >> "$GITHUB_OUTPUT" 2026-10-25T00:47:20.5739579Z echo "version=$(sed -nE 's/^ vite-plus: ([0-9][^ ]*)$/\1/p' pnpm-workspace.yaml)" >> "$GITHUB_OUTPUT" 2026-10-25T00:47:20.5739912Z echo "node=$(jq -r '.engines.node' package.json)" >> "$GITHUB_OUTPUT" 2026-10-25T00:47:20.5740192Z echo "pnpm=$(jq -r '.packageManager' package.json)" >> "$GITHUB_OUTPUT" 2026-10-25T00:47:20.5759911Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} 2026-10-25T00:47:20.5760113Z env: 2026-10-25T00:47:20.5760261Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:20.5760437Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:20.5760664Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:20.5760831Z ##[endgroup] 2026-10-25T00:47:20.5844857Z ##[end-action id=__self_2.vp;outcome=success;conclusion=success;duration_ms=11] 2026-10-25T00:47:20.5846824Z ##[start-action display=Cache Vite+;id=__self_2.vp_cache] 2026-10-25T00:47:20.5908514Z ##[group]Run actions/cache@v6 2026-10-25T00:47:20.5908686Z with: 2026-10-25T00:47:20.5908820Z path: ~/.vite-plus 2026-10-25T00:47:20.5909019Z key: vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0 2026-10-25T00:47:20.5909247Z enableCrossOsArchive: false 2026-10-25T00:47:20.5909584Z fail-on-cache-miss: false 2026-10-25T00:47:20.5909735Z lookup-only: false 2026-10-25T00:47:20.5909874Z save-always: false 2026-10-25T00:47:20.5910015Z env: 2026-10-25T00:47:20.5910152Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:20.5910331Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:20.5910503Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:20.5910666Z ##[endgroup] 2026-10-25T00:47:21.1125068Z Cache hit for: vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0 2026-10-25T00:47:21.5091504Z Received 170349591 of 170349591 (100.0%), 433.2 MBs/sec 2026-10-25T00:47:21.5092022Z Cache Size: ~162 MB (170349591 B) 2026-10-25T00:47:21.5125633Z [command]/usr/bin/tar -xf /home/runner/_work/_temp/508cc0ff-6dc9-4d6c-901d-618c0b86a8ad/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd 2026-10-25T00:47:22.3196571Z Cache restored successfully 2026-10-25T00:47:22.3347417Z Cache restored from key: vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0 2026-10-25T00:47:22.3441054Z ##[end-action id=__self_2.vp_cache;outcome=success;conclusion=success;duration_ms=1759] 2026-10-25T00:47:22.3443581Z ##[start-action display=Use cached Vite+;id=__self_2.__run] 2026-10-25T00:47:22.3467186Z ##[group]Run echo "$HOME/.vite-plus/bin" >> "$GITHUB_PATH" 2026-10-25T00:47:22.3467417Z echo "$HOME/.vite-plus/bin" >> "$GITHUB_PATH" 2026-10-25T00:47:22.3467599Z "$HOME/.vite-plus/bin/vp" env use "26.12.1" 2026-10-25T00:47:22.3486346Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} 2026-10-25T00:47:22.3486516Z env: 2026-10-25T00:47:22.3486641Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:22.3486799Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:22.3486958Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:22.3487099Z ##[endgroup] 2026-10-25T00:47:22.3532108Z Using Node.js v26.12.1 (resolved from 26.12.1) 2026-10-25T00:47:22.3543218Z ##[end-action id=__self_2.__run;outcome=success;conclusion=success;duration_ms=9] 2026-10-25T00:47:22.3545342Z ##[start-action display=Setup Vite+;id=__self_2.__voidzero-dev_setup-vp] 2026-10-25T00:47:22.3550550Z ##[end-action id=__self_2.__voidzero-dev_setup-vp;outcome=skipped;conclusion=skipped;duration_ms=0] 2026-10-25T00:47:22.3551690Z ##[start-action display=Resolve pnpm store path;id=__self_2.pnpm_store] 2026-10-25T00:47:22.3566484Z ##[group]Run store_path="$(vp pm cache dir)" 2026-10-25T00:47:22.3566680Z store_path="$(vp pm cache dir)" 2026-10-25T00:47:22.3566849Z echo "path=$store_path" >> "$GITHUB_OUTPUT" 2026-10-25T00:47:22.3587630Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} 2026-10-25T00:47:22.3587817Z env: 2026-10-25T00:47:22.3587938Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:22.3588095Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:22.3588253Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:22.3588434Z ##[endgroup] 2026-10-25T00:47:22.3742207Z ##[end-action id=__self_2.pnpm_store;outcome=success;conclusion=success;duration_ms=19] 2026-10-25T00:47:22.3743646Z ##[start-action display=Cache full pnpm store;id=__self_2.__actions_cache] 2026-10-25T00:47:22.4131465Z ##[group]Run actions/cache@v6 2026-10-25T00:47:22.4131644Z with: 2026-10-25T00:47:22.4131778Z path: /home/runner/.local/share/pnpm/store/v11 2026-10-25T00:47:22.4132044Z key: pnpm-full-v1-Linux-X64-fe33cf74552d68b43bd4929ad8f74b63f776b4470e2e3533f781441d5e4f188c 2026-10-25T00:47:22.4132310Z restore-keys: pnpm-full-v1-Linux-X64- 2026-10-25T00:47:22.4132463Z enableCrossOsArchive: false 2026-10-25T00:47:22.4132601Z fail-on-cache-miss: false 2026-10-25T00:47:22.4132726Z lookup-only: false 2026-10-25T00:47:22.4132841Z save-always: false 2026-10-25T00:47:22.4132954Z env: 2026-10-25T00:47:22.4133065Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:22.4133220Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:22.4133366Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:22.4133653Z ##[endgroup] 2026-10-25T00:47:22.6210534Z Cache hit for: pnpm-full-v1-Linux-X64-fe33cf74552d68b43bd4929ad8f74b63f776b4470e2e3533f781441d5e4f188c 2026-10-25T00:47:23.6424229Z Received 671088640 of 996034848 (67.4%), 640.0 MBs/sec 2026-10-25T00:47:24.1003830Z Received 996034848 of 996034848 (100.0%), 651.5 MBs/sec 2026-10-25T00:47:24.1004733Z Cache Size: ~950 MB (996034848 B) 2026-10-25T00:47:24.1039556Z [command]/usr/bin/tar -xf /home/runner/_work/_temp/af8478c7-7320-4ddf-9576-fef926fed8ce/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd 2026-10-25T00:47:29.7740001Z Cache restored successfully 2026-10-25T00:47:29.8231014Z Cache restored from key: pnpm-full-v1-Linux-X64-fe33cf74552d68b43bd4929ad8f74b63f776b4470e2e3533f781441d5e4f188c 2026-10-25T00:47:29.8307152Z ##[end-action id=__self_2.__actions_cache;outcome=success;conclusion=success;duration_ms=7456] 2026-10-25T00:47:29.8309420Z ##[start-action display=Install dependencies;id=__self_2.__run_2] 2026-10-25T00:47:29.8322255Z ##[group]Run vp install 2026-10-25T00:47:29.8322410Z vp install 2026-10-25T00:47:29.8340196Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} 2026-10-25T00:47:29.8340380Z env: 2026-10-25T00:47:29.8340504Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:29.8340664Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:29.8340816Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:29.8340961Z ##[endgroup] 2026-10-25T00:47:29.8689114Z Scope: all 34 workspace projects 2026-10-25T00:47:29.9859679Z ? Verifying lockfile against supply-chain policies (2088 entries)... 2026-10-25T00:47:30.2921017Z Packages are hard linked from the content-addressable store to the virtual store. 2026-10-25T00:47:30.2921530Z Content-addressable store is at: /home/runner/.local/share/pnpm/store/v11 2026-10-25T00:47:30.2921829Z Virtual store is at: node_modules/.pnpm 2026-10-25T00:47:32.7710490Z ✓ Lockfile passes supply-chain policies (2088 entries in 2.8s) 2026-10-25T00:47:32.7710777Z Lockfile is up to date, resolution step is skipped 2026-10-25T00:47:32.7890278Z Packages: +1721 2026-10-25T00:47:32.7890454Z ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2026-10-25T00:47:32.8265787Z Progress: resolved 1721, reused 1717, downloaded 0, added 1721, done 2026-10-25T00:47:33.8460738Z . prepare$ vp config --no-agent 2026-10-25T00:47:33.9601401Z . prepare: Done 2026-10-25T00:47:33.9615267Z 2026-10-25T00:47:33.9615383Z devDependencies: 2026-10-25T00:47:33.9615537Z + @coderabbitai/config 1.1.0 2026-10-25T00:47:33.9615781Z + @shadcn/lint 0.1.5 2026-10-25T00:47:33.9615931Z + @types/node 24.12.4 2026-10-25T00:47:33.9616062Z + knip 6.34.0 2026-10-25T00:47:33.9616194Z + typescript <- @tsc-rs/typescript 0.8.0 2026-10-25T00:47:33.9616344Z + vite-plus 1.3.0 2026-10-25T00:47:33.9616409Z 2026-10-25T00:47:33.9635556Z Done in 4.1s using pnpm v12.14.0 2026-10-25T00:47:33.9814707Z ##[end-action id=__self_2.__run_2;outcome=success;conclusion=success;duration_ms=4150] 2026-10-25T00:47:34.0310082Z ##[group]Run actions/cache@v6 2026-10-25T00:47:34.0310224Z with: 2026-10-25T00:47:34.0310341Z path: ~/.cache/electron 2026-10-25T00:47:34.0310571Z key: electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309 2026-10-25T00:47:34.0310815Z enableCrossOsArchive: false 2026-10-25T00:47:34.0310945Z fail-on-cache-miss: false 2026-10-25T00:47:34.0311067Z lookup-only: false 2026-10-25T00:47:34.0311235Z save-always: false 2026-10-25T00:47:34.0311342Z env: 2026-10-25T00:47:34.0311455Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:34.0311600Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:34.0311758Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:34.0311890Z ##[endgroup] 2026-10-25T00:47:34.2307172Z Cache hit for: electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309 2026-10-25T00:47:34.3883184Z Received 122906203 of 122906203 (100.0%), 861.9 MBs/sec 2026-10-25T00:47:34.3883469Z Cache Size: ~117 MB (122906203 B) 2026-10-25T00:47:34.3926956Z [command]/usr/bin/tar -xf /home/runner/_work/_temp/a605f20f-972a-4883-a8f0-778a09b6aadb/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd 2026-10-25T00:47:34.4521539Z Cache restored successfully 2026-10-25T00:47:34.4653569Z Cache restored from key: electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309 2026-10-25T00:47:34.4789063Z ##[group]Run vp run --filter @t3tools/desktop ensure:electron 2026-10-25T00:47:34.4789311Z vp run --filter @t3tools/desktop ensure:electron 2026-10-25T00:47:34.4806413Z shell: /usr/bin/bash -e {0} 2026-10-25T00:47:34.4806713Z env: 2026-10-25T00:47:34.4806829Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:34.4806979Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:34.4807123Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:34.4807265Z ##[endgroup] 2026-10-25T00:47:34.6433191Z ~/apps/desktop$ node scripts/ensure-electron-runtime.mjs ⊘ cache disabled 2026-10-25T00:47:35.2556873Z /home/runner/_work/t3code/t3code/node_modules/.pnpm/electron@44.9.3_supports-color@8.1.1/node_modules/electron/dist/electron 2026-10-25T00:47:35.2580054Z 2026-10-25T00:47:35.2688768Z ##[group]Run ( 2026-10-25T00:47:35.2688937Z ( 2026-10-25T00:47:35.2689048Z  set +e 2026-10-25T00:47:35.2689166Z  vpr typecheck 2026-10-25T00:47:35.2689315Z  echo "$?" > "$RUNNER_TEMP/typecheck-status" 2026-10-25T00:47:35.2689505Z ) > "$RUNNER_TEMP/typecheck.log" 2>&1 < /dev/null & 2026-10-25T00:47:35.2706842Z shell: /usr/bin/bash -e {0} 2026-10-25T00:47:35.2706981Z env: 2026-10-25T00:47:35.2707100Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:35.2707250Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:35.2707402Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:35.2707538Z ##[endgroup] 2026-10-25T00:47:35.2754567Z ##[group]Run until test -s "$RUNNER_TEMP/apt-status"; do sleep 1; done 2026-10-25T00:47:35.2754836Z until test -s "$RUNNER_TEMP/apt-status"; do sleep 1; done 2026-10-25T00:47:35.2755021Z cat "$RUNNER_TEMP/apt.log" 2026-10-25T00:47:35.2755180Z exit "$(cat "$RUNNER_TEMP/apt-status")" 2026-10-25T00:47:35.2772204Z shell: /usr/bin/bash -e {0} 2026-10-25T00:47:35.2772339Z env: 2026-10-25T00:47:35.2772455Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:35.2772607Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:35.2772752Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:35.2772893Z ##[endgroup] 2026-10-25T00:47:41.3061623Z blacksmith: the apt mirror lists changed since the package indexes were staged; discarding the staged indexes 2026-10-25T00:47:41.3062231Z Get:1 file:/etc/apt/blacksmith-ubuntu-mirrors.txt Mirrorlist [151 B] 2026-10-25T00:47:41.3062678Z Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease 2026-10-25T00:47:41.3063103Z Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B] 2026-10-25T00:47:41.3063461Z Get:8 https://dl.google.com/linux/chrome-stable/deb stable InRelease [2548 B] 2026-10-25T00:47:41.3063868Z Get:9 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [598 kB] 2026-10-25T00:47:41.3064234Z Get:10 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [660 kB] 2026-10-25T00:47:41.3064595Z Get:11 https://dl.google.com/linux/chrome-stable/deb stable/main amd64 Packages [1411 B] 2026-10-25T00:47:41.3064925Z Get:2 https://archive.ubuntu.com/ubuntu noble InRelease [256 kB] 2026-10-25T00:47:41.3065241Z Get:3 https://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] 2026-10-25T00:47:41.3065564Z Get:4 https://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB] 2026-10-25T00:47:41.3065886Z Get:5 https://archive.ubuntu.com/ubuntu noble-security InRelease [126 kB] 2026-10-25T00:47:41.3066199Z Get:12 https://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1401 kB] 2026-10-25T00:47:41.3066522Z Get:13 https://archive.ubuntu.com/ubuntu noble/main Translation-en [513 kB] 2026-10-25T00:47:41.3066841Z Get:14 https://archive.ubuntu.com/ubuntu noble/main amd64 Components [464 kB] 2026-10-25T00:47:41.3067175Z Get:15 https://archive.ubuntu.com/ubuntu noble/main amd64 c-n-f Metadata [30.5 kB] 2026-10-25T00:47:41.3067509Z Get:16 https://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [15.0 MB] 2026-10-25T00:47:41.3067941Z Get:17 https://archive.ubuntu.com/ubuntu noble/universe Translation-en [5982 kB] 2026-10-25T00:47:41.3068268Z Get:18 https://archive.ubuntu.com/ubuntu noble/universe amd64 Components [3871 kB] 2026-10-25T00:47:41.3068609Z Get:19 https://archive.ubuntu.com/ubuntu noble/universe amd64 c-n-f Metadata [301 kB] 2026-10-25T00:47:41.3068948Z Get:20 https://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [93.9 kB] 2026-10-25T00:47:41.3069300Z Get:21 https://archive.ubuntu.com/ubuntu noble/restricted Translation-en [18.7 kB] 2026-10-25T00:47:41.3069636Z Get:22 https://archive.ubuntu.com/ubuntu noble/restricted amd64 c-n-f Metadata [416 B] 2026-10-25T00:47:41.3070074Z Get:23 https://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [269 kB] 2026-10-25T00:47:41.3070371Z Get:24 https://archive.ubuntu.com/ubuntu noble/multiverse Translation-en [118 kB] 2026-10-25T00:47:41.3070647Z Get:25 https://archive.ubuntu.com/ubuntu noble/multiverse amd64 Components [35.0 kB] 2026-10-25T00:47:41.3070931Z Get:26 https://archive.ubuntu.com/ubuntu noble/multiverse amd64 c-n-f Metadata [8328 B] 2026-10-25T00:47:41.3071259Z Get:27 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1400 kB] 2026-10-25T00:47:41.3071530Z Get:28 https://archive.ubuntu.com/ubuntu noble-updates/main Translation-en [310 kB] 2026-10-25T00:47:41.3071805Z Get:29 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [181 kB] 2026-10-25T00:47:41.3072091Z Get:30 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 c-n-f Metadata [17.7 kB] 2026-10-25T00:47:41.3072373Z Get:31 https://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1706 kB] 2026-10-25T00:47:41.3072650Z Get:32 https://archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [342 kB] 2026-10-25T00:47:41.3072936Z Get:33 https://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [388 kB] 2026-10-25T00:47:41.3073228Z Get:34 https://archive.ubuntu.com/ubuntu noble-updates/universe amd64 c-n-f Metadata [34.9 kB] 2026-10-25T00:47:41.3073521Z Get:35 https://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [1805 kB] 2026-10-25T00:47:41.3073801Z Get:36 https://archive.ubuntu.com/ubuntu noble-updates/restricted Translation-en [411 kB] 2026-10-25T00:47:41.3074086Z Get:37 https://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B] 2026-10-25T00:47:41.3074378Z Get:38 https://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 c-n-f Metadata [456 B] 2026-10-25T00:47:41.3074667Z Get:39 https://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [50.7 kB] 2026-10-25T00:47:41.3074946Z Get:40 https://archive.ubuntu.com/ubuntu noble-updates/multiverse Translation-en [14.0 kB] 2026-10-25T00:47:41.3075228Z Get:41 https://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B] 2026-10-25T00:47:41.3075514Z Get:42 https://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 c-n-f Metadata [656 B] 2026-10-25T00:47:41.3075801Z Get:43 https://archive.ubuntu.com/ubuntu noble-backports/main amd64 Packages [40.6 kB] 2026-10-25T00:47:41.3076075Z Get:44 https://archive.ubuntu.com/ubuntu noble-backports/main Translation-en [9172 B] 2026-10-25T00:47:41.3076348Z Get:45 https://archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [5764 B] 2026-10-25T00:47:41.3076828Z Get:46 https://archive.ubuntu.com/ubuntu noble-backports/main amd64 c-n-f Metadata [368 B] 2026-10-25T00:47:41.3077237Z Get:47 https://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [31.0 kB] 2026-10-25T00:47:41.3077573Z Get:48 https://archive.ubuntu.com/ubuntu noble-backports/universe Translation-en [18.6 kB] 2026-10-25T00:47:41.3077872Z Get:49 https://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [12.6 kB] 2026-10-25T00:47:41.3078175Z Get:50 https://archive.ubuntu.com/ubuntu noble-backports/universe amd64 c-n-f Metadata [1588 B] 2026-10-25T00:47:41.3078653Z Get:51 https://archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B] 2026-10-25T00:47:41.3078950Z Get:52 https://archive.ubuntu.com/ubuntu noble-backports/restricted amd64 c-n-f Metadata [116 B] 2026-10-25T00:47:41.3079245Z Get:53 https://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Packages [748 B] 2026-10-25T00:47:41.3079532Z Get:54 https://archive.ubuntu.com/ubuntu noble-backports/multiverse Translation-en [340 B] 2026-10-25T00:47:41.3079819Z Get:55 https://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B] 2026-10-25T00:47:41.3080117Z Get:56 https://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 c-n-f Metadata [116 B] 2026-10-25T00:47:41.3080400Z Get:57 https://archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [1146 kB] 2026-10-25T00:47:41.3080673Z Get:58 https://archive.ubuntu.com/ubuntu noble-security/main Translation-en [231 kB] 2026-10-25T00:47:41.3080940Z Get:59 https://archive.ubuntu.com/ubuntu noble-security/main amd64 Components [46.4 kB] 2026-10-25T00:47:41.3081255Z Get:60 https://archive.ubuntu.com/ubuntu noble-security/main amd64 c-n-f Metadata [11.9 kB] 2026-10-25T00:47:41.3081539Z Get:61 https://archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1222 kB] 2026-10-25T00:47:41.3081821Z Get:62 https://archive.ubuntu.com/ubuntu noble-security/universe Translation-en [246 kB] 2026-10-25T00:47:41.3082105Z Get:63 https://archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [76.3 kB] 2026-10-25T00:47:41.3082406Z Get:64 https://archive.ubuntu.com/ubuntu noble-security/universe amd64 c-n-f Metadata [24.2 kB] 2026-10-25T00:47:41.3082702Z Get:65 https://archive.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [1713 kB] 2026-10-25T00:47:41.3082995Z Get:66 https://archive.ubuntu.com/ubuntu noble-security/restricted Translation-en [392 kB] 2026-10-25T00:47:41.3083282Z Get:67 https://archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B] 2026-10-25T00:47:41.3083585Z Get:68 https://archive.ubuntu.com/ubuntu noble-security/restricted amd64 c-n-f Metadata [444 B] 2026-10-25T00:47:41.3083883Z Get:69 https://archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [45.4 kB] 2026-10-25T00:47:41.3084171Z Get:70 https://archive.ubuntu.com/ubuntu noble-security/multiverse Translation-en [12.1 kB] 2026-10-25T00:47:41.3084459Z Get:71 https://archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B] 2026-10-25T00:47:41.3084757Z Get:72 https://archive.ubuntu.com/ubuntu noble-security/multiverse amd64 c-n-f Metadata [468 B] 2026-10-25T00:47:41.3084988Z Fetched 42.0 MB in 9s (4649 kB/s) 2026-10-25T00:47:41.3085139Z Reading package lists... 2026-10-25T00:47:41.3085265Z Reading package lists... 2026-10-25T00:47:41.3085390Z Building dependency tree... 2026-10-25T00:47:41.3085527Z Reading state information... 2026-10-25T00:47:41.3085686Z pkg-config is already the newest version (1.8.1-2build1). 2026-10-25T00:47:41.3085878Z The following additional packages will be installed: 2026-10-25T00:47:41.3086085Z bsdextrautils bsdutils eject fdisk gir1.2-glib-2.0 gir1.2-secret-1 2026-10-25T00:47:41.3086320Z libblkid-dev libblkid1 libfdisk1 libgcrypt20 libgcrypt20-dev 2026-10-25T00:47:41.3086545Z libgirepository-2.0-0 libglib2.0-0t64 libglib2.0-bin libglib2.0-data 2026-10-25T00:47:41.3086793Z libglib2.0-dev libglib2.0-dev-bin libgpg-error-dev libmount-dev libmount1 2026-10-25T00:47:41.3087175Z libsecret-1-0 libsecret-common libselinux1-dev libsepol-dev libsmartcols1 2026-10-25T00:47:41.3087444Z libuuid1 mount util-linux uuid-dev uuid-runtime 2026-10-25T00:47:41.3087605Z Suggested packages: 2026-10-25T00:47:41.3087770Z rng-tools libgcrypt20-doc low-memory-monitor gir1.2-glib-2.0-dev 2026-10-25T00:47:41.3088013Z libglib2.0-doc libxml2-utils nfs-common util-linux-extra util-linux-locales 2026-10-25T00:47:41.3088224Z The following NEW packages will be installed: 2026-10-25T00:47:41.3088424Z gir1.2-secret-1 libblkid-dev libgcrypt20-dev libgirepository-2.0-0 2026-10-25T00:47:41.3088649Z libglib2.0-dev libglib2.0-dev-bin libgpg-error-dev libmount-dev 2026-10-25T00:47:41.3088887Z libsecret-1-0 libsecret-1-dev libsecret-common libselinux1-dev libsepol-dev 2026-10-25T00:47:41.3089078Z uuid-dev 2026-10-25T00:47:41.3089198Z The following packages will be upgraded: 2026-10-25T00:47:41.3089389Z bsdextrautils bsdutils eject fdisk gir1.2-glib-2.0 libblkid1 libfdisk1 2026-10-25T00:47:41.3089620Z libgcrypt20 libglib2.0-0t64 libglib2.0-bin libglib2.0-data libmount1 2026-10-25T00:47:41.3089830Z libsmartcols1 libuuid1 mount util-linux uuid-runtime 2026-10-25T00:47:41.3090029Z 17 upgraded, 14 newly installed, 0 to remove and 241 not upgraded. 2026-10-25T00:47:41.3090212Z Need to get 8378 kB of archives. 2026-10-25T00:47:41.3090385Z After this operation, 23.0 MB of additional disk space will be used. 2026-10-25T00:47:41.3090615Z Get:1 file:/etc/apt/blacksmith-ubuntu-mirrors.txt Mirrorlist [151 B] 2026-10-25T00:47:41.3090904Z Get:2 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 bsdutils amd64 1:2.39.3-9ubuntu6.6 [96.4 kB] 2026-10-25T00:47:41.3091277Z Get:3 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 util-linux amd64 2.39.3-9ubuntu6.6 [1128 kB] 2026-10-25T00:47:41.3091609Z Get:4 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 mount amd64 2.39.3-9ubuntu6.6 [118 kB] 2026-10-25T00:47:41.3091948Z Get:5 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsmartcols1 amd64 2.39.3-9ubuntu6.6 [66.3 kB] 2026-10-25T00:47:41.3092288Z Get:6 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libuuid1 amd64 2.39.3-9ubuntu6.6 [36.6 kB] 2026-10-25T00:47:41.3092650Z Get:7 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 uuid-runtime amd64 2.39.3-9ubuntu6.6 [33.1 kB] 2026-10-25T00:47:41.3092987Z Get:8 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libblkid1 amd64 2.39.3-9ubuntu6.6 [124 kB] 2026-10-25T00:47:41.3093326Z Get:9 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcrypt20 amd64 1.10.3-2ubuntu0.2 [536 kB] 2026-10-25T00:47:41.3093661Z Get:10 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmount1 amd64 2.39.3-9ubuntu6.6 [134 kB] 2026-10-25T00:47:41.3094079Z Get:11 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 eject amd64 2.39.3-9ubuntu6.6 [26.3 kB] 2026-10-25T00:47:41.3094417Z Get:12 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-data all 2.80.0-6ubuntu3.10 [50.2 kB] 2026-10-25T00:47:41.3094776Z Get:13 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-bin amd64 2.80.0-6ubuntu3.10 [97.9 kB] 2026-10-25T00:47:41.3095131Z Get:14 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-glib-2.0 amd64 2.80.0-6ubuntu3.10 [183 kB] 2026-10-25T00:47:41.3095493Z Get:15 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-0t64 amd64 2.80.0-6ubuntu3.10 [1548 kB] 2026-10-25T00:47:41.3095840Z Get:16 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libfdisk1 amd64 2.39.3-9ubuntu6.6 [146 kB] 2026-10-25T00:47:41.3096187Z Get:17 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 bsdextrautils amd64 2.39.3-9ubuntu6.6 [73.7 kB] 2026-10-25T00:47:41.3096520Z Get:18 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 fdisk amd64 2.39.3-9ubuntu6.6 [122 kB] 2026-10-25T00:47:41.3096843Z Get:19 https://archive.ubuntu.com/ubuntu noble/main amd64 libsecret-common all 0.21.4-1build3 [4962 B] 2026-10-25T00:47:41.3097232Z Get:20 https://archive.ubuntu.com/ubuntu noble/main amd64 libsecret-1-0 amd64 0.21.4-1build3 [116 kB] 2026-10-25T00:47:41.3097596Z Get:21 https://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-secret-1 amd64 0.21.4-1build3 [9424 B] 2026-10-25T00:47:41.3097927Z Get:22 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgpg-error-dev amd64 1.47-3build2.1 [128 kB] 2026-10-25T00:47:41.3098281Z Get:23 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcrypt20-dev amd64 1.10.3-2ubuntu0.2 [596 kB] 2026-10-25T00:47:41.3098648Z Get:24 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgirepository-2.0-0 amd64 2.80.0-6ubuntu3.10 [73.5 kB] 2026-10-25T00:47:41.3099024Z Get:25 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-dev-bin amd64 2.80.0-6ubuntu3.10 [138 kB] 2026-10-25T00:47:41.3099374Z Get:26 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 uuid-dev amd64 2.39.3-9ubuntu6.6 [33.5 kB] 2026-10-25T00:47:41.3099720Z Get:27 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libblkid-dev amd64 2.39.3-9ubuntu6.6 [205 kB] 2026-10-25T00:47:41.3100047Z Get:28 https://archive.ubuntu.com/ubuntu noble/main amd64 libsepol-dev amd64 3.5-2build1 [384 kB] 2026-10-25T00:47:41.3100480Z Get:29 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libselinux1-dev amd64 3.5-2ubuntu2.1 [164 kB] 2026-10-25T00:47:41.3114651Z Get:30 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmount-dev amd64 2.39.3-9ubuntu6.6 [14.9 kB] 2026-10-25T00:47:41.3115067Z Get:31 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-dev amd64 2.80.0-6ubuntu3.10 [1861 kB] 2026-10-25T00:47:41.3115420Z Get:32 https://archive.ubuntu.com/ubuntu noble/universe amd64 libsecret-1-dev amd64 0.21.4-1build3 [129 kB] 2026-10-25T00:47:41.3115669Z Fetched 8378 kB in 3s (2483 kB/s) 2026-10-25T00:47:41.3115806Z (Reading database ... 2026-10-25T00:47:41.3115933Z (Reading database ... 5% 2026-10-25T00:47:41.3116060Z (Reading database ... 10% 2026-10-25T00:47:41.3116195Z (Reading database ... 15% 2026-10-25T00:47:41.3116318Z (Reading database ... 20% 2026-10-25T00:47:41.3116444Z (Reading database ... 25% 2026-10-25T00:47:41.3116563Z (Reading database ... 30% 2026-10-25T00:47:41.3116681Z (Reading database ... 35% 2026-10-25T00:47:41.3116802Z (Reading database ... 40% 2026-10-25T00:47:41.3116923Z (Reading database ... 45% 2026-10-25T00:47:41.3117061Z (Reading database ... 50% 2026-10-25T00:47:41.3117179Z (Reading database ... 55% 2026-10-25T00:47:41.3117301Z (Reading database ... 60% 2026-10-25T00:47:41.3117420Z (Reading database ... 65% 2026-10-25T00:47:41.3117538Z (Reading database ... 70% 2026-10-25T00:47:41.3117659Z (Reading database ... 75% 2026-10-25T00:47:41.3117777Z (Reading database ... 80% 2026-10-25T00:47:41.3117898Z (Reading database ... 85% 2026-10-25T00:47:41.3118016Z (Reading database ... 90% 2026-10-25T00:47:41.3118137Z (Reading database ... 95% 2026-10-25T00:47:41.3118653Z (Reading database ... 100% 2026-10-25T00:47:41.3118836Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3119077Z Preparing to unpack .../bsdutils_1%3a2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3119371Z Unpacking bsdutils (1:2.39.3-9ubuntu6.6) over (1:2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3119568Z Setting up bsdutils (1:2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3119715Z (Reading database ... 2026-10-25T00:47:41.3119841Z (Reading database ... 5% 2026-10-25T00:47:41.3119965Z (Reading database ... 10% 2026-10-25T00:47:41.3120087Z (Reading database ... 15% 2026-10-25T00:47:41.3120206Z (Reading database ... 20% 2026-10-25T00:47:41.3120323Z (Reading database ... 25% 2026-10-25T00:47:41.3120444Z (Reading database ... 30% 2026-10-25T00:47:41.3120563Z (Reading database ... 35% 2026-10-25T00:47:41.3120684Z (Reading database ... 40% 2026-10-25T00:47:41.3120800Z (Reading database ... 45% 2026-10-25T00:47:41.3120920Z (Reading database ... 50% 2026-10-25T00:47:41.3121037Z (Reading database ... 55% 2026-10-25T00:47:41.3121180Z (Reading database ... 60% 2026-10-25T00:47:41.3121478Z (Reading database ... 65% 2026-10-25T00:47:41.3121668Z (Reading database ... 70% 2026-10-25T00:47:41.3121789Z (Reading database ... 75% 2026-10-25T00:47:41.3121907Z (Reading database ... 80% 2026-10-25T00:47:41.3122026Z (Reading database ... 85% 2026-10-25T00:47:41.3122142Z (Reading database ... 90% 2026-10-25T00:47:41.3122257Z (Reading database ... 95% 2026-10-25T00:47:41.3122380Z (Reading database ... 100% 2026-10-25T00:47:41.3122549Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3122775Z Preparing to unpack .../util-linux_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3122996Z Unpacking util-linux (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3123189Z Setting up util-linux (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3123458Z update-alternatives: warning: forcing reinstallation of alternative /usr/bin/less because link group pager is broken 2026-10-25T00:47:41.3123914Z update-alternatives: warning: skip creation of /usr/share/man/man1/pager.1.gz because associated file /usr/share/man/man1/less.1.gz (of link group pager) doesn't exist 2026-10-25T00:47:41.3124296Z fstrim.service is a disabled or a static unit not running, not starting it. 2026-10-25T00:47:41.3124488Z (Reading database ... 2026-10-25T00:47:41.3124607Z (Reading database ... 5% 2026-10-25T00:47:41.3124729Z (Reading database ... 10% 2026-10-25T00:47:41.3124855Z (Reading database ... 15% 2026-10-25T00:47:41.3124974Z (Reading database ... 20% 2026-10-25T00:47:41.3125099Z (Reading database ... 25% 2026-10-25T00:47:41.3125218Z (Reading database ... 30% 2026-10-25T00:47:41.3125340Z (Reading database ... 35% 2026-10-25T00:47:41.3125456Z (Reading database ... 40% 2026-10-25T00:47:41.3125576Z (Reading database ... 45% 2026-10-25T00:47:41.3125693Z (Reading database ... 50% 2026-10-25T00:47:41.3125810Z (Reading database ... 55% 2026-10-25T00:47:41.3125930Z (Reading database ... 60% 2026-10-25T00:47:41.3126047Z (Reading database ... 65% 2026-10-25T00:47:41.3126170Z (Reading database ... 70% 2026-10-25T00:47:41.3126292Z (Reading database ... 75% 2026-10-25T00:47:41.3126412Z (Reading database ... 80% 2026-10-25T00:47:41.3126529Z (Reading database ... 85% 2026-10-25T00:47:41.3126646Z (Reading database ... 90% 2026-10-25T00:47:41.3126766Z (Reading database ... 95% 2026-10-25T00:47:41.3126885Z (Reading database ... 100% 2026-10-25T00:47:41.3127055Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3127272Z Preparing to unpack .../mount_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3127486Z Unpacking mount (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3127700Z Preparing to unpack .../libsmartcols1_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3127939Z Unpacking libsmartcols1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3128155Z Setting up libsmartcols1:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3128313Z (Reading database ... 2026-10-25T00:47:41.3128436Z (Reading database ... 5% 2026-10-25T00:47:41.3128559Z (Reading database ... 10% 2026-10-25T00:47:41.3128684Z (Reading database ... 15% 2026-10-25T00:47:41.3128804Z (Reading database ... 20% 2026-10-25T00:47:41.3128926Z (Reading database ... 25% 2026-10-25T00:47:41.3129047Z (Reading database ... 30% 2026-10-25T00:47:41.3129171Z (Reading database ... 35% 2026-10-25T00:47:41.3129300Z (Reading database ... 40% 2026-10-25T00:47:41.3129424Z (Reading database ... 45% 2026-10-25T00:47:41.3129552Z (Reading database ... 50% 2026-10-25T00:47:41.3129677Z (Reading database ... 55% 2026-10-25T00:47:41.3129810Z (Reading database ... 60% 2026-10-25T00:47:41.3129933Z (Reading database ... 65% 2026-10-25T00:47:41.3130054Z (Reading database ... 70% 2026-10-25T00:47:41.3130181Z (Reading database ... 75% 2026-10-25T00:47:41.3130303Z (Reading database ... 80% 2026-10-25T00:47:41.3130427Z (Reading database ... 85% 2026-10-25T00:47:41.3130549Z (Reading database ... 90% 2026-10-25T00:47:41.3130670Z (Reading database ... 95% 2026-10-25T00:47:41.3130897Z (Reading database ... 100% 2026-10-25T00:47:41.3131149Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3131366Z Preparing to unpack .../libuuid1_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3131580Z Unpacking libuuid1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3131785Z Setting up libuuid1:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3131935Z (Reading database ... 2026-10-25T00:47:41.3132057Z (Reading database ... 5% 2026-10-25T00:47:41.3132177Z (Reading database ... 10% 2026-10-25T00:47:41.3132301Z (Reading database ... 15% 2026-10-25T00:47:41.3132419Z (Reading database ... 20% 2026-10-25T00:47:41.3132536Z (Reading database ... 25% 2026-10-25T00:47:41.3132658Z (Reading database ... 30% 2026-10-25T00:47:41.3132775Z (Reading database ... 35% 2026-10-25T00:47:41.3132897Z (Reading database ... 40% 2026-10-25T00:47:41.3133014Z (Reading database ... 45% 2026-10-25T00:47:41.3133134Z (Reading database ... 50% 2026-10-25T00:47:41.3133256Z (Reading database ... 55% 2026-10-25T00:47:41.3133377Z (Reading database ... 60% 2026-10-25T00:47:41.3133495Z (Reading database ... 65% 2026-10-25T00:47:41.3133620Z (Reading database ... 70% 2026-10-25T00:47:41.3133743Z (Reading database ... 75% 2026-10-25T00:47:41.3133860Z (Reading database ... 80% 2026-10-25T00:47:41.3133982Z (Reading database ... 85% 2026-10-25T00:47:41.3134096Z (Reading database ... 90% 2026-10-25T00:47:41.3134210Z (Reading database ... 95% 2026-10-25T00:47:41.3134332Z (Reading database ... 100% 2026-10-25T00:47:41.3134494Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3134717Z Preparing to unpack .../uuid-runtime_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3134940Z Unpacking uuid-runtime (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3135162Z Preparing to unpack .../libblkid1_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3135383Z Unpacking libblkid1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3135590Z Setting up libblkid1:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3135744Z (Reading database ... 2026-10-25T00:47:41.3135862Z (Reading database ... 5% 2026-10-25T00:47:41.3135986Z (Reading database ... 10% 2026-10-25T00:47:41.3136105Z (Reading database ... 15% 2026-10-25T00:47:41.3136227Z (Reading database ... 20% 2026-10-25T00:47:41.3136345Z (Reading database ... 25% 2026-10-25T00:47:41.3136466Z (Reading database ... 30% 2026-10-25T00:47:41.3136583Z (Reading database ... 35% 2026-10-25T00:47:41.3136703Z (Reading database ... 40% 2026-10-25T00:47:41.3136821Z (Reading database ... 45% 2026-10-25T00:47:41.3136939Z (Reading database ... 50% 2026-10-25T00:47:41.3137061Z (Reading database ... 55% 2026-10-25T00:47:41.3137182Z (Reading database ... 60% 2026-10-25T00:47:41.3137302Z (Reading database ... 65% 2026-10-25T00:47:41.3137420Z (Reading database ... 70% 2026-10-25T00:47:41.3137541Z (Reading database ... 75% 2026-10-25T00:47:41.3137661Z (Reading database ... 80% 2026-10-25T00:47:41.3137780Z (Reading database ... 85% 2026-10-25T00:47:41.3137902Z (Reading database ... 90% 2026-10-25T00:47:41.3138019Z (Reading database ... 95% 2026-10-25T00:47:41.3138142Z (Reading database ... 100% 2026-10-25T00:47:41.3138309Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3138529Z Preparing to unpack .../libgcrypt20_1.10.3-2ubuntu0.2_amd64.deb ... 2026-10-25T00:47:41.3138754Z Unpacking libgcrypt20:amd64 (1.10.3-2ubuntu0.2) over (1.10.3-2ubuntu0.1) ... 2026-10-25T00:47:41.3138967Z Setting up libgcrypt20:amd64 (1.10.3-2ubuntu0.2) ... 2026-10-25T00:47:41.3139120Z (Reading database ... 2026-10-25T00:47:41.3139236Z (Reading database ... 5% 2026-10-25T00:47:41.3139359Z (Reading database ... 10% 2026-10-25T00:47:41.3139477Z (Reading database ... 15% 2026-10-25T00:47:41.3139600Z (Reading database ... 20% 2026-10-25T00:47:41.3139718Z (Reading database ... 25% 2026-10-25T00:47:41.3139839Z (Reading database ... 30% 2026-10-25T00:47:41.3140044Z (Reading database ... 35% 2026-10-25T00:47:41.3140226Z (Reading database ... 40% 2026-10-25T00:47:41.3140347Z (Reading database ... 45% 2026-10-25T00:47:41.3140465Z (Reading database ... 50% 2026-10-25T00:47:41.3140585Z (Reading database ... 55% 2026-10-25T00:47:41.3140702Z (Reading database ... 60% 2026-10-25T00:47:41.3140823Z (Reading database ... 65% 2026-10-25T00:47:41.3140939Z (Reading database ... 70% 2026-10-25T00:47:41.3141057Z (Reading database ... 75% 2026-10-25T00:47:41.3141207Z (Reading database ... 80% 2026-10-25T00:47:41.3141325Z (Reading database ... 85% 2026-10-25T00:47:41.3141446Z (Reading database ... 90% 2026-10-25T00:47:41.3141561Z (Reading database ... 95% 2026-10-25T00:47:41.3141683Z (Reading database ... 100% 2026-10-25T00:47:41.3141847Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3142059Z Preparing to unpack .../libmount1_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3142280Z Unpacking libmount1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3142478Z Setting up libmount1:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3142624Z (Reading database ... 2026-10-25T00:47:41.3142733Z (Reading database ... 5% 2026-10-25T00:47:41.3142852Z (Reading database ... 10% 2026-10-25T00:47:41.3142970Z (Reading database ... 15% 2026-10-25T00:47:41.3143090Z (Reading database ... 20% 2026-10-25T00:47:41.3143207Z (Reading database ... 25% 2026-10-25T00:47:41.3143325Z (Reading database ... 30% 2026-10-25T00:47:41.3143445Z (Reading database ... 35% 2026-10-25T00:47:41.3143562Z (Reading database ... 40% 2026-10-25T00:47:41.3143683Z (Reading database ... 45% 2026-10-25T00:47:41.3143799Z (Reading database ... 50% 2026-10-25T00:47:41.3143919Z (Reading database ... 55% 2026-10-25T00:47:41.3144035Z (Reading database ... 60% 2026-10-25T00:47:41.3144150Z (Reading database ... 65% 2026-10-25T00:47:41.3144271Z (Reading database ... 70% 2026-10-25T00:47:41.3144386Z (Reading database ... 75% 2026-10-25T00:47:41.3144508Z (Reading database ... 80% 2026-10-25T00:47:41.3144626Z (Reading database ... 85% 2026-10-25T00:47:41.3144748Z (Reading database ... 90% 2026-10-25T00:47:41.3144867Z (Reading database ... 95% 2026-10-25T00:47:41.3144985Z (Reading database ... 100% 2026-10-25T00:47:41.3145152Z (Reading database ... 207973 files and directories currently installed.) 2026-10-25T00:47:41.3145367Z Preparing to unpack .../00-eject_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3145578Z Unpacking eject (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3145797Z Preparing to unpack .../01-libglib2.0-data_2.80.0-6ubuntu3.10_all.deb ... 2026-10-25T00:47:41.3146036Z Unpacking libglib2.0-data (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ... 2026-10-25T00:47:41.3146272Z Preparing to unpack .../02-libglib2.0-bin_2.80.0-6ubuntu3.10_amd64.deb ... 2026-10-25T00:47:41.3146507Z Unpacking libglib2.0-bin (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ... 2026-10-25T00:47:41.3146740Z Preparing to unpack .../03-gir1.2-glib-2.0_2.80.0-6ubuntu3.10_amd64.deb ... 2026-10-25T00:47:41.3146988Z Unpacking gir1.2-glib-2.0:amd64 (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ... 2026-10-25T00:47:41.3147229Z Preparing to unpack .../04-libglib2.0-0t64_2.80.0-6ubuntu3.10_amd64.deb ... 2026-10-25T00:47:41.3147475Z Unpacking libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ... 2026-10-25T00:47:41.3147707Z Preparing to unpack .../05-libfdisk1_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3147933Z Unpacking libfdisk1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3148159Z Preparing to unpack .../06-bsdextrautils_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3148384Z Unpacking bsdextrautils (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3148605Z Preparing to unpack .../07-fdisk_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3148809Z Unpacking fdisk (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ... 2026-10-25T00:47:41.3149120Z Selecting previously unselected package libsecret-common. 2026-10-25T00:47:41.3149372Z Preparing to unpack .../08-libsecret-common_0.21.4-1build3_all.deb ... 2026-10-25T00:47:41.3149573Z Unpacking libsecret-common (0.21.4-1build3) ... 2026-10-25T00:47:41.3149762Z Selecting previously unselected package libsecret-1-0:amd64. 2026-10-25T00:47:41.3149983Z Preparing to unpack .../09-libsecret-1-0_0.21.4-1build3_amd64.deb ... 2026-10-25T00:47:41.3150179Z Unpacking libsecret-1-0:amd64 (0.21.4-1build3) ... 2026-10-25T00:47:41.3150375Z Selecting previously unselected package gir1.2-secret-1:amd64. 2026-10-25T00:47:41.3150592Z Preparing to unpack .../10-gir1.2-secret-1_0.21.4-1build3_amd64.deb ... 2026-10-25T00:47:41.3150795Z Unpacking gir1.2-secret-1:amd64 (0.21.4-1build3) ... 2026-10-25T00:47:41.3150984Z Selecting previously unselected package libgpg-error-dev. 2026-10-25T00:47:41.3151241Z Preparing to unpack .../11-libgpg-error-dev_1.47-3build2.1_amd64.deb ... 2026-10-25T00:47:41.3151444Z Unpacking libgpg-error-dev (1.47-3build2.1) ... 2026-10-25T00:47:41.3151624Z Selecting previously unselected package libgcrypt20-dev. 2026-10-25T00:47:41.3151839Z Preparing to unpack .../12-libgcrypt20-dev_1.10.3-2ubuntu0.2_amd64.deb ... 2026-10-25T00:47:41.3152040Z Unpacking libgcrypt20-dev (1.10.3-2ubuntu0.2) ... 2026-10-25T00:47:41.3152243Z Selecting previously unselected package libgirepository-2.0-0:amd64. 2026-10-25T00:47:41.3152482Z Preparing to unpack .../13-libgirepository-2.0-0_2.80.0-6ubuntu3.10_amd64.deb ... 2026-10-25T00:47:41.3152717Z Unpacking libgirepository-2.0-0:amd64 (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3152922Z Selecting previously unselected package libglib2.0-dev-bin. 2026-10-25T00:47:41.3153149Z Preparing to unpack .../14-libglib2.0-dev-bin_2.80.0-6ubuntu3.10_amd64.deb ... 2026-10-25T00:47:41.3153359Z Unpacking libglib2.0-dev-bin (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3153540Z Selecting previously unselected package uuid-dev:amd64. 2026-10-25T00:47:41.3153743Z Preparing to unpack .../15-uuid-dev_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3153930Z Unpacking uuid-dev:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3154118Z Selecting previously unselected package libblkid-dev:amd64. 2026-10-25T00:47:41.3154329Z Preparing to unpack .../16-libblkid-dev_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3154529Z Unpacking libblkid-dev:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3154714Z Selecting previously unselected package libsepol-dev:amd64. 2026-10-25T00:47:41.3154921Z Preparing to unpack .../17-libsepol-dev_3.5-2build1_amd64.deb ... 2026-10-25T00:47:41.3155107Z Unpacking libsepol-dev:amd64 (3.5-2build1) ... 2026-10-25T00:47:41.3155296Z Selecting previously unselected package libselinux1-dev:amd64. 2026-10-25T00:47:41.3155546Z Preparing to unpack .../18-libselinux1-dev_3.5-2ubuntu2.1_amd64.deb ... 2026-10-25T00:47:41.3155748Z Unpacking libselinux1-dev:amd64 (3.5-2ubuntu2.1) ... 2026-10-25T00:47:41.3155936Z Selecting previously unselected package libmount-dev:amd64. 2026-10-25T00:47:41.3156144Z Preparing to unpack .../19-libmount-dev_2.39.3-9ubuntu6.6_amd64.deb ... 2026-10-25T00:47:41.3156343Z Unpacking libmount-dev:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3156530Z Selecting previously unselected package libglib2.0-dev:amd64. 2026-10-25T00:47:41.3156748Z Preparing to unpack .../20-libglib2.0-dev_2.80.0-6ubuntu3.10_amd64.deb ... 2026-10-25T00:47:41.3156956Z Unpacking libglib2.0-dev:amd64 (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3157153Z Selecting previously unselected package libsecret-1-dev:amd64. 2026-10-25T00:47:41.3157368Z Preparing to unpack .../21-libsecret-1-dev_0.21.4-1build3_amd64.deb ... 2026-10-25T00:47:41.3157570Z Unpacking libsecret-1-dev:amd64 (0.21.4-1build3) ... 2026-10-25T00:47:41.3157737Z Setting up bsdextrautils (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3157896Z Setting up eject (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3158062Z Setting up libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3158239Z Setting up libglib2.0-data (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3158654Z Setting up libgpg-error-dev (1.47-3build2.1) ... 2026-10-25T00:47:41.3158881Z Setting up uuid-dev:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3159054Z Setting up libsepol-dev:amd64 (3.5-2build1) ... 2026-10-25T00:47:41.3159232Z Setting up gir1.2-glib-2.0:amd64 (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3159415Z Setting up libfdisk1:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3159577Z Setting up mount (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3159739Z Setting up uuid-runtime (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3159938Z uuidd.service is a disabled or a static unit not running, not starting it. 2026-10-25T00:47:41.3160142Z Setting up libsecret-common (0.21.4-1build3) ... 2026-10-25T00:47:41.3160318Z Setting up libglib2.0-dev-bin (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3160494Z Setting up libblkid-dev:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3160690Z Setting up libgirepository-2.0-0:amd64 (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3160882Z Setting up libselinux1-dev:amd64 (3.5-2ubuntu2.1) ... 2026-10-25T00:47:41.3161059Z Setting up libglib2.0-bin (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3161239Z Setting up fdisk (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3161396Z Setting up libsecret-1-0:amd64 (0.21.4-1build3) ... 2026-10-25T00:47:41.3161566Z Setting up gir1.2-secret-1:amd64 (0.21.4-1build3) ... 2026-10-25T00:47:41.3161736Z Setting up libgcrypt20-dev (1.10.3-2ubuntu0.2) ... 2026-10-25T00:47:41.3161907Z Setting up libmount-dev:amd64 (2.39.3-9ubuntu6.6) ... 2026-10-25T00:47:41.3162082Z Setting up libglib2.0-dev:amd64 (2.80.0-6ubuntu3.10) ... 2026-10-25T00:47:41.3162260Z Setting up libsecret-1-dev:amd64 (0.21.4-1build3) ... 2026-10-25T00:47:41.3162433Z Processing triggers for libc-bin (2.39-0ubuntu8.8) ... 2026-10-25T00:47:41.3162613Z Processing triggers for man-db (2.12.0-4build2) ... 2026-10-25T00:47:41.3162793Z Not building database; man-db/auto-update is not 'true'. 2026-10-25T00:47:41.3162979Z Processing triggers for install-info (7.1-3build2) ... 2026-10-25T00:47:41.3163090Z 2026-10-25T00:47:41.3163143Z Restarting services... 2026-10-25T00:47:41.3163643Z systemctl restart irqbalance.service packagekit.service php8.3-fpm.service polkit.service rsyslog.service systemd-journald.service systemd-manager.service systemd-networkd.service systemd-resolved.service systemd-timedated.service systemd-udevd.service udisks2.service 2026-10-25T00:47:41.3164249Z Failed to restart systemd-manager.service: Unit systemd-manager.service not found. 2026-10-25T00:47:41.3164414Z 2026-10-25T00:47:41.3164475Z Service restarts being deferred: 2026-10-25T00:47:41.3164624Z systemctl restart ModemManager.service 2026-10-25T00:47:41.3164781Z systemctl restart dbus.service 2026-10-25T00:47:41.3164924Z systemctl restart getty@tty1.service 2026-10-25T00:47:41.3165092Z systemctl restart networkd-dispatcher.service 2026-10-25T00:47:41.3165265Z systemctl restart serial-getty@ttyS0.service 2026-10-25T00:47:41.3165433Z systemctl restart setup_and_run_blacksmith.service 2026-10-25T00:47:41.3165602Z systemctl restart systemd-logind.service 2026-10-25T00:47:41.3165705Z 2026-10-25T00:47:41.3165759Z No containers need to be restarted. 2026-10-25T00:47:41.3165851Z 2026-10-25T00:47:41.3165909Z User sessions running outdated binaries: 2026-10-25T00:47:41.3166064Z runner @ user manager service: systemd[1909] 2026-10-25T00:47:41.3166165Z 2026-10-25T00:47:41.3166264Z No VM guests are running outdated hypervisor (qemu) binaries on this host. 2026-10-25T00:47:41.3188849Z ##[group]Run vp run build:desktop 2026-10-25T00:47:41.3189053Z vp run build:desktop 2026-10-25T00:47:41.3207408Z shell: /usr/bin/bash -e {0} 2026-10-25T00:47:41.3207548Z env: 2026-10-25T00:47:41.3207665Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:41.3207822Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:41.3207970Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:41.3208112Z ##[endgroup] 2026-10-25T00:47:41.5159961Z ~/apps/web$ vp build ⊘ cache disabled 2026-10-25T00:47:42.3360226Z transforming... 2026-10-25T00:47:46.2846381Z ✓ 6675 modules transformed. 2026-10-25T00:47:46.7474306Z rendering chunks... 2026-10-25T00:47:48.7332364Z computing gzip size... 2026-10-25T00:47:48.7917655Z dist/assets/ghostty-write-pty-hgyAvVbe.wasm 0.11 kB │ gzip: 0.12 kB 2026-10-25T00:47:48.7918006Z dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff 4.42 kB 2026-10-25T00:47:48.7918253Z dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 4.92 kB 2026-10-25T00:47:48.7918599Z dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 5.20 kB 2026-10-25T00:47:48.7918836Z dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 5.46 kB 2026-10-25T00:47:48.7919128Z dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff 5.98 kB 2026-10-25T00:47:48.7919364Z dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff 6.18 kB 2026-10-25T00:47:48.7919607Z dist/assets/snap-shot-click-CJiuxMEv.mp3 6.38 kB 2026-10-25T00:47:48.7919844Z dist/assets/KaTeX_Size1-Regular-C195tn64.woff 6.49 kB 2026-10-25T00:47:48.7920143Z dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 6.90 kB 2026-10-25T00:47:48.7920404Z dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 6.91 kB 2026-10-25T00:47:48.7920647Z dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf 7.58 kB 2026-10-25T00:47:48.7920886Z dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff 7.65 kB 2026-10-25T00:47:48.7921134Z dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff 7.71 kB 2026-10-25T00:47:48.7921405Z dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 9.64 kB 2026-10-25T00:47:48.7921649Z dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 10.34 kB 2026-10-25T00:47:48.7921884Z dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf 10.36 kB 2026-10-25T00:47:48.7922124Z dist/assets/KaTeX_Script-Regular-D5yQViql.woff 10.58 kB 2026-10-25T00:47:48.7922359Z dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 11.31 kB 2026-10-25T00:47:48.7922599Z dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 11.34 kB 2026-10-25T00:47:48.7922836Z dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf 11.50 kB 2026-10-25T00:47:48.7923074Z dist/assets/notification-input-BJS4voY1.mp3 11.63 kB 2026-10-25T00:47:48.7923323Z dist/assets/notification-completion-vyCCbYsz.mp3 11.94 kB 2026-10-25T00:47:48.7923565Z dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 12.02 kB 2026-10-25T00:47:48.7923809Z dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 12.21 kB 2026-10-25T00:47:48.7924040Z dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf 12.22 kB 2026-10-25T00:47:48.7924277Z dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff 12.31 kB 2026-10-25T00:47:48.7924517Z dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf 12.34 kB 2026-10-25T00:47:48.7924761Z dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf 12.36 kB 2026-10-25T00:47:48.7925001Z dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff 13.20 kB 2026-10-25T00:47:48.7925239Z dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff 13.29 kB 2026-10-25T00:47:48.7925474Z dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 13.56 kB 2026-10-25T00:47:48.7925715Z dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff 14.11 kB 2026-10-25T00:47:48.7925951Z dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff 14.40 kB 2026-10-25T00:47:48.7926193Z dist/assets/snap-shot-whoosh-CQZ59XJc.mp3 15.02 kB 2026-10-25T00:47:48.7926429Z dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff 16.02 kB 2026-10-25T00:47:48.7927069Z dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 16.40 kB 2026-10-25T00:47:48.7927482Z dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 16.44 kB 2026-10-25T00:47:48.7927775Z dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf 16.64 kB 2026-10-25T00:47:48.7928806Z dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 16.78 kB 2026-10-25T00:47:48.7929339Z dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 16.98 kB 2026-10-25T00:47:48.7929628Z dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff 18.66 kB 2026-10-25T00:47:48.7929911Z dist/assets/KaTeX_Math-Italic-DA0__PXp.woff 18.74 kB 2026-10-25T00:47:48.7931084Z dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff 19.41 kB 2026-10-25T00:47:48.7931480Z dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf 19.43 kB 2026-10-25T00:47:48.7932099Z dist/index.html 19.49 kB │ gzip: 5.03 kB 2026-10-25T00:47:48.7932346Z dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf 19.57 kB 2026-10-25T00:47:48.7932589Z dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf 19.58 kB 2026-10-25T00:47:48.7932870Z dist/assets/KaTeX_Main-Italic-BMLOBm91.woff 19.67 kB 2026-10-25T00:47:48.7933167Z dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf 22.36 kB 2026-10-25T00:47:48.7933415Z dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf 24.50 kB 2026-10-25T00:47:48.7933652Z dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 25.32 kB 2026-10-25T00:47:48.7933896Z dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 26.27 kB 2026-10-25T00:47:48.7934138Z dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf 27.55 kB 2026-10-25T00:47:48.7934508Z dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 28.07 kB 2026-10-25T00:47:48.7934744Z dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff 29.91 kB 2026-10-25T00:47:48.7934999Z dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff 30.77 kB 2026-10-25T00:47:48.7935250Z dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf 31.19 kB 2026-10-25T00:47:48.7935509Z dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf 31.30 kB 2026-10-25T00:47:48.7935762Z dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf 32.96 kB 2026-10-25T00:47:48.7936018Z dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff 33.51 kB 2026-10-25T00:47:48.7936479Z dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf 33.58 kB 2026-10-25T00:47:48.7936741Z dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf 51.33 kB 2026-10-25T00:47:48.7936989Z dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf 53.58 kB 2026-10-25T00:47:48.7937219Z dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf 63.63 kB 2026-10-25T00:47:48.7937567Z dist/.vite/manifest.json 293.85 kB │ gzip: 30.63 kB 2026-10-25T00:47:48.7937871Z dist/assets/ghostty-vt-DdA0Zryv.wasm 630.93 kB │ gzip: 187.91 kB 2026-10-25T00:47:48.7938191Z dist/assets/worker-3-uhxiAg.js 836.41 kB 2026-10-25T00:47:48.7938491Z dist/third-party-licenses.json 852.62 kB │ gzip: 102.38 kB 2026-10-25T00:47:48.7938767Z dist/assets/SymbolsNerdFontMono-Regular-aK5vsLov.woff2 1,177.57 kB 2026-10-25T00:47:48.7939016Z dist/assets/ipad-pro-13-m5-DCWznkpd.glb 1,815.87 kB 2026-10-25T00:47:48.7939258Z dist/assets/ipad-pro-13-m5-magic-keyboard-l8da3bBi.glb 2,341.88 kB 2026-10-25T00:47:48.7939533Z dist/assets/iphone-18-pro-max-B3H2Zbeg.glb 2,399.02 kB 2026-10-25T00:47:48.7939772Z dist/assets/iphone-18-pro-Crheuaz9.glb 2,422.54 kB 2026-10-25T00:47:48.7940006Z dist/assets/iphone-duo-Cu4Xx1NH.glb 3,097.72 kB 2026-10-25T00:47:48.7940304Z dist/assets/MathTypeset-DEcVZfaU.css 28.83 kB │ gzip: 7.92 kB 2026-10-25T00:47:48.7940601Z dist/assets/main-CO_Qp_dy.css 528.10 kB │ gzip: 70.83 kB 2026-10-25T00:47:48.7941372Z dist/assets/JZOYTAAL-C8rq-IfH.js 0.05 kB │ gzip: 0.07 kB 2026-10-25T00:47:48.7941832Z dist/assets/_chat.draft._draftId-DJ7LAi8J.js 0.09 kB │ gzip: 0.11 kB │ map: 0.55 kB 2026-10-25T00:47:48.7942175Z dist/assets/legalLinks-BaIJY52l.js 0.10 kB │ gzip: 0.12 kB │ map: 0.24 kB 2026-10-25T00:47:48.7942527Z dist/assets/_chat._environmentId._threadId-DJ7LAi8J.js 0.10 kB │ gzip: 0.12 kB │ map: 0.57 kB 2026-10-25T00:47:48.7942865Z dist/assets/minus-DvZBHEtU.js 0.15 kB │ gzip: 0.16 kB │ map: 0.79 kB 2026-10-25T00:47:48.7943183Z dist/assets/circle-O_62Kz6M.js 0.16 kB │ gzip: 0.16 kB │ map: 0.84 kB 2026-10-25T00:47:48.7943503Z dist/assets/chevron-up-D-eqv5xz.js 0.16 kB │ gzip: 0.16 kB │ map: 0.83 kB 2026-10-25T00:47:48.7943835Z dist/assets/chevron-left-VzWFFfJV.js 0.17 kB │ gzip: 0.17 kB │ map: 0.84 kB 2026-10-25T00:47:48.7944160Z dist/assets/x-CtDhSmo0.js 0.18 kB │ gzip: 0.17 kB │ map: 0.87 kB 2026-10-25T00:47:48.7944475Z dist/assets/plus-DRJnlync.js 0.18 kB │ gzip: 0.17 kB │ map: 0.89 kB 2026-10-25T00:47:48.7944807Z dist/assets/FieldItemContext-D7F7CWCg.js 0.19 kB │ gzip: 0.18 kB │ map: 0.88 kB 2026-10-25T00:47:48.7945141Z dist/assets/arrow-up-Dxmh-8a4.js 0.19 kB │ gzip: 0.18 kB │ map: 0.92 kB 2026-10-25T00:47:48.7945457Z dist/assets/terminal-B7_CcXzt.js 0.19 kB │ gzip: 0.18 kB │ map: 0.92 kB 2026-10-25T00:47:48.7945777Z dist/assets/itemRows-DNgi4sqO.js 0.20 kB │ gzip: 0.17 kB │ map: 0.43 kB 2026-10-25T00:47:48.7946097Z dist/assets/arrow-down-CwiX2zUI.js 0.20 kB │ gzip: 0.18 kB │ map: 0.93 kB 2026-10-25T00:47:48.7946437Z dist/assets/RVARI57O-CgA1WoRv.js 0.20 kB │ gzip: 0.19 kB │ map: 0.64 kB 2026-10-25T00:47:48.7946761Z dist/assets/arrow-right-BV_nDoCV.js 0.20 kB │ gzip: 0.19 kB │ map: 0.94 kB 2026-10-25T00:47:48.7947082Z dist/assets/gauge--BDm3ivd.js 0.20 kB │ gzip: 0.19 kB │ map: 0.92 kB 2026-10-25T00:47:48.7947409Z dist/assets/chevrons-up-down-BkLK4jrE.js 0.21 kB │ gzip: 0.18 kB │ map: 0.98 kB 2026-10-25T00:47:48.7947737Z dist/assets/play-RXGUYyl2.js 0.22 kB │ gzip: 0.21 kB │ map: 0.90 kB 2026-10-25T00:47:48.7948053Z dist/assets/smartphone-D0Mgfa7D.js 0.23 kB │ gzip: 0.21 kB │ map: 1.04 kB 2026-10-25T00:47:48.7948379Z dist/assets/undo-2-CzUHuoIy.js 0.24 kB │ gzip: 0.20 kB │ map: 0.96 kB 2026-10-25T00:47:48.7948701Z dist/assets/circle-x-DkgNqhsK.js 0.24 kB │ gzip: 0.20 kB │ map: 1.05 kB 2026-10-25T00:47:48.7949038Z dist/assets/authRedirect-DWE5a_T9.js 0.25 kB │ gzip: 0.18 kB │ map: 1.23 kB 2026-10-25T00:47:48.7949369Z dist/assets/circle-arrow-up-Cnd0b-9q.js 0.26 kB │ gzip: 0.21 kB │ map: 1.11 kB 2026-10-25T00:47:48.7949702Z dist/assets/ellipsis-Ba3jR4KI.js 0.26 kB │ gzip: 0.19 kB │ map: 1.13 kB 2026-10-25T00:47:48.7950020Z dist/assets/log-in-axSX1Ul6.js 0.26 kB │ gzip: 0.21 kB │ map: 1.04 kB 2026-10-25T00:47:48.7950347Z dist/assets/useNavigate-TdC1tJsC.js 0.26 kB │ gzip: 0.22 kB │ map: 2.30 kB 2026-10-25T00:47:48.7950673Z dist/assets/useSearch-DPA0ljpQ.js 0.26 kB │ gzip: 0.20 kB │ map: 1.53 kB 2026-10-25T00:47:48.7951136Z dist/assets/copy-tx2aQfww.js 0.26 kB │ gzip: 0.23 kB │ map: 1.04 kB 2026-10-25T00:47:48.7951595Z dist/assets/cloneFileDiffMetadata-zVRGqYgv.js 0.27 kB │ gzip: 0.19 kB │ map: 1.23 kB 2026-10-25T00:47:48.7951951Z dist/assets/ellipsis-vertical-BmW5_1NR.js 0.28 kB │ gzip: 0.20 kB │ map: 1.19 kB 2026-10-25T00:47:48.7952290Z dist/assets/square-terminal-DLKd3WZs.js 0.28 kB │ gzip: 0.23 kB │ map: 1.18 kB 2026-10-25T00:47:48.7952617Z dist/assets/eye-DcrgQArc.js 0.28 kB │ gzip: 0.23 kB │ map: 1.05 kB 2026-10-25T00:47:48.7952937Z dist/assets/circle-alert-pHfDBynR.js 0.29 kB │ gzip: 0.21 kB │ map: 1.20 kB 2026-10-25T00:47:48.7953274Z dist/assets/external-link-C-DWxBJN.js 0.29 kB │ gzip: 0.23 kB │ map: 1.10 kB 2026-10-25T00:47:48.7953614Z dist/assets/mouse-pointer-2--4WLvE3e.js 0.29 kB │ gzip: 0.24 kB │ map: 1.02 kB 2026-10-25T00:47:48.7953952Z dist/assets/pencil-60m8KW76.js 0.31 kB │ gzip: 0.25 kB │ map: 1.06 kB 2026-10-25T00:47:48.7954274Z dist/assets/pen-line-CmhjfyJg.js 0.31 kB │ gzip: 0.25 kB │ map: 1.07 kB 2026-10-25T00:47:48.7954596Z dist/assets/plug-2-D0EPU-J9.js 0.31 kB │ gzip: 0.23 kB │ map: 1.21 kB 2026-10-25T00:47:48.7954916Z dist/assets/list-checks-C0UyaVrI.js 0.31 kB │ gzip: 0.22 kB │ map: 1.24 kB 2026-10-25T00:47:48.7955249Z dist/assets/FormContext-CvS93CGC.js 0.33 kB │ gzip: 0.26 kB │ map: 1.13 kB 2026-10-25T00:47:48.7955573Z dist/assets/archive-x-B1Lxt_ae.js 0.33 kB │ gzip: 0.25 kB │ map: 1.24 kB 2026-10-25T00:47:48.7955909Z dist/assets/message-square-off-CC4CSLfF.js 0.35 kB │ gzip: 0.27 kB │ map: 1.22 kB 2026-10-25T00:47:48.7956250Z dist/assets/refresh-cw-f0sYLYFw.js 0.35 kB │ gzip: 0.25 kB │ map: 1.22 kB 2026-10-25T00:47:48.7956591Z dist/assets/settings.general-CmLKZ3TP.js 0.36 kB │ gzip: 0.28 kB │ map: 0.84 kB 2026-10-25T00:47:48.7956918Z dist/assets/trash-2-BLtjvmSA.js 0.36 kB │ gzip: 0.24 kB │ map: 1.27 kB 2026-10-25T00:47:48.7957234Z dist/assets/camera-BPh_dJif.js 0.37 kB │ gzip: 0.28 kB │ map: 1.15 kB 2026-10-25T00:47:48.7957545Z dist/assets/server-CYq90Ros.js 0.37 kB │ gzip: 0.24 kB │ map: 1.43 kB 2026-10-25T00:47:48.7957866Z dist/assets/unlink-2-DC75hwNQ.js 0.38 kB │ gzip: 0.27 kB │ map: 1.83 kB 2026-10-25T00:47:48.7958177Z dist/assets/lock-B_0jes9T.js 0.39 kB │ gzip: 0.25 kB │ map: 1.93 kB 2026-10-25T00:47:48.7958604Z dist/assets/useLocation-BSjjN8Aq.js 0.39 kB │ gzip: 0.28 kB │ map: 2.27 kB 2026-10-25T00:47:48.7959082Z dist/assets/settings.scheduled-tasks-pSfVO_Bo.js 0.40 kB │ gzip: 0.29 kB │ map: 1.24 kB 2026-10-25T00:47:48.7972604Z dist/assets/toastHelpers-CSQRKo4F.js 0.40 kB │ gzip: 0.26 kB │ map: 2.12 kB 2026-10-25T00:47:48.7973000Z dist/assets/grip-vertical-B4CDIMqL.js 0.41 kB │ gzip: 0.23 kB │ map: 1.57 kB 2026-10-25T00:47:48.7973365Z dist/assets/useT3ConnectAuthPrompt-CR9QfNGw.js 0.41 kB │ gzip: 0.31 kB │ map: 0.95 kB 2026-10-25T00:47:48.7973719Z dist/assets/previewBridge-qGa-CNxP.js 0.42 kB │ gzip: 0.29 kB │ map: 1.92 kB 2026-10-25T00:47:48.7974115Z dist/assets/K3MD6TGW-dDX-mTDp.js 0.42 kB │ gzip: 0.32 kB │ map: 1.02 kB 2026-10-25T00:47:48.7974435Z dist/assets/hammer-BtSyZFYT.js 0.42 kB │ gzip: 0.30 kB │ map: 1.24 kB 2026-10-25T00:47:48.7974978Z dist/assets/inbox-BGGCARsb.js 0.43 kB │ gzip: 0.32 kB │ map: 1.89 kB 2026-10-25T00:47:48.7975439Z dist/assets/mouse-pointer-click-BFW6AziF.js 0.46 kB │ gzip: 0.31 kB │ map: 1.46 kB 2026-10-25T00:47:48.7975782Z dist/assets/eye-off-CGiC01Xr.js 0.46 kB │ gzip: 0.30 kB │ map: 1.37 kB 2026-10-25T00:47:48.7976116Z dist/assets/sliders-horizontal-BHkPcwje.js 0.47 kB │ gzip: 0.26 kB │ map: 1.68 kB 2026-10-25T00:47:48.7976455Z dist/assets/folder-BUa2a6zj.js 0.47 kB │ gzip: 0.31 kB │ map: 1.87 kB 2026-10-25T00:47:48.7976794Z dist/assets/fileCommentAnnotations-BgdL_7u9.js 0.48 kB │ gzip: 0.30 kB │ map: 2.48 kB 2026-10-25T00:47:48.7977151Z dist/assets/radio-tower-B-fb5gOx.js 0.49 kB │ gzip: 0.32 kB │ map: 1.58 kB 2026-10-25T00:47:48.7977485Z dist/assets/redirect-D3L17tzd.js 0.49 kB │ gzip: 0.32 kB │ map: 3.46 kB 2026-10-25T00:47:48.7977812Z dist/assets/star-CSH4IHn1.js 0.50 kB │ gzip: 0.32 kB │ map: 1.18 kB 2026-10-25T00:47:48.7978131Z dist/assets/file-braces-DgOzaxUZ.js 0.50 kB │ gzip: 0.29 kB │ map: 1.44 kB 2026-10-25T00:47:48.7978458Z dist/assets/folder-tree-BjnUo84q.js 0.51 kB │ gzip: 0.29 kB │ map: 1.45 kB 2026-10-25T00:47:48.7978790Z dist/assets/5THPTBWS-Ce_hS451.js 0.52 kB │ gzip: 0.34 kB │ map: 1.60 kB 2026-10-25T00:47:48.7979109Z dist/assets/sparkles-RZkyvAwn.js 0.53 kB │ gzip: 0.31 kB │ map: 1.44 kB 2026-10-25T00:47:48.7979441Z dist/assets/ScopedSwitch-BLKDR4ms.js 0.53 kB │ gzip: 0.39 kB │ map: 1.47 kB 2026-10-25T00:47:48.7979787Z dist/assets/browserLinkTarget-Ct5HgKmF.js 0.53 kB │ gzip: 0.36 kB │ map: 2.48 kB 2026-10-25T00:47:48.7980130Z dist/assets/TSHNXIZL-tOBBAS3M.js 0.53 kB │ gzip: 0.39 kB │ map: 1.34 kB 2026-10-25T00:47:48.7980448Z dist/assets/rows-3-DMely9jx.js 0.54 kB │ gzip: 0.31 kB │ map: 2.87 kB 2026-10-25T00:47:48.7980778Z dist/assets/onboarding-2IaIeBBD.js 0.54 kB │ gzip: 0.32 kB │ map: 2.20 kB 2026-10-25T00:47:48.7981111Z dist/assets/triangle-alert-C5aZTDBX.js 0.57 kB │ gzip: 0.33 kB │ map: 2.93 kB 2026-10-25T00:47:48.7981481Z dist/assets/paintbrush-DCImhdDK.js 0.57 kB │ gzip: 0.37 kB │ map: 1.44 kB 2026-10-25T00:47:48.7981823Z dist/assets/useAriaLabelledBy-BR4nDpa-.js 0.58 kB │ gzip: 0.40 kB │ map: 3.53 kB 2026-10-25T00:47:48.7982163Z dist/assets/codeowners-C8r90Shi.js 0.58 kB │ gzip: 0.34 kB │ map: 1.09 kB 2026-10-25T00:47:48.7982500Z dist/assets/trending-up-PW95SRBw.js 0.59 kB │ gzip: 0.34 kB │ map: 2.90 kB 2026-10-25T00:47:48.7982839Z dist/assets/G3MDBVQH-BZmnMkFw.js 0.60 kB │ gzip: 0.38 kB │ map: 1.76 kB 2026-10-25T00:47:48.7983174Z dist/assets/use-atom-command-D0SBaYWJ.js 0.60 kB │ gzip: 0.39 kB │ map: 1.86 kB 2026-10-25T00:47:48.7983516Z dist/assets/usageAccess-DbC8iwSr.js 0.62 kB │ gzip: 0.33 kB │ map: 2.05 kB 2026-10-25T00:47:48.7983841Z dist/assets/square-v7Oo0Y38.js 0.63 kB │ gzip: 0.38 kB │ map: 3.08 kB 2026-10-25T00:47:48.7984178Z dist/assets/composerTrigger-BP81K-4K.js 0.63 kB │ gzip: 0.38 kB │ map: 6.62 kB 2026-10-25T00:47:48.7984512Z dist/assets/jsx-runtime-DVMLLmEC.js 0.64 kB │ gzip: 0.44 kB │ map: 3.54 kB 2026-10-25T00:47:48.7984965Z dist/assets/monitor-DKhPzqUQ.js 0.64 kB │ gzip: 0.41 kB │ map: 2.90 kB 2026-10-25T00:47:48.7985369Z dist/assets/5GK6JWQ2-BX1wEbOV.js 0.64 kB │ gzip: 0.47 kB │ map: 1.68 kB 2026-10-25T00:47:48.7985706Z dist/assets/runtimeModeConfig-C97PIe3m.js 0.64 kB │ gzip: 0.38 kB │ map: 1.52 kB 2026-10-25T00:47:48.7986036Z dist/assets/upload-BcSejyNp.js 0.66 kB │ gzip: 0.39 kB │ map: 2.48 kB 2026-10-25T00:47:48.7986378Z dist/assets/WorkspacePageContainer-CJ-_jQLI.js 0.67 kB │ gzip: 0.48 kB │ map: 2.06 kB 2026-10-25T00:47:48.7986722Z dist/assets/CSPContext-L0FF4knb.js 0.71 kB │ gzip: 0.47 kB │ map: 4.09 kB 2026-10-25T00:47:48.7987073Z dist/assets/use-atom-query-runner-PEOH5NYs.js 0.71 kB │ gzip: 0.44 kB │ map: 2.46 kB 2026-10-25T00:47:48.7987416Z dist/assets/skeleton-Dgc3o1a0.js 0.72 kB │ gzip: 0.48 kB │ map: 1.79 kB 2026-10-25T00:47:48.7987746Z dist/assets/layers-Dl99swt-.js 0.73 kB │ gzip: 0.38 kB │ map: 2.42 kB 2026-10-25T00:47:48.7988069Z dist/assets/shellsession-B6LP6YJG.js 0.76 kB │ gzip: 0.46 kB │ map: 1.37 kB 2026-10-25T00:47:48.7988410Z dist/assets/usageShortcuts-X4hOPMZT.js 0.76 kB │ gzip: 0.44 kB │ map: 2.41 kB 2026-10-25T00:47:48.7988732Z dist/assets/tsv-sltzmVWM.js 0.77 kB │ gzip: 0.37 kB │ map: 1.38 kB 2026-10-25T00:47:48.7989055Z dist/assets/MathTypeset-DI9mO1ir.js 0.82 kB │ gzip: 0.57 kB │ map: 26.87 kB 2026-10-25T00:47:48.7989378Z dist/assets/DKTLEL5E-DciMwFJ1.js 0.87 kB │ gzip: 0.43 kB │ map: 2.42 kB 2026-10-25T00:47:48.7989711Z dist/assets/useNavigateBack-n4dg91ss.js 0.88 kB │ gzip: 0.56 kB │ map: 3.67 kB 2026-10-25T00:47:48.7990044Z dist/assets/pair-Onpm6pyP.js 0.88 kB │ gzip: 0.55 kB │ map: 3.77 kB 2026-10-25T00:47:48.7990381Z dist/assets/html-derivative-QfWcQxux.js 0.89 kB │ gzip: 0.49 kB │ map: 1.46 kB 2026-10-25T00:47:48.7990730Z dist/assets/useRelativeTimeState-B8Lvd7C7.js 0.90 kB │ gzip: 0.54 kB │ map: 3.30 kB 2026-10-25T00:47:48.7991080Z dist/assets/SecretInput-CQuFTdOQ.js 0.90 kB │ gzip: 0.60 kB │ map: 2.97 kB 2026-10-25T00:47:48.7991445Z dist/assets/linkedPrompt-C6C5XiUY.js 0.91 kB │ gzip: 0.53 kB │ map: 2.66 kB 2026-10-25T00:47:48.7991767Z dist/assets/kbd-Cw3_MqlV.js 0.99 kB │ gzip: 0.51 kB │ map: 2.57 kB 2026-10-25T00:47:48.7992104Z dist/assets/useScopedModelAvailability-jfy87_s6.js 0.99 kB │ gzip: 0.60 kB │ map: 4.94 kB 2026-10-25T00:47:48.7992456Z dist/assets/74OO7NKP-xOa_EYGV.js 1.01 kB │ gzip: 0.62 kB │ map: 2.78 kB 2026-10-25T00:47:48.7992781Z dist/assets/draft-input-BeZBn2hY.js 1.02 kB │ gzip: 0.66 kB │ map: 4.35 kB 2026-10-25T00:47:48.7993118Z dist/assets/git-rebase-Bl-U2xaZ.js 1.03 kB │ gzip: 0.47 kB │ map: 1.72 kB 2026-10-25T00:47:48.7993440Z dist/assets/qmldir-DCQb3MpD.js 1.03 kB │ gzip: 0.48 kB │ map: 1.74 kB 2026-10-25T00:47:48.7993762Z dist/assets/WEVWDWVA-DdWTXf_H.js 1.07 kB │ gzip: 0.57 kB │ map: 2.98 kB 2026-10-25T00:47:48.7994081Z dist/assets/type-IZznv1At.js 1.07 kB │ gzip: 0.52 kB │ map: 4.84 kB 2026-10-25T00:47:48.7994424Z dist/assets/git-pull-request-draft-Dd5x8xqM.js 1.09 kB │ gzip: 0.44 kB │ map: 5.05 kB 2026-10-25T00:47:48.7994876Z dist/assets/user-lock-3dt3yw_X.js 1.09 kB │ gzip: 0.50 kB │ map: 4.74 kB 2026-10-25T00:47:48.7995298Z dist/assets/sun-B8Xysd5K.js 1.11 kB │ gzip: 0.52 kB │ map: 4.01 kB 2026-10-25T00:47:48.7995611Z dist/assets/route-DV_JcBsb.js 1.12 kB │ gzip: 0.51 kB │ map: 4.41 kB 2026-10-25T00:47:48.7995930Z dist/assets/wrench-Ct0tGnPy.js 1.15 kB │ gzip: 0.57 kB │ map: 3.90 kB 2026-10-25T00:47:48.7996272Z dist/assets/pullRequestReviewStore-BK3EpAsH.js 1.15 kB │ gzip: 0.58 kB │ map: 5.66 kB 2026-10-25T00:47:48.7996613Z dist/assets/csv-Dx-8-gkx.js 1.17 kB │ gzip: 0.40 kB │ map: 2.00 kB 2026-10-25T00:47:48.7996935Z dist/assets/observeResize-QVk6LFlm.js 1.19 kB │ gzip: 0.64 kB │ map: 5.33 kB 2026-10-25T00:47:48.7997273Z dist/assets/minimize-2-BWhrEW73.js 1.20 kB │ gzip: 0.59 kB │ map: 5.47 kB 2026-10-25T00:47:48.7997613Z dist/assets/ExpandableText-W7jbJ4F3.js 1.23 kB │ gzip: 0.78 kB │ map: 5.16 kB 2026-10-25T00:47:48.7997958Z dist/assets/git-commit-BSykSTBG.js 1.27 kB │ gzip: 0.56 kB │ map: 2.07 kB 2026-10-25T00:47:48.7998375Z dist/assets/WorkspacePageHeader-DiSSvRct.js 1.30 kB │ gzip: 0.69 kB │ map: 4.15 kB 2026-10-25T00:47:48.7998726Z dist/assets/discovery-list-B2Nkc9ye.js 1.39 kB │ gzip: 0.76 kB │ map: 4.07 kB 2026-10-25T00:47:48.7999048Z dist/assets/xsl-Bqr2UbU6.js 1.40 kB │ gzip: 0.53 kB │ map: 2.22 kB 2026-10-25T00:47:48.7999380Z dist/assets/AuthSurfaceShell-nfQEGxgT.js 1.42 kB │ gzip: 0.75 kB │ map: 5.23 kB 2026-10-25T00:47:48.7999711Z dist/assets/semver-CFbvOQKc.js 1.42 kB │ gzip: 0.64 kB │ map: 9.55 kB 2026-10-25T00:47:48.8000040Z dist/assets/6IMQ5BUJ-B-aR9kFm.js 1.43 kB │ gzip: 0.79 kB │ map: 3.49 kB 2026-10-25T00:47:48.8000361Z dist/assets/dotenv-_5a1GRtc.js 1.45 kB │ gzip: 0.56 kB │ map: 2.34 kB 2026-10-25T00:47:48.8000687Z dist/assets/CommandBlock-CBru3tgb.js 1.48 kB │ gzip: 0.89 kB │ map: 4.75 kB 2026-10-25T00:47:48.8001008Z dist/assets/sparql-D_iOobhT.js 1.52 kB │ gzip: 0.84 kB │ map: 2.14 kB 2026-10-25T00:47:48.8001354Z dist/assets/ini-B5eOa1yu.js 1.55 kB │ gzip: 0.52 kB │ map: 2.47 kB 2026-10-25T00:47:48.8001677Z dist/assets/sourceControl--SOvXPWU.js 1.56 kB │ gzip: 0.52 kB │ map: 5.30 kB 2026-10-25T00:47:48.8002028Z dist/assets/RedactedSensitiveText-MHRh-uls.js 1.56 kB │ gzip: 0.96 kB │ map: 6.24 kB 2026-10-25T00:47:48.8002392Z dist/assets/previewMiniPlayerStore-CQC9Y-vO.js 1.56 kB │ gzip: 0.71 kB │ map: 8.23 kB 2026-10-25T00:47:48.8002763Z dist/assets/EnvironmentMachineIcon-DU4u3pSv.js 1.66 kB │ gzip: 0.80 kB │ map: 4.92 kB 2026-10-25T00:47:48.8003106Z dist/assets/5N7A7DKN-COCp6MDu.js 1.67 kB │ gzip: 0.96 kB │ map: 4.05 kB 2026-10-25T00:47:48.8003432Z dist/assets/preview-D2KUp8Z-.js 1.71 kB │ gzip: 0.59 kB │ map: 6.09 kB 2026-10-25T00:47:48.8003771Z dist/assets/fortran-fixed-form-DEKoE2YW.js 1.71 kB │ gzip: 0.72 kB │ map: 2.77 kB 2026-10-25T00:47:48.8004126Z dist/assets/ConnectionStatusDot-BklkFwwM.js 1.73 kB │ gzip: 0.92 kB │ map: 5.60 kB 2026-10-25T00:47:48.8004482Z dist/assets/T3ConnectSidebarSignIn-EXzXCY9B.js 1.75 kB │ gzip: 0.81 kB │ map: 5.39 kB 2026-10-25T00:47:48.8004824Z dist/assets/docker-IyjqRm3v.js 1.77 kB │ gzip: 0.63 kB │ map: 2.65 kB 2026-10-25T00:47:48.8005288Z dist/assets/hxml-B0Qn7Nwc.js 1.78 kB │ gzip: 0.91 kB │ map: 2.51 kB 2026-10-25T00:47:48.8005724Z dist/assets/WorkspaceBreadcrumb-DE80a7zX.js 1.80 kB │ gzip: 0.90 kB │ map: 5.93 kB 2026-10-25T00:47:48.8006062Z dist/assets/session-BpcsH_k3.js 1.81 kB │ gzip: 0.90 kB │ map: 8.91 kB 2026-10-25T00:47:48.8006374Z dist/assets/query-Bk6u0Vtd.js 1.81 kB │ gzip: 0.97 kB │ map: 8.50 kB 2026-10-25T00:47:48.8006698Z dist/assets/mediaSource-CmtRcijG.js 1.84 kB │ gzip: 0.91 kB │ map: 9.78 kB 2026-10-25T00:47:48.8007019Z dist/assets/desktop-Dlh5hvp9.js 1.87 kB │ gzip: 0.78 kB │ map: 2.76 kB 2026-10-25T00:47:48.8007346Z dist/assets/user-round-DIWQPoBt.js 1.87 kB │ gzip: 0.76 kB │ map: 8.43 kB 2026-10-25T00:47:48.8007683Z dist/assets/memory-stick-CTKyzUTl.js 1.89 kB │ gzip: 0.77 kB │ map: 7.67 kB 2026-10-25T00:47:48.8008021Z dist/assets/7WLXJQOR-D6QVYUu9.js 1.99 kB │ gzip: 1.00 kB │ map: 2.80 kB 2026-10-25T00:47:48.8008349Z dist/assets/attachments-BJvv6aSR.js 2.05 kB │ gzip: 0.89 kB │ map: 10.19 kB 2026-10-25T00:47:48.8008690Z dist/assets/NoProjectsHero-DeeRjITB.js 2.05 kB │ gzip: 1.05 kB │ map: 8.31 kB 2026-10-25T00:47:48.8009021Z dist/assets/textarea-D5ZyxP1b.js 2.05 kB │ gzip: 1.02 kB │ map: 7.13 kB 2026-10-25T00:47:48.8009366Z dist/assets/ProviderAuthTerminal-D64lmqwd.js 2.13 kB │ gzip: 1.14 kB │ map: 8.51 kB 2026-10-25T00:47:48.8009705Z dist/assets/search-xLME8fgJ.js 2.16 kB │ gzip: 1.13 kB │ map: 13.13 kB 2026-10-25T00:47:48.8010029Z dist/assets/erb-C0PT2tVJ.js 2.17 kB │ gzip: 0.65 kB │ map: 3.34 kB 2026-10-25T00:47:48.8010347Z dist/assets/5B3SVYGG-CU_C5hZm.js 2.17 kB │ gzip: 1.10 kB │ map: 5.94 kB 2026-10-25T00:47:48.8010669Z dist/assets/wenyan-C8pVoKbM.js 2.19 kB │ gzip: 1.13 kB │ map: 3.19 kB 2026-10-25T00:47:48.8010999Z dist/assets/AnimatedHeight-t4zEVwZ7.js 2.20 kB │ gzip: 1.11 kB │ map: 10.50 kB 2026-10-25T00:47:48.8011378Z dist/assets/assetUrls-RDew3RWy.js 2.23 kB │ gzip: 1.16 kB │ map: 8.60 kB 2026-10-25T00:47:48.8011697Z dist/assets/jssm-DXw9l8Rf.js 2.27 kB │ gzip: 0.64 kB │ map: 3.39 kB 2026-10-25T00:47:48.8012028Z dist/assets/EnvironmentRow--iVjLJ7W.js 2.29 kB │ gzip: 1.22 kB │ map: 8.55 kB 2026-10-25T00:47:48.8012364Z dist/assets/fileLinks-D3wr0sKR.js 2.33 kB │ gzip: 1.11 kB │ map: 11.00 kB 2026-10-25T00:47:48.8012697Z dist/assets/edge-DbocH-4h.js 2.34 kB │ gzip: 0.70 kB │ map: 3.63 kB 2026-10-25T00:47:48.8013006Z dist/assets/reg-CRGYupPL.js 2.37 kB │ gzip: 0.72 kB │ map: 3.51 kB 2026-10-25T00:47:48.8013345Z dist/assets/usePermissionStatus-Dh3ec5Hj.js 2.41 kB │ gzip: 1.26 kB │ map: 10.74 kB 2026-10-25T00:47:48.8013691Z dist/assets/useResizeDrag-K16rNICO.js 2.52 kB │ gzip: 1.17 kB │ map: 10.38 kB 2026-10-25T00:47:48.8014032Z dist/assets/square-pen-Bre3KHiZ.js 2.53 kB │ gzip: 1.08 kB │ map: 11.16 kB 2026-10-25T00:47:48.8014365Z dist/assets/FTXIJQGB-CggtIYAM.js 2.58 kB │ gzip: 1.15 kB │ map: 4.98 kB 2026-10-25T00:47:48.8014691Z dist/assets/diff-woXpYk--.js 2.60 kB │ gzip: 0.72 kB │ map: 3.86 kB 2026-10-25T00:47:48.8015154Z dist/assets/sourceControlPresentation-bRTiRs71.js 2.60 kB │ gzip: 1.35 kB │ map: 13.27 kB 2026-10-25T00:47:48.8015599Z dist/assets/gleam-CSRkHgEL.js 2.61 kB │ gzip: 0.85 kB │ map: 3.99 kB 2026-10-25T00:47:48.8015913Z dist/assets/connect-CwmJ6l_L.js 2.63 kB │ gzip: 1.41 kB │ map: 10.10 kB 2026-10-25T00:47:48.8016227Z dist/assets/hy-CZbG8q4J.js 2.68 kB │ gzip: 1.21 kB │ map: 3.69 kB 2026-10-25T00:47:48.8016577Z dist/assets/sidebarProjectGrouping-wLNAY6ep.js 2.75 kB │ gzip: 1.00 kB │ map: 11.52 kB 2026-10-25T00:47:48.8016948Z dist/assets/openscad-BUDT5pXO.js 2.86 kB │ gzip: 1.04 kB │ map: 4.23 kB 2026-10-25T00:47:48.8017262Z dist/assets/log-BNLmms1o.js 2.88 kB │ gzip: 0.93 kB │ map: 4.35 kB 2026-10-25T00:47:48.8017598Z dist/assets/standalone-page-BuwC2fNh.js 2.89 kB │ gzip: 1.25 kB │ map: 10.07 kB 2026-10-25T00:47:48.8017932Z dist/assets/json-CU5hZXC7.js 2.92 kB │ gzip: 0.85 kB │ map: 4.35 kB 2026-10-25T00:47:48.8018254Z dist/assets/preview-Bd1st8E1.js 2.95 kB │ gzip: 1.40 kB │ map: 11.90 kB 2026-10-25T00:47:48.8018570Z dist/assets/cairo-DLTphjLi.js 2.97 kB │ gzip: 0.83 kB │ map: 4.57 kB 2026-10-25T00:47:48.8018887Z dist/assets/berry-DKpUyyne.js 3.04 kB │ gzip: 0.84 kB │ map: 4.85 kB 2026-10-25T00:47:48.8019194Z dist/assets/jsonl-CmCQp5Yx.js 3.04 kB │ gzip: 0.82 kB │ map: 4.51 kB 2026-10-25T00:47:48.8019508Z dist/assets/jsonc-CYpm1nAK.js 3.14 kB │ gzip: 0.82 kB │ map: 4.61 kB 2026-10-25T00:47:48.8019824Z dist/assets/logo-Cluzi2Zq.js 3.16 kB │ gzip: 1.50 kB │ map: 3.82 kB 2026-10-25T00:47:48.8020156Z dist/assets/textDirection-DHqOqA8t.js 3.22 kB │ gzip: 1.47 kB │ map: 9.42 kB 2026-10-25T00:47:48.8020482Z dist/assets/po-BiJDBrnU.js 3.27 kB │ gzip: 0.94 kB │ map: 5.09 kB 2026-10-25T00:47:48.8020795Z dist/assets/device-BPPtu7gE.js 3.28 kB │ gzip: 1.44 kB │ map: 15.56 kB 2026-10-25T00:47:48.8021115Z dist/assets/json5-BR5RXkoi.js 3.29 kB │ gzip: 0.86 kB │ map: 4.96 kB 2026-10-25T00:47:48.8021468Z dist/assets/mipsasm-BMqwQI7S.js 3.29 kB │ gzip: 1.21 kB │ map: 4.68 kB 2026-10-25T00:47:48.8021787Z dist/assets/tasl-DMoTqEGO.js 3.32 kB │ gzip: 0.88 kB │ map: 5.13 kB 2026-10-25T00:47:48.8022097Z dist/assets/genie-CV2tkWYe.js 3.39 kB │ gzip: 1.24 kB │ map: 4.87 kB 2026-10-25T00:47:48.8022427Z dist/assets/rel-BtDbiS_P.js 3.40 kB │ gzip: 1.14 kB │ map: 4.88 kB 2026-10-25T00:47:48.8022739Z dist/assets/vala-zf12oZj6.js 3.40 kB │ gzip: 1.22 kB │ map: 4.90 kB 2026-10-25T00:47:48.8023054Z dist/assets/6OLKWJ4F-CThhaGrC.js 3.47 kB │ gzip: 1.65 kB │ map: 8.16 kB 2026-10-25T00:47:48.8023372Z dist/assets/splunk-BC2Px7Mm.js 3.47 kB │ gzip: 1.55 kB │ map: 4.45 kB 2026-10-25T00:47:48.8023711Z dist/assets/FoldedSettingsSection-DkVYn_O3.js 3.51 kB │ gzip: 1.63 kB │ map: 18.85 kB 2026-10-25T00:47:48.8024043Z dist/assets/users-JCKA3SAz.js 3.52 kB │ gzip: 1.35 kB │ map: 15.98 kB 2026-10-25T00:47:48.8024359Z dist/assets/hurl-Bjvvc9lj.js 3.55 kB │ gzip: 1.13 kB │ map: 5.48 kB 2026-10-25T00:47:48.8024802Z dist/assets/panel-tab-close-button-DebFVeIr.js 3.63 kB │ gzip: 1.89 kB │ map: 15.33 kB 2026-10-25T00:47:48.8025231Z dist/assets/usageFormat-C4qsPPdr.js 3.63 kB │ gzip: 1.47 kB │ map: 14.84 kB 2026-10-25T00:47:48.8025553Z dist/assets/fluent-C03EYrpw.js 3.64 kB │ gzip: 0.93 kB │ map: 5.21 kB 2026-10-25T00:47:48.8025871Z dist/assets/jsonnet-CJTPZ8u_.js 3.65 kB │ gzip: 1.07 kB │ map: 5.43 kB 2026-10-25T00:47:48.8026194Z dist/assets/ssh-config-BgfXC-Er.js 3.65 kB │ gzip: 1.63 kB │ map: 4.50 kB 2026-10-25T00:47:48.8026516Z dist/assets/kdl-CsD5j6eV.js 3.66 kB │ gzip: 1.07 kB │ map: 5.51 kB 2026-10-25T00:47:48.8026823Z dist/assets/narrat-_X_XdTYD.js 3.70 kB │ gzip: 1.13 kB │ map: 5.43 kB 2026-10-25T00:47:48.8027143Z dist/assets/glsl-B3Z4Qj6t.js 3.73 kB │ gzip: 1.48 kB │ map: 4.44 kB 2026-10-25T00:47:48.8027466Z dist/assets/t3ProjectFile-CgM48RMY.js 3.73 kB │ gzip: 1.54 kB │ map: 21.80 kB 2026-10-25T00:47:48.8027794Z dist/assets/turtle-ByJddavk.js 3.73 kB │ gzip: 1.00 kB │ map: 5.50 kB 2026-10-25T00:47:48.8028113Z dist/assets/threadSort-bjHzZAxR.js 3.75 kB │ gzip: 1.60 kB │ map: 20.16 kB 2026-10-25T00:47:48.8028451Z dist/assets/lazyRouteComponent-DqBqDcFe.js 3.80 kB │ gzip: 1.38 kB │ map: 25.98 kB 2026-10-25T00:47:48.8028793Z dist/assets/ProjectMonogram-CbvSBJJE.js 3.83 kB │ gzip: 1.57 kB │ map: 12.77 kB 2026-10-25T00:47:48.8029119Z dist/assets/ron-VUp2lXgN.js 3.94 kB │ gzip: 1.01 kB │ map: 6.03 kB 2026-10-25T00:47:48.8029432Z dist/assets/zenscript-BnlCZFoB.js 3.95 kB │ gzip: 1.31 kB │ map: 5.76 kB 2026-10-25T00:47:48.8029766Z dist/assets/toggle-group-waJK1jOg.js 3.98 kB │ gzip: 1.70 kB │ map: 17.27 kB 2026-10-25T00:47:48.8030095Z dist/assets/workflow-DZg1siTd.js 3.99 kB │ gzip: 1.44 kB │ map: 18.04 kB 2026-10-25T00:47:48.8030408Z dist/assets/gn-ilITqXS6.js 4.03 kB │ gzip: 1.52 kB │ map: 5.28 kB 2026-10-25T00:47:48.8030736Z dist/assets/SettingsPanels.logic-Dx7PQmHG.js 4.08 kB │ gzip: 1.35 kB │ map: 14.38 kB 2026-10-25T00:47:48.8031072Z dist/assets/alert-BEQ6cM9F.js 4.12 kB │ gzip: 1.62 kB │ map: 13.51 kB 2026-10-25T00:47:48.8031458Z dist/assets/CompositeRoot-Zwmu40Ot.js 4.13 kB │ gzip: 1.93 kB │ map: 20.99 kB 2026-10-25T00:47:48.8031788Z dist/assets/toggle-BkBox1qL.js 4.13 kB │ gzip: 1.73 kB │ map: 11.55 kB 2026-10-25T00:47:48.8032123Z dist/assets/SettingsScopeNotice-CgzJNeH4.js 4.14 kB │ gzip: 1.90 kB │ map: 19.31 kB 2026-10-25T00:47:48.8032468Z dist/assets/CXAC5362-CJnsXNLn.js 4.17 kB │ gzip: 1.97 kB │ map: 10.66 kB 2026-10-25T00:47:48.8032785Z dist/assets/pascal-4ZHwLPI5.js 4.18 kB │ gzip: 1.71 kB │ map: 5.54 kB 2026-10-25T00:47:48.8033102Z dist/assets/empty-D7TXfGnU.js 4.19 kB │ gzip: 1.46 kB │ map: 11.56 kB 2026-10-25T00:47:48.8033434Z dist/assets/desktopUpdate.logic-Xk4G9mJv.js 4.20 kB │ gzip: 1.69 kB │ map: 15.14 kB 2026-10-25T00:47:48.8033785Z dist/assets/vcsRefInvalidation-B7PHCYeo.js 4.23 kB │ gzip: 2.05 kB │ map: 30.70 kB 2026-10-25T00:47:48.8034115Z dist/assets/http-Dz--gbJ7.js 4.45 kB │ gzip: 1.09 kB │ map: 6.78 kB 2026-10-25T00:47:48.8034555Z dist/assets/tcl-CZd0xW_V.js 4.46 kB │ gzip: 1.54 kB │ map: 6.48 kB 2026-10-25T00:47:48.8034993Z dist/assets/timestampFormat-BBUHLb6E.js 4.46 kB │ gzip: 1.58 kB │ map: 20.84 kB 2026-10-25T00:47:48.8035328Z dist/assets/useParams-BljKV1Zm.js 4.53 kB │ gzip: 2.00 kB │ map: 26.30 kB 2026-10-25T00:47:48.8035650Z dist/assets/nextflow-BJtWHP5T.js 4.55 kB │ gzip: 1.20 kB │ map: 6.87 kB 2026-10-25T00:47:48.8035969Z dist/assets/rosmsg-CAekHB0j.js 4.56 kB │ gzip: 1.09 kB │ map: 6.76 kB 2026-10-25T00:47:48.8036311Z dist/assets/projectFilesQueryState-Ec0Q3mZx.js 4.59 kB │ gzip: 2.21 kB │ map: 20.23 kB 2026-10-25T00:47:48.8036647Z dist/assets/polar-C7UOKdEL.js 4.70 kB │ gzip: 1.16 kB │ map: 7.26 kB 2026-10-25T00:47:48.8036962Z dist/assets/assets-0Om-i-Gs.js 4.72 kB │ gzip: 2.10 kB │ map: 22.56 kB 2026-10-25T00:47:48.8037279Z dist/assets/sdbl-bTVj8UrX.js 4.73 kB │ gzip: 2.04 kB │ map: 5.90 kB 2026-10-25T00:47:48.8037601Z dist/assets/fennel-DQxkIbk2.js 4.80 kB │ gzip: 1.57 kB │ map: 6.43 kB 2026-10-25T00:47:48.8037912Z dist/assets/bibtex-Ci_nEsc7.js 4.83 kB │ gzip: 0.86 kB │ map: 7.03 kB 2026-10-25T00:47:48.8038238Z dist/assets/settings.archived-Cf_io2lc.js 5.02 kB │ gzip: 2.17 kB │ map: 31.79 kB 2026-10-25T00:47:48.8038642Z dist/assets/llvm-Cm23YOpf.js 5.08 kB │ gzip: 2.04 kB │ map: 6.68 kB 2026-10-25T00:47:48.8038958Z dist/assets/HDGCDEEZ-1x5g3Uav.js 5.17 kB │ gzip: 2.48 kB │ map: 13.05 kB 2026-10-25T00:47:48.8039270Z dist/assets/wgsl-BsKzXJz4.js 5.17 kB │ gzip: 1.42 kB │ map: 7.51 kB 2026-10-25T00:47:48.8039596Z dist/assets/keybindings-Bmo59ZIx.js 5.32 kB │ gzip: 2.14 kB │ map: 28.47 kB 2026-10-25T00:47:48.8039927Z dist/assets/gdresource-C0sCabJj.js 5.33 kB │ gzip: 1.36 kB │ map: 7.81 kB 2026-10-25T00:47:48.8040252Z dist/assets/5S6HY5KT-Du1lMa9Z.js 5.35 kB │ gzip: 2.67 kB │ map: 13.95 kB 2026-10-25T00:47:48.8040561Z dist/assets/zig-CMLA9XwU.js 5.37 kB │ gzip: 1.59 kB │ map: 7.87 kB 2026-10-25T00:47:48.8040870Z dist/assets/qml-DyjGyXLX.js 5.37 kB │ gzip: 1.41 kB │ map: 8.17 kB 2026-10-25T00:47:48.8041173Z dist/assets/dax-BkyTk9wS.js 5.39 kB │ gzip: 2.25 kB │ map: 6.77 kB 2026-10-25T00:47:48.8041520Z dist/assets/bicep-CUHmPFLl.js 5.41 kB │ gzip: 1.18 kB │ map: 7.92 kB 2026-10-25T00:47:48.8041979Z dist/assets/ReadOnlySourcePreview-D4A8mXtG.js 5.45 kB │ gzip: 2.22 kB │ map: 19.88 kB 2026-10-25T00:47:48.8042411Z dist/assets/xml-D1Mu8RCW.js 5.47 kB │ gzip: 1.27 kB │ map: 7.90 kB 2026-10-25T00:47:48.8042711Z dist/assets/awk-BWXHIvNe.js 5.49 kB │ gzip: 1.41 kB │ map: 8.00 kB 2026-10-25T00:47:48.8043016Z dist/assets/coq-BrsZFFmf.js 5.58 kB │ gzip: 1.95 kB │ map: 7.52 kB 2026-10-25T00:47:48.8043320Z dist/assets/jinja-C4P3y_qB.js 5.67 kB │ gzip: 1.39 kB │ map: 8.57 kB 2026-10-25T00:47:48.8043644Z dist/assets/mediaReference-CtibswX0.js 5.76 kB │ gzip: 2.53 kB │ map: 26.43 kB 2026-10-25T00:47:48.8043979Z dist/assets/guideRunStore-DsFPTMdx.js 5.76 kB │ gzip: 2.55 kB │ map: 26.90 kB 2026-10-25T00:47:48.8044310Z dist/assets/UQJE5E4I-CVl3DNyl.js 5.77 kB │ gzip: 2.88 kB │ map: 16.01 kB 2026-10-25T00:47:48.8044634Z dist/assets/settings-BM60Fgqo.js 5.78 kB │ gzip: 2.48 kB │ map: 23.03 kB 2026-10-25T00:47:48.8044957Z dist/assets/primary-CiCP6nQB.js 5.80 kB │ gzip: 2.27 kB │ map: 25.91 kB 2026-10-25T00:47:48.8045268Z dist/assets/lean-CewbzKMR.js 5.81 kB │ gzip: 1.95 kB │ map: 7.88 kB 2026-10-25T00:47:48.8045582Z dist/assets/moonbit-CaWjb8XO.js 5.93 kB │ gzip: 1.71 kB │ map: 8.68 kB 2026-10-25T00:47:48.8045905Z dist/assets/powerquery-DNMTfnFr.js 5.94 kB │ gzip: 1.54 kB │ map: 8.52 kB 2026-10-25T00:47:48.8046232Z dist/assets/shaderlab-TOUzSsQk.js 5.96 kB │ gzip: 2.11 kB │ map: 7.73 kB 2026-10-25T00:47:48.8046548Z dist/assets/verilog-CiiDBU1e.js 5.96 kB │ gzip: 1.93 kB │ map: 8.03 kB 2026-10-25T00:47:48.8046867Z dist/assets/cypher-ClKdZ_lG.js 5.99 kB │ gzip: 1.75 kB │ map: 8.44 kB 2026-10-25T00:47:48.8047179Z dist/assets/zap-CU6xHUKO.js 6.12 kB │ gzip: 2.29 kB │ map: 26.87 kB 2026-10-25T00:47:48.8047484Z dist/assets/vb-Djn5o6TS.js 6.12 kB │ gzip: 2.37 kB │ map: 8.05 kB 2026-10-25T00:47:48.8047799Z dist/assets/input-group-Bt72NxKI.js 6.15 kB │ gzip: 1.93 kB │ map: 11.42 kB 2026-10-25T00:47:48.8048129Z dist/assets/color-picker-DFmnycCq.js 6.27 kB │ gzip: 2.94 kB │ map: 27.68 kB 2026-10-25T00:47:48.8048477Z dist/assets/KeybindingsSettings.logic-DO4zR2TV.js 6.28 kB │ gzip: 2.55 kB │ map: 27.02 kB 2026-10-25T00:47:48.8048814Z dist/assets/red-CJ3rzSJv.js 6.30 kB │ gzip: 1.63 kB │ map: 8.89 kB 2026-10-25T00:47:48.8049127Z dist/assets/min-dark-BSWPekZh.js 6.33 kB │ gzip: 1.74 kB │ map: 8.63 kB 2026-10-25T00:47:48.8049451Z dist/assets/gdshader-CBce3t8t.js 6.36 kB │ gzip: 1.75 kB │ map: 9.20 kB 2026-10-25T00:47:48.8049764Z dist/assets/prisma-BsRQq5mF.js 6.36 kB │ gzip: 1.42 kB │ map: 9.28 kB 2026-10-25T00:47:48.8050080Z dist/assets/ara-4CJ0cIlV.js 6.39 kB │ gzip: 1.84 kB │ map: 9.26 kB 2026-10-25T00:47:48.8050416Z dist/assets/ConnectionDiagnosisDetails-ox0lZA_I.js 6.40 kB │ gzip: 2.81 kB │ map: 28.56 kB 2026-10-25T00:47:48.8050761Z dist/assets/DYY6UVD2-DVEC7AP6.js 6.44 kB │ gzip: 3.05 kB │ map: 16.52 kB 2026-10-25T00:47:48.8051078Z dist/assets/clojure-DqKBuwfJ.js 6.45 kB │ gzip: 1.45 kB │ map: 9.29 kB 2026-10-25T00:47:48.8051529Z dist/assets/postcss-BXeXVLqQ.js 6.45 kB │ gzip: 1.94 kB │ map: 9.12 kB 2026-10-25T00:47:48.8051923Z dist/assets/toml-CcmNWLt0.js 6.46 kB │ gzip: 1.31 kB │ map: 9.48 kB 2026-10-25T00:47:48.8052249Z dist/assets/solarized-light-DSh2HLQt.js 6.53 kB │ gzip: 1.75 kB │ map: 9.25 kB 2026-10-25T00:47:48.8052608Z dist/assets/scheduledTasksSettings.logic-DQNajrjY.js 6.53 kB │ gzip: 2.66 kB │ map: 25.74 kB 2026-10-25T00:47:48.8052955Z dist/assets/proto-DB4EqR-F.js 6.58 kB │ gzip: 1.45 kB │ map: 9.91 kB 2026-10-25T00:47:48.8053271Z dist/assets/smalltalk-B16xEiuN.js 6.62 kB │ gzip: 1.65 kB │ map: 9.26 kB 2026-10-25T00:47:48.8053581Z dist/assets/r-D4tONY_S.js 6.63 kB │ gzip: 1.86 kB │ map: 10.16 kB 2026-10-25T00:47:48.8053893Z dist/assets/talonscript-CohzipZa.js 6.79 kB │ gzip: 1.52 kB │ map: 10.08 kB 2026-10-25T00:47:48.8054233Z dist/assets/solarized-dark-DV17i1UV.js 6.89 kB │ gzip: 1.81 kB │ map: 9.71 kB 2026-10-25T00:47:48.8054560Z dist/assets/riscv-Ckw8ddFX.js 6.95 kB │ gzip: 2.01 kB │ map: 9.60 kB 2026-10-25T00:47:48.8054873Z dist/assets/soy-BZidhfq9.js 6.96 kB │ gzip: 1.66 kB │ map: 10.74 kB 2026-10-25T00:47:48.8055184Z dist/assets/min-light-DDpmG2fV.js 7.01 kB │ gzip: 1.92 kB │ map: 9.56 kB 2026-10-25T00:47:48.8055507Z dist/assets/4UO7MD6I-B0slhmQa.js 7.08 kB │ gzip: 3.24 kB │ map: 18.76 kB 2026-10-25T00:47:48.8055822Z dist/assets/scheme-DQCgrYNe.js 7.20 kB │ gzip: 2.08 kB │ map: 9.80 kB 2026-10-25T00:47:48.8056139Z dist/assets/O7XIQ6OM-BeyZ-WnF.js 7.27 kB │ gzip: 3.30 kB │ map: 19.44 kB 2026-10-25T00:47:48.8056467Z dist/assets/hlsl-Cvrh5tZx.js 7.29 kB │ gzip: 2.21 kB │ map: 9.25 kB 2026-10-25T00:47:48.8056785Z dist/assets/YVG2LODB-MI-CMDrv.js 7.34 kB │ gzip: 3.35 kB │ map: 18.98 kB 2026-10-25T00:47:48.8057098Z dist/assets/qss-Fe1Jh2GI.js 7.50 kB │ gzip: 2.60 kB │ map: 9.41 kB 2026-10-25T00:47:48.8057412Z dist/assets/collapsible-Cq2MdqWS.js 7.51 kB │ gzip: 3.05 kB │ map: 47.01 kB 2026-10-25T00:47:48.8057736Z dist/assets/CEQABKGZ-BpEUJPvN.js 7.59 kB │ gzip: 3.52 kB │ map: 19.22 kB 2026-10-25T00:47:48.8058072Z dist/assets/primaryCloudLinkState-BWPfwhHO.js 7.66 kB │ gzip: 3.05 kB │ map: 32.29 kB 2026-10-25T00:47:48.8058412Z dist/assets/htmlRender-CGLtEGoi.js 7.71 kB │ gzip: 3.15 kB │ map: 30.90 kB 2026-10-25T00:47:48.8058734Z dist/assets/checkbox-o3CIBv60.js 7.73 kB │ gzip: 3.39 kB │ map: 42.78 kB 2026-10-25T00:47:48.8059063Z dist/assets/DiffFileTree-CgVDVLDh.js 7.75 kB │ gzip: 3.61 kB │ map: 42.65 kB 2026-10-25T00:47:48.8059391Z dist/assets/radio-group-COHhrqoP.js 7.82 kB │ gzip: 3.33 kB │ map: 38.48 kB 2026-10-25T00:47:48.8059718Z dist/assets/systemd-BxMlprV5.js 7.90 kB │ gzip: 2.57 kB │ map: 10.64 kB 2026-10-25T00:47:48.8060036Z dist/assets/_chat.index-BfWaOxeu.js 7.92 kB │ gzip: 3.10 kB │ map: 31.56 kB 2026-10-25T00:47:48.8060356Z dist/assets/monokai-CdkpiU2Y.js 7.92 kB │ gzip: 1.94 kB │ map: 11.12 kB 2026-10-25T00:47:48.8060666Z dist/assets/index-CMyUqlo0.js 8.01 kB │ gzip: 3.88 kB │ map: 1.93 kB 2026-10-25T00:47:48.8060980Z dist/assets/regexp-C160j5mr.js 8.08 kB │ gzip: 1.49 kB │ map: 11.23 kB 2026-10-25T00:47:48.8061436Z dist/assets/LUXOKEGN-VlYCaUiK.js 8.24 kB │ gzip: 3.73 kB │ map: 21.07 kB 2026-10-25T00:47:48.8061829Z dist/assets/haml-78M2RzJ5.js 8.36 kB │ gzip: 1.88 kB │ map: 12.45 kB 2026-10-25T00:47:48.8062135Z dist/assets/typst-DI99ib-x.js 8.42 kB │ gzip: 1.70 kB │ map: 12.31 kB 2026-10-25T00:47:48.8062451Z dist/assets/vue-html-_q5YSMOd.js 8.52 kB │ gzip: 1.72 kB │ map: 12.03 kB 2026-10-25T00:47:48.8062762Z dist/assets/plsql-DGHpHOYJ.js 8.54 kB │ gzip: 3.03 kB │ map: 10.90 kB 2026-10-25T00:47:48.8063073Z dist/assets/dart-CnvKMtbv.js 8.65 kB │ gzip: 2.03 kB │ map: 12.66 kB 2026-10-25T00:47:48.8063383Z dist/assets/horizon-CE9ld1lL.js 8.82 kB │ gzip: 1.98 kB │ map: 12.09 kB 2026-10-25T00:47:48.8063703Z dist/assets/kotlin-DhhofPvG.js 8.82 kB │ gzip: 2.16 kB │ map: 12.79 kB 2026-10-25T00:47:48.8064030Z dist/assets/horizon-bright-DSNQnXHK.js 8.83 kB │ gzip: 1.99 kB │ map: 12.14 kB 2026-10-25T00:47:48.8064406Z dist/assets/ProjectIconPickerDialog-xcB2qTdY.js 8.92 kB │ gzip: 3.74 kB │ map: 52.01 kB 2026-10-25T00:47:48.8064742Z dist/assets/react-beAb49SJ.js 8.97 kB │ gzip: 3.50 kB │ map: 31.05 kB 2026-10-25T00:47:48.8065054Z dist/assets/make-Dixweg8N.js 8.99 kB │ gzip: 1.79 kB │ map: 12.87 kB 2026-10-25T00:47:48.8065367Z dist/assets/andromeeda-vGVdxbeo.js 9.06 kB │ gzip: 2.39 kB │ map: 11.97 kB 2026-10-25T00:47:48.8065684Z dist/assets/sas-DNZ6OI-k.js 9.10 kB │ gzip: 3.85 kB │ map: 11.14 kB 2026-10-25T00:47:48.8066001Z dist/assets/dark-plus-Cs2F2srj.js 9.14 kB │ gzip: 2.13 kB │ map: 12.44 kB 2026-10-25T00:47:48.8066330Z dist/assets/slack-dark-DnToyrRv.js 9.16 kB │ gzip: 1.99 kB │ map: 12.54 kB 2026-10-25T00:47:48.8066659Z dist/assets/connect-agent-BAftkSPL.js 9.16 kB │ gzip: 3.98 kB │ map: 39.85 kB 2026-10-25T00:47:48.8066997Z dist/assets/terminalSessions-CkAVkskb.js 9.20 kB │ gzip: 3.19 kB │ map: 42.87 kB 2026-10-25T00:47:48.8067325Z dist/assets/2NI2N5EU-DK9O5Pmt.js 9.32 kB │ gzip: 4.19 kB │ map: 24.57 kB 2026-10-25T00:47:48.8067638Z dist/assets/sass-DXrisJhu.js 9.32 kB │ gzip: 2.52 kB │ map: 13.42 kB 2026-10-25T00:47:48.8067948Z dist/assets/plastic-DQwYfKfQ.js 9.33 kB │ gzip: 2.00 kB │ map: 12.50 kB 2026-10-25T00:47:48.8068267Z dist/assets/XBNEOJTC-DAvIalhq.js 9.44 kB │ gzip: 4.24 kB │ map: 25.57 kB 2026-10-25T00:47:48.8068615Z dist/assets/use-orchestration-command-Bl0d6ug2.js 9.47 kB │ gzip: 3.02 kB │ map: 38.41 kB 2026-10-25T00:47:48.8068969Z dist/assets/slack-ochin-B2OO5cIa.js 9.47 kB │ gzip: 2.12 kB │ map: 13.13 kB 2026-10-25T00:47:48.8069284Z dist/assets/tex-D4kYGkpD.js 9.71 kB │ gzip: 3.10 kB │ map: 12.45 kB 2026-10-25T00:47:48.8069594Z dist/assets/jison-Byt20Y-H.js 9.73 kB │ gzip: 1.90 kB │ map: 14.14 kB 2026-10-25T00:47:48.8069902Z dist/assets/cmake-Bj61d0ZC.js 9.89 kB │ gzip: 3.41 kB │ map: 11.27 kB 2026-10-25T00:47:48.8070222Z dist/assets/light-plus-DVQuIRkW.js 9.98 kB │ gzip: 2.31 kB │ map: 13.44 kB 2026-10-25T00:47:48.8070575Z dist/assets/settings.open-source-licenses-5otc96fo.js 9.99 kB │ gzip: 4.09 kB │ map: 46.85 kB 2026-10-25T00:47:48.8071053Z dist/assets/hcl-Dh228itO.js 10.08 kB │ gzip: 1.96 kB │ map: 14.80 kB 2026-10-25T00:47:48.8071501Z dist/assets/imageCompression-D_7IRkRV.js 10.19 kB │ gzip: 4.08 kB │ map: 45.60 kB 2026-10-25T00:47:48.8071826Z dist/assets/rst-OA9zXOEF.js 10.35 kB │ gzip: 2.28 kB │ map: 15.73 kB 2026-10-25T00:47:48.8072135Z dist/assets/pkl-ot-7Btpt.js 10.40 kB │ gzip: 1.41 kB │ map: 15.48 kB 2026-10-25T00:47:48.8072454Z dist/assets/beancount-D-usSTwE.js 10.41 kB │ gzip: 1.46 kB │ map: 15.05 kB 2026-10-25T00:47:48.8072785Z dist/assets/nextflow-groovy-DJMQeKeT.js 10.48 kB │ gzip: 2.17 kB │ map: 15.26 kB 2026-10-25T00:47:48.8073117Z dist/assets/YURCZMG2-DlAfbiWJ.js 10.49 kB │ gzip: 4.56 kB │ map: 25.28 kB 2026-10-25T00:47:48.8073435Z dist/assets/raku-B3gFvitq.js 10.50 kB │ gzip: 2.97 kB │ map: 12.92 kB 2026-10-25T00:47:48.8073759Z dist/assets/dream-maker-DW3nJb8Q.js 10.51 kB │ gzip: 2.29 kB │ map: 15.13 kB 2026-10-25T00:47:48.8074082Z dist/assets/_chat.new-CjTfto7S.js 10.58 kB │ gzip: 4.54 kB │ map: 45.05 kB 2026-10-25T00:47:48.8074397Z dist/assets/yaml-DqrBPYEo.js 10.60 kB │ gzip: 2.34 kB │ map: 14.93 kB 2026-10-25T00:47:48.8074725Z dist/assets/browserHistoryStore-B0MVoJca.js 10.62 kB │ gzip: 4.20 kB │ map: 55.77 kB 2026-10-25T00:47:48.8075057Z dist/assets/just-DDwlfhUt.js 10.85 kB │ gzip: 2.64 kB │ map: 15.45 kB 2026-10-25T00:47:48.8075360Z dist/assets/elm-ByOPkR8C.js 10.98 kB │ gzip: 2.13 kB │ map: 16.07 kB 2026-10-25T00:47:48.8075680Z dist/assets/phoneViewer-Bh4dY6ql.js 11.04 kB │ gzip: 4.64 kB │ map: 49.75 kB 2026-10-25T00:47:48.8076008Z dist/assets/K7RP3OMA-fOTtB9Z6.js 11.18 kB │ gzip: 5.02 kB │ map: 29.89 kB 2026-10-25T00:47:48.8076342Z dist/assets/github-light-EUqPIrTm.js 11.23 kB │ gzip: 2.53 kB │ map: 15.44 kB 2026-10-25T00:47:48.8076681Z dist/assets/prolog-iXnhIJG7.js 11.39 kB │ gzip: 3.88 kB │ map: 13.31 kB 2026-10-25T00:47:48.8077005Z dist/assets/terraform-DswuEJGm.js 11.42 kB │ gzip: 2.54 kB │ map: 16.23 kB 2026-10-25T00:47:48.8077330Z dist/assets/github-dark-C-LZuMrd.js 11.45 kB │ gzip: 2.56 kB │ map: 15.70 kB 2026-10-25T00:47:48.8077668Z dist/assets/puppet-CDv2pdJW.js 11.47 kB │ gzip: 2.14 kB │ map: 16.33 kB 2026-10-25T00:47:48.8077987Z dist/assets/77XECAW3-Euna1HS3.js 11.54 kB │ gzip: 5.35 kB │ map: 27.96 kB 2026-10-25T00:47:48.8078375Z dist/assets/laserwave-C_8bwKvT.js 11.54 kB │ gzip: 2.61 kB │ map: 14.72 kB 2026-10-25T00:47:48.8078708Z dist/assets/ProjectFavicon-BccZl-F7.js 11.76 kB │ gzip: 5.20 kB │ map: 15.88 kB 2026-10-25T00:47:48.8079034Z dist/assets/gherkin-DExj1W_8.js 11.98 kB │ gzip: 5.08 kB │ map: 13.13 kB 2026-10-25T00:47:48.8079351Z dist/assets/wasm-ByWQv1Qj.js 12.04 kB │ gzip: 2.21 kB │ map: 16.85 kB 2026-10-25T00:47:48.8079659Z dist/assets/hjson-CxZEssPk.js 12.08 kB │ gzip: 1.67 kB │ map: 17.29 kB 2026-10-25T00:47:48.8079983Z dist/assets/YHV2MVVZ-pXQHJzpW.js 12.09 kB │ gzip: 5.11 kB │ map: 36.55 kB 2026-10-25T00:47:48.8080302Z dist/assets/ABYRPUBD-CQaZ7eB6.js 12.11 kB │ gzip: 3.25 kB │ map: 36.28 kB 2026-10-25T00:47:48.8080796Z dist/assets/handlebars-C2O4g9kv.js 12.21 kB │ gzip: 2.41 kB │ map: 17.46 kB 2026-10-25T00:47:48.8081248Z dist/assets/ProjectDefaultsSettings-BDcMKG1z.js 12.44 kB │ gzip: 4.48 kB │ map: 68.04 kB 2026-10-25T00:47:48.8081608Z dist/assets/apache-U0d_L8uA.js 12.49 kB │ gzip: 3.74 kB │ map: 15.96 kB 2026-10-25T00:47:48.8081922Z dist/assets/vesper-DdrHHSXu.js 12.77 kB │ gzip: 2.03 kB │ map: 16.24 kB 2026-10-25T00:47:48.8082255Z dist/assets/ProviderSettingsForm-C4AXyGq0.js 12.91 kB │ gzip: 4.88 kB │ map: 60.05 kB 2026-10-25T00:47:48.8082588Z dist/assets/bat-Bo4NYOV-.js 12.92 kB │ gzip: 3.26 kB │ map: 17.40 kB 2026-10-25T00:47:48.8082896Z dist/assets/fish-BJitypiv.js 13.07 kB │ gzip: 1.76 kB │ map: 16.86 kB 2026-10-25T00:47:48.8083209Z dist/assets/qr-code-CmPFsYWt.js 13.19 kB │ gzip: 5.02 kB │ map: 49.58 kB 2026-10-25T00:47:48.8083522Z dist/assets/v-DETTlOr0.js 13.24 kB │ gzip: 2.76 kB │ map: 19.27 kB 2026-10-25T00:47:48.8083841Z dist/assets/NUIALGQ3-CIFshjGY.js 13.25 kB │ gzip: 5.62 kB │ map: 40.22 kB 2026-10-25T00:47:48.8084155Z dist/assets/OFQON5FD-CQh_K5fK.js 13.49 kB │ gzip: 5.51 kB │ map: 34.02 kB 2026-10-25T00:47:48.8084479Z dist/assets/vitesse-light-VbXTXTou.js 13.66 kB │ gzip: 3.06 kB │ map: 18.57 kB 2026-10-25T00:47:48.8084803Z dist/assets/aurora-x-CDeNXAV0.js 13.70 kB │ gzip: 2.32 kB │ map: 17.59 kB 2026-10-25T00:47:48.8085130Z dist/assets/vitesse-black-fwtXNY1n.js 13.72 kB │ gzip: 3.09 kB │ map: 18.66 kB 2026-10-25T00:47:48.8085457Z dist/assets/vitesse-dark-BZCL-v6S.js 13.80 kB │ gzip: 3.10 kB │ map: 18.73 kB 2026-10-25T00:47:48.8085792Z dist/assets/DeviceSetup-DIBzmSkX.js 13.81 kB │ gzip: 5.11 kB │ map: 59.86 kB 2026-10-25T00:47:48.8086114Z dist/assets/pug-H48468vj.js 13.89 kB │ gzip: 2.62 kB │ map: 20.57 kB 2026-10-25T00:47:48.8086435Z dist/assets/synthwave-84-nFMaYfgc.js 14.08 kB │ gzip: 2.88 kB │ map: 19.12 kB 2026-10-25T00:47:48.8086758Z dist/assets/PJQHF43J-t4bX7WjL.js 14.12 kB │ gzip: 5.87 kB │ map: 39.03 kB 2026-10-25T00:47:48.8087096Z dist/assets/github-light-default-BXViO-2h.js 14.21 kB │ gzip: 3.05 kB │ map: 19.30 kB 2026-10-25T00:47:48.8087428Z dist/assets/clarity-SemFz856.js 14.31 kB │ gzip: 2.50 kB │ map: 19.95 kB 2026-10-25T00:47:48.8087776Z dist/assets/github-light-high-contrast-B68TUdTA.js 14.33 kB │ gzip: 3.03 kB │ map: 19.48 kB 2026-10-25T00:47:48.8088137Z dist/assets/github-dark-dimmed-Bx1FflLF.js 14.48 kB │ gzip: 3.15 kB │ map: 19.67 kB 2026-10-25T00:47:48.8088490Z dist/assets/github-dark-default-DXG-b-1a.js 14.48 kB │ gzip: 3.15 kB │ map: 19.68 kB 2026-10-25T00:47:48.8088821Z dist/assets/X62E3GBT-BfiTW904.js 14.54 kB │ gzip: 6.34 kB │ map: 39.30 kB 2026-10-25T00:47:48.8089160Z dist/assets/github-dark-high-contrast-B_tTalzw.js 14.65 kB │ gzip: 3.11 kB │ map: 19.91 kB 2026-10-25T00:47:48.8089498Z dist/assets/gnuplot-7GGW24-e.js 14.82 kB │ gzip: 3.31 kB │ map: 20.83 kB 2026-10-25T00:47:48.8089812Z dist/assets/rust-Cfkwpbl8.js 15.10 kB │ gzip: 2.75 kB │ map: 21.47 kB 2026-10-25T00:47:48.8090124Z dist/assets/FNOVOB4O-C9dfkhow.js 15.14 kB │ gzip: 5.88 kB │ map: 38.44 kB 2026-10-25T00:47:48.8090439Z dist/assets/kusto-C7mF5XQf.js 15.20 kB │ gzip: 3.96 kB │ map: 19.63 kB 2026-10-25T00:47:48.8090891Z dist/assets/actionscript-3--17pq3dv.js 15.25 kB │ gzip: 2.71 kB │ map: 21.47 kB 2026-10-25T00:47:48.8091319Z dist/assets/duoViewer-Dxiym9WW.js 15.46 kB │ gzip: 6.05 kB │ map: 65.43 kB 2026-10-25T00:47:48.8091634Z dist/assets/nix-IvuFDN5E.js 15.54 kB │ gzip: 2.51 kB │ map: 22.93 kB 2026-10-25T00:47:48.8091936Z dist/assets/lua-1Va2DEvn.js 15.63 kB │ gzip: 3.22 kB │ map: 22.17 kB 2026-10-25T00:47:48.8092266Z dist/assets/usePullRequestActions-BefKfm79.js 15.66 kB │ gzip: 5.28 kB │ map: 66.12 kB 2026-10-25T00:47:48.8092597Z dist/assets/luau-FMPmPwt6.js 15.66 kB │ gzip: 3.42 kB │ map: 21.88 kB 2026-10-25T00:47:48.8092907Z dist/assets/abap-CLvhMVsD.js 15.88 kB │ gzip: 5.96 kB │ map: 18.85 kB 2026-10-25T00:47:48.8093224Z dist/assets/solidity-CKzVLygQ.js 16.11 kB │ gzip: 3.13 kB │ map: 23.46 kB 2026-10-25T00:47:48.8093548Z dist/assets/matlab-D7qyCx1q.js 16.12 kB │ gzip: 3.10 kB │ map: 23.37 kB 2026-10-25T00:47:48.8093854Z dist/assets/cue-CE9AQfxI.js 16.23 kB │ gzip: 2.08 kB │ map: 23.80 kB 2026-10-25T00:47:48.8094164Z dist/assets/elixir-CrKEldnf.js 16.30 kB │ gzip: 2.79 kB │ map: 23.18 kB 2026-10-25T00:47:48.8094475Z dist/assets/dialog-DPKyASXO.js 16.37 kB │ gzip: 5.61 kB │ map: 77.01 kB 2026-10-25T00:47:48.8094804Z dist/assets/rightPanelStore-Cfr3YgUf.js 16.38 kB │ gzip: 4.68 kB │ map: 78.50 kB 2026-10-25T00:47:48.8095127Z dist/assets/odin-B1RWQWA5.js 16.54 kB │ gzip: 2.96 kB │ map: 23.80 kB 2026-10-25T00:47:48.8095443Z dist/assets/X5RFHQXM-_jiux_Ij.js 16.59 kB │ gzip: 7.04 kB │ map: 42.63 kB 2026-10-25T00:47:48.8095761Z dist/assets/ts-tags-iKEdjM6n.js 16.59 kB │ gzip: 2.09 kB │ map: 24.94 kB 2026-10-25T00:47:48.8096085Z dist/assets/scroll-area-BSJ6IOMP.js 16.78 kB │ gzip: 5.99 kB │ map: 85.84 kB 2026-10-25T00:47:48.8096405Z dist/assets/popover-BcQQWVBc.js 17.14 kB │ gzip: 6.45 kB │ map: 90.10 kB 2026-10-25T00:47:48.8096733Z dist/assets/kanagawa-wave-CTweb8Dz.js 17.17 kB │ gzip: 2.94 kB │ map: 22.30 kB 2026-10-25T00:47:48.8097067Z dist/assets/kanagawa-lotus-BN08jTvb.js 17.17 kB │ gzip: 2.94 kB │ map: 22.30 kB 2026-10-25T00:47:48.8097406Z dist/assets/kanagawa-dragon-CXtmUGW6.js 17.17 kB │ gzip: 2.96 kB │ map: 22.31 kB 2026-10-25T00:47:48.8097753Z dist/assets/projectScriptEditor-CQ34vMhA.js 17.39 kB │ gzip: 6.68 kB │ map: 100.01 kB 2026-10-25T00:47:48.8098093Z dist/assets/move-B1IS1UjX.js 17.54 kB │ gzip: 3.10 kB │ map: 26.27 kB 2026-10-25T00:47:48.8098405Z dist/assets/command-Dhxs7QI1.js 17.80 kB │ gzip: 4.81 kB │ map: 70.69 kB 2026-10-25T00:47:48.8098731Z dist/assets/pullRequests-D60NVvoG.js 17.93 kB │ gzip: 6.21 kB │ map: 87.67 kB 2026-10-25T00:47:48.8099050Z dist/assets/link-Di74snVt.js 17.95 kB │ gzip: 6.74 kB │ map: 91.88 kB 2026-10-25T00:47:48.8099363Z dist/assets/graphql-f7MMklYv.js 18.12 kB │ gzip: 2.56 kB │ map: 25.58 kB 2026-10-25T00:47:48.8099677Z dist/assets/liquid-NR0kReLd.js 18.14 kB │ gzip: 3.18 kB │ map: 25.31 kB 2026-10-25T00:47:48.8100010Z dist/assets/T3ConnectAccountPages-BC0_dRgk.js 18.25 kB │ gzip: 6.38 kB │ map: 80.99 kB 2026-10-25T00:47:48.8100459Z dist/assets/svelte-D_LLVCZp.js 18.29 kB │ gzip: 3.18 kB │ map: 25.82 kB 2026-10-25T00:47:48.8100876Z dist/assets/material-theme-Bm3Qr25_.js 18.66 kB │ gzip: 3.14 kB │ map: 24.14 kB 2026-10-25T00:47:48.8101219Z dist/assets/material-theme-ocean-CHQ94UKr.js 18.68 kB │ gzip: 3.16 kB │ map: 24.18 kB 2026-10-25T00:47:48.8101603Z dist/assets/material-theme-darker-2IIEA8gg.js 18.68 kB │ gzip: 3.13 kB │ map: 24.18 kB 2026-10-25T00:47:48.8101961Z dist/assets/material-theme-lighter-uhdI0v04.js 18.69 kB │ gzip: 3.14 kB │ map: 24.19 kB 2026-10-25T00:47:48.8102328Z dist/assets/material-theme-palenight-B5W6OYN7.js 18.69 kB │ gzip: 3.15 kB │ map: 24.20 kB 2026-10-25T00:47:48.8102694Z dist/assets/pullRequestDetail.logic-NhAksDmz.js 18.87 kB │ gzip: 6.76 kB │ map: 77.97 kB 2026-10-25T00:47:48.8103043Z dist/assets/gdscript-Cp2uCuqX.js 19.03 kB │ gzip: 3.78 kB │ map: 26.26 kB 2026-10-25T00:47:48.8103369Z dist/assets/USNYFO5S-DbZ4mRhc.js 19.10 kB │ gzip: 7.42 kB │ map: 47.26 kB 2026-10-25T00:47:48.8103687Z dist/assets/groovy-CacY0gHj.js 19.21 kB │ gzip: 3.63 kB │ map: 27.53 kB 2026-10-25T00:47:48.8104014Z dist/assets/settings.storage-BIq-fLe1.js 19.43 kB │ gzip: 6.99 kB │ map: 104.83 kB 2026-10-25T00:47:48.8104342Z dist/assets/mdc-BszP3a5M.js 19.58 kB │ gzip: 6.70 kB │ map: 23.16 kB 2026-10-25T00:47:48.8104650Z dist/assets/server-MrIM4VN7.js 19.97 kB │ gzip: 6.16 kB │ map: 117.05 kB 2026-10-25T00:47:48.8104975Z dist/assets/ayu-dark-DluEY0Gj.js 20.12 kB │ gzip: 3.96 kB │ map: 27.06 kB 2026-10-25T00:47:48.8105301Z dist/assets/ayu-mirage-Bqwy1Gya.js 20.13 kB │ gzip: 3.95 kB │ map: 27.08 kB 2026-10-25T00:47:48.8105632Z dist/assets/glimmer-js-BDXa_Fyc.js 20.13 kB │ gzip: 2.97 kB │ map: 28.69 kB 2026-10-25T00:47:48.8105954Z dist/assets/glimmer-ts-Bj66Y8fi.js 20.13 kB │ gzip: 2.97 kB │ map: 28.69 kB 2026-10-25T00:47:48.8106281Z dist/assets/powershell-DshXNtvi.js 20.19 kB │ gzip: 4.09 kB │ map: 26.60 kB 2026-10-25T00:47:48.8106606Z dist/assets/ayu-light-C3h-C4tm.js 20.19 kB │ gzip: 3.93 kB │ map: 27.14 kB 2026-10-25T00:47:48.8106925Z dist/assets/viml-DvXPmvsu.js 20.40 kB │ gzip: 6.77 kB │ map: 23.51 kB 2026-10-25T00:47:48.8107238Z dist/assets/DRLTVNUE-BnvvYrss.js 20.40 kB │ gzip: 7.66 kB │ map: 50.95 kB 2026-10-25T00:47:48.8107559Z dist/assets/nushell-DcLAeLz5.js 20.45 kB │ gzip: 5.25 kB │ map: 27.67 kB 2026-10-25T00:47:48.8107880Z dist/assets/entities-SWnkV6dC.js 20.59 kB │ gzip: 6.96 kB │ map: 135.98 kB 2026-10-25T00:47:48.8108205Z dist/assets/HSJLKHB7-M8voKO1L.js 20.80 kB │ gzip: 8.63 kB │ map: 57.03 kB 2026-10-25T00:47:48.8108529Z dist/assets/snazzy-light-4G7pJPwS.js 20.82 kB │ gzip: 3.84 kB │ map: 28.03 kB 2026-10-25T00:47:48.8108851Z dist/assets/twig-Ci9rMG4p.js 20.94 kB │ gzip: 3.70 kB │ map: 29.33 kB 2026-10-25T00:47:48.8109162Z dist/assets/dracula-BHWKrbxM.js 21.10 kB │ gzip: 4.03 kB │ map: 27.51 kB 2026-10-25T00:47:48.8109489Z dist/assets/dracula-soft-5eyTD99u.js 21.12 kB │ gzip: 4.06 kB │ map: 27.54 kB 2026-10-25T00:47:48.8109818Z dist/assets/number-field-fBxIjToI.js 21.14 kB │ gzip: 8.04 kB │ map: 104.64 kB 2026-10-25T00:47:48.8110257Z dist/assets/wit-DdvCle-K.js 21.50 kB │ gzip: 2.91 kB │ map: 30.11 kB 2026-10-25T00:47:48.8110650Z dist/assets/rose-pine-BthvhNj6.js 21.78 kB │ gzip: 3.90 kB │ map: 28.78 kB 2026-10-25T00:47:48.8110982Z dist/assets/rose-pine-moon-hon4tzzS.js 21.80 kB │ gzip: 3.91 kB │ map: 28.81 kB 2026-10-25T00:47:48.8111342Z dist/assets/rose-pine-dawn-Dg85fqjY.js 21.80 kB │ gzip: 3.92 kB │ map: 28.81 kB 2026-10-25T00:47:48.8111683Z dist/assets/useStableCallback-z_SONSIp.js 22.26 kB │ gzip: 9.25 kB │ map: 690.61 kB 2026-10-25T00:47:48.8112006Z dist/assets/nim-BM9Yvas0.js 22.49 kB │ gzip: 3.19 kB │ map: 32.88 kB 2026-10-25T00:47:48.8112327Z dist/assets/common-lisp-Cv5bFMCO.js 22.62 kB │ gzip: 6.11 kB │ map: 26.69 kB 2026-10-25T00:47:48.8112658Z dist/assets/surrealql-BhXwxFwT.js 22.63 kB │ gzip: 4.34 kB │ map: 32.51 kB 2026-10-25T00:47:48.8113003Z dist/assets/gruvbox-dark-hard-C820rvS2.js 22.68 kB │ gzip: 4.19 kB │ map: 30.59 kB 2026-10-25T00:47:48.8113348Z dist/assets/gruvbox-dark-soft-MrdJrrXF.js 22.68 kB │ gzip: 4.19 kB │ map: 30.59 kB 2026-10-25T00:47:48.8113694Z dist/assets/gruvbox-light-hard-BC_s9l72.js 22.68 kB │ gzip: 4.19 kB │ map: 30.59 kB 2026-10-25T00:47:48.8114038Z dist/assets/gruvbox-light-soft-BSMLrYjP.js 22.68 kB │ gzip: 4.19 kB │ map: 30.59 kB 2026-10-25T00:47:48.8114391Z dist/assets/gruvbox-dark-medium-BPjhmG05.js 22.69 kB │ gzip: 4.19 kB │ map: 30.60 kB 2026-10-25T00:47:48.8114744Z dist/assets/gruvbox-light-medium-BAWPOn9u.js 22.69 kB │ gzip: 4.20 kB │ map: 30.61 kB 2026-10-25T00:47:48.8115080Z dist/assets/bird2-C6vDhewU.js 22.97 kB │ gzip: 4.69 kB │ map: 31.06 kB 2026-10-25T00:47:48.8115402Z dist/assets/5OC2THR4-Dpp7stfA.js 23.28 kB │ gzip: 9.38 kB │ map: 61.59 kB 2026-10-25T00:47:48.8115724Z dist/assets/sql-DJtPbMSQ.js 23.52 kB │ gzip: 7.54 kB │ map: 27.96 kB 2026-10-25T00:47:48.8116035Z dist/assets/cadence-CQ2zXKGN.js 23.70 kB │ gzip: 3.69 kB │ map: 33.59 kB 2026-10-25T00:47:48.8116353Z dist/assets/astro-BmmE1wns.js 24.06 kB │ gzip: 7.63 kB │ map: 29.26 kB 2026-10-25T00:47:48.8116662Z dist/assets/apl-Dbn5QvGU.js 24.07 kB │ gzip: 4.20 kB │ map: 33.43 kB 2026-10-25T00:47:48.8116977Z dist/assets/templ-ChNxr6tm.js 24.10 kB │ gzip: 5.45 kB │ map: 30.96 kB 2026-10-25T00:47:48.8117293Z dist/assets/SLD4V6NK-CvwTmHSn.js 24.20 kB │ gzip: 10.11 kB │ map: 66.35 kB 2026-10-25T00:47:48.8117623Z dist/assets/angular-html-CHSubNNg.js 24.28 kB │ gzip: 4.02 kB │ map: 35.88 kB 2026-10-25T00:47:48.8117949Z dist/assets/vhdl-BroJfC0k.js 24.29 kB │ gzip: 3.90 kB │ map: 33.38 kB 2026-10-25T00:47:48.8118253Z dist/assets/vue-DhtZA_zP.js 24.53 kB │ gzip: 2.99 kB │ map: 36.98 kB 2026-10-25T00:47:48.8118652Z dist/assets/purescript-9MfHhQsQ.js 24.72 kB │ gzip: 3.27 kB │ map: 34.90 kB 2026-10-25T00:47:48.8118974Z dist/assets/typespec-BRdr0IET.js 25.08 kB │ gzip: 2.66 kB │ map: 34.70 kB 2026-10-25T00:47:48.8119298Z dist/assets/one-light-D7Lr4KcI.js 25.34 kB │ gzip: 3.67 kB │ map: 33.81 kB 2026-10-25T00:47:48.8119616Z dist/assets/fsharp-D13ZGOAj.js 25.34 kB │ gzip: 4.16 kB │ map: 35.90 kB 2026-10-25T00:47:48.8120132Z dist/assets/marko-BaagTwf0.js 25.52 kB │ gzip: 3.62 kB │ map: 35.92 kB 2026-10-25T00:47:48.8120568Z dist/assets/night-owl-light-eJ-hLW7d.js 25.95 kB │ gzip: 4.27 kB │ map: 35.17 kB 2026-10-25T00:47:48.8120914Z dist/assets/system-verilog-DJ5XKQeo.js 26.24 kB │ gzip: 4.86 kB │ map: 36.27 kB 2026-10-25T00:47:48.8121252Z dist/assets/useThreadActions-BQ6-0JDD.js 26.35 kB │ gzip: 8.49 kB │ map: 129.83 kB 2026-10-25T00:47:48.8121607Z dist/assets/nord-Cb4Vim4T.js 26.76 kB │ gzip: 4.39 kB │ map: 35.36 kB 2026-10-25T00:47:48.8121919Z dist/assets/codeql-oeQT6MSM.js 26.92 kB │ gzip: 3.83 kB │ map: 36.02 kB 2026-10-25T00:47:48.8122230Z dist/assets/c3-BFHwR3_K.js 27.00 kB │ gzip: 3.96 kB │ map: 39.15 kB 2026-10-25T00:47:48.8122540Z dist/assets/T3PCR2KE-DW6KTGS6.js 27.06 kB │ gzip: 11.16 kB │ map: 74.49 kB 2026-10-25T00:47:48.8122867Z dist/assets/scss-DQyDwCYy.js 27.30 kB │ gzip: 4.26 kB │ map: 38.39 kB 2026-10-25T00:47:48.8123182Z dist/assets/java-CF-jL4AX.js 27.31 kB │ gzip: 4.34 kB │ map: 38.66 kB 2026-10-25T00:47:48.8123495Z dist/assets/coffee-BHyBL9L1.js 27.46 kB │ gzip: 6.39 kB │ map: 36.12 kB 2026-10-25T00:47:48.8123807Z dist/assets/razor-CRS4rNJT.js 27.49 kB │ gzip: 3.58 kB │ map: 38.35 kB 2026-10-25T00:47:48.8124126Z dist/assets/BB2UYUI2-DvzcLGrU.js 28.18 kB │ gzip: 10.96 kB │ map: 75.19 kB 2026-10-25T00:47:48.8124442Z dist/assets/sidebar-D_732w-w.js 28.33 kB │ gzip: 9.12 kB │ map: 123.41 kB 2026-10-25T00:47:48.8124754Z dist/assets/scala-DKOlJaKm.js 28.92 kB │ gzip: 3.96 kB │ map: 40.12 kB 2026-10-25T00:47:48.8125075Z dist/assets/night-owl-DhmEMT88.js 28.95 kB │ gzip: 5.18 kB │ map: 39.06 kB 2026-10-25T00:47:48.8125402Z dist/assets/select-CCrkQ7Xm.js 29.01 kB │ gzip: 10.89 kB │ map: 139.91 kB 2026-10-25T00:47:48.8125717Z dist/assets/crystal-xgOldvWp.js 29.45 kB │ gzip: 4.47 kB │ map: 41.29 kB 2026-10-25T00:47:48.8126036Z dist/assets/mermaid-Bk4SNUv9.js 29.54 kB │ gzip: 3.68 kB │ map: 44.12 kB 2026-10-25T00:47:48.8126358Z dist/assets/applescript-CCn79oCD.js 29.61 kB │ gzip: 5.98 kB │ map: 39.35 kB 2026-10-25T00:47:48.8126691Z dist/assets/BUM34MOA-CxuZ-Bgz.js 30.12 kB │ gzip: 11.45 kB │ map: 75.42 kB 2026-10-25T00:47:48.8127008Z dist/assets/75O6YZUN-ChDMO5j5.js 30.19 kB │ gzip: 11.64 kB │ map: 77.70 kB 2026-10-25T00:47:48.8127448Z dist/assets/pierre-dark-CpLgRqie.js 30.59 kB │ gzip: 4.77 kB │ map: 34.24 kB 2026-10-25T00:47:48.8127852Z dist/assets/pierre-light-CoaEpmwp.js 30.59 kB │ gzip: 4.77 kB │ map: 34.25 kB 2026-10-25T00:47:48.8128196Z dist/assets/pierre-dark-soft-kZQmAZld.js 30.61 kB │ gzip: 4.81 kB │ map: 34.27 kB 2026-10-25T00:47:48.8128540Z dist/assets/pierre-light-soft-lWLdNTOI.js 30.61 kB │ gzip: 4.77 kB │ map: 34.27 kB 2026-10-25T00:47:48.8128897Z dist/assets/pierre-dark-tritanopia-CpjhbsIL.js 30.62 kB │ gzip: 4.72 kB │ map: 34.30 kB 2026-10-25T00:47:48.8129258Z dist/assets/pierre-light-tritanopia-CEbqgOJL.js 30.63 kB │ gzip: 4.73 kB │ map: 34.30 kB 2026-10-25T00:47:48.8129652Z dist/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js 30.66 kB │ gzip: 4.80 kB │ map: 34.36 kB 2026-10-25T00:47:48.8130057Z dist/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js 30.67 kB │ gzip: 4.76 kB │ map: 34.37 kB 2026-10-25T00:47:48.8130443Z dist/assets/ChatGptUsageButton-EiRgba3d.js 30.79 kB │ gzip: 12.00 kB │ map: 117.44 kB 2026-10-25T00:47:48.8130779Z dist/assets/julia-BAkj-Grs.js 31.05 kB │ gzip: 4.34 kB │ map: 40.65 kB 2026-10-25T00:47:48.8131097Z dist/assets/stylus-B6D30XZt.js 31.11 kB │ gzip: 8.05 kB │ map: 38.88 kB 2026-10-25T00:47:48.8131451Z dist/assets/N3JZAHOW-Dr42cAOS.js 32.62 kB │ gzip: 13.28 kB │ map: 101.23 kB 2026-10-25T00:47:48.8131778Z dist/assets/poimandres-DRFjx7u4.js 33.53 kB │ gzip: 5.53 kB │ map: 43.07 kB 2026-10-25T00:47:48.8132103Z dist/assets/one-dark-pro-CLwyXe_n.js 33.83 kB │ gzip: 5.54 kB │ map: 44.51 kB 2026-10-25T00:47:48.8132424Z dist/assets/bsl-BkkzgIyY.js 33.90 kB │ gzip: 8.38 kB │ map: 37.63 kB 2026-10-25T00:47:48.8132741Z dist/assets/O65XPQGZ-DrD497-N.js 34.10 kB │ gzip: 12.69 kB │ map: 86.95 kB 2026-10-25T00:47:48.8133072Z dist/assets/UsageLimits-BTHAPAMk.js 34.31 kB │ gzip: 11.88 kB │ map: 148.44 kB 2026-10-25T00:47:48.8133390Z dist/assets/haxe-OTjmBuCE.js 35.19 kB │ gzip: 5.94 kB │ map: 49.52 kB 2026-10-25T00:47:48.8133700Z dist/assets/nginx-Bunv6cTi.js 35.39 kB │ gzip: 4.49 kB │ map: 48.50 kB 2026-10-25T00:47:48.8134013Z dist/assets/houston-CsvMBhTu.js 35.46 kB │ gzip: 5.80 kB │ map: 46.40 kB 2026-10-25T00:47:48.8134335Z dist/assets/tokyo-night-oM2G3aXe.js 35.71 kB │ gzip: 6.26 kB │ map: 45.35 kB 2026-10-25T00:47:48.8134680Z dist/assets/CodexSetupSection.logic-Cm7ux2K4.js 36.12 kB │ gzip: 12.94 kB │ map: 164.42 kB 2026-10-25T00:47:48.8135042Z dist/assets/settings.keybindings-BrU_UyUN.js 37.18 kB │ gzip: 12.45 kB │ map: 164.58 kB 2026-10-25T00:47:48.8135374Z dist/assets/erlang-Cphh6RMH.js 37.52 kB │ gzip: 4.39 kB │ map: 51.59 kB 2026-10-25T00:47:48.8135687Z dist/assets/lazy-BlS3QGRS.js 38.37 kB │ gzip: 16.01 kB │ map: 81.90 kB 2026-10-25T00:47:48.8136013Z dist/assets/PullRequestCodeTab-BbEoohnJ.js 39.02 kB │ gzip: 14.42 kB │ map: 180.92 kB 2026-10-25T00:47:48.8136364Z dist/assets/settings.projects-6RKCAJ8-.js 39.03 kB │ gzip: 15.32 kB │ map: 163.46 kB 2026-10-25T00:47:48.8136695Z dist/assets/useSettings-BqUO1_ou.js 39.06 kB │ gzip: 13.38 kB │ map: 174.19 kB 2026-10-25T00:47:48.8137013Z dist/assets/cobol-DlmPKder.js 39.11 kB │ gzip: 10.92 kB │ map: 47.39 kB 2026-10-25T00:47:48.8137439Z dist/assets/TKWO2OVW-DIbTXk67.js 39.43 kB │ gzip: 14.77 kB │ map: 97.94 kB 2026-10-25T00:47:48.8137853Z dist/assets/ThemeEditorPanel-BrclAEpX.js 40.14 kB │ gzip: 14.49 kB │ map: 189.11 kB 2026-10-25T00:47:48.8138176Z dist/assets/asm-Cmm7eHzH.js 40.75 kB │ gzip: 8.20 kB │ map: 53.00 kB 2026-10-25T00:47:48.8138491Z dist/assets/RHNBAITX-CMrl8Lm0.js 41.31 kB │ gzip: 15.53 kB │ map: 105.33 kB 2026-10-25T00:47:48.8138808Z dist/assets/haskell-D8IpX4py.js 41.52 kB │ gzip: 6.44 kB │ map: 57.85 kB 2026-10-25T00:47:48.8139134Z dist/assets/shellscript-y5xaAa26.js 41.58 kB │ gzip: 6.16 kB │ map: 56.57 kB 2026-10-25T00:47:48.8139457Z dist/assets/combobox-BNM4DVek.js 41.97 kB │ gzip: 14.24 kB │ map: 212.73 kB 2026-10-25T00:47:48.8139775Z dist/assets/perl-AhzhpTrP.js 43.18 kB │ gzip: 4.68 kB │ map: 60.84 kB 2026-10-25T00:47:48.8140093Z dist/assets/queries-Dtmse3tc.js 43.24 kB │ gzip: 16.08 kB │ map: 239.43 kB 2026-10-25T00:47:48.8140422Z dist/assets/DiffPanel-CwxEsw-s.js 43.27 kB │ gzip: 16.72 kB │ map: 244.01 kB 2026-10-25T00:47:48.8140735Z dist/assets/d-qD-0Kul2.js 43.82 kB │ gzip: 8.46 kB │ map: 62.69 kB 2026-10-25T00:47:48.8141049Z dist/assets/LHDIQX7Q-D0l-F6fO.js 44.04 kB │ gzip: 16.12 kB │ map: 107.24 kB 2026-10-25T00:47:48.8141418Z dist/assets/DiffCommentAnnotation--lDlO7UL.js 44.48 kB │ gzip: 15.81 kB │ map: 120.50 kB 2026-10-25T00:47:48.8141780Z dist/assets/ProviderModelPicker-CpLzni3x.js 44.81 kB │ gzip: 16.01 kB │ map: 233.06 kB 2026-10-25T00:47:48.8142131Z dist/assets/pierre-dark-vibrant-CpQYzh95.js 44.81 kB │ gzip: 5.33 kB │ map: 48.48 kB 2026-10-25T00:47:48.8142489Z dist/assets/pierre-light-vibrant-D80Fkn33.js 44.81 kB │ gzip: 5.31 kB │ map: 48.48 kB 2026-10-25T00:47:48.8142835Z dist/assets/settingsLayout-B_0Oh3pc.js 45.01 kB │ gzip: 15.82 kB │ map: 227.20 kB 2026-10-25T00:47:48.8143167Z dist/assets/DevicePanel-BYBnOwIt.js 46.03 kB │ gzip: 15.62 kB │ map: 246.51 kB 2026-10-25T00:47:48.8143511Z dist/assets/settings.source-control-C9iS52oM.js 46.24 kB │ gzip: 15.07 kB │ map: 262.11 kB 2026-10-25T00:47:48.8143848Z dist/assets/toast-BMwyWSZZ.js 46.41 kB │ gzip: 15.39 kB │ map: 273.09 kB 2026-10-25T00:47:48.8144155Z dist/assets/ruby-ubltFHEX.js 46.64 kB │ gzip: 5.74 kB │ map: 66.38 kB 2026-10-25T00:47:48.8144458Z dist/assets/go-rLFTqkRN.js 46.85 kB │ gzip: 5.18 kB │ map: 66.61 kB 2026-10-25T00:47:48.8144786Z dist/assets/settings.snap-shot-DbGdfz_G.js 46.98 kB │ gzip: 16.63 kB │ map: 252.94 kB 2026-10-25T00:47:48.8145129Z dist/assets/catppuccin-mocha-DYhrFGRu.js 47.30 kB │ gzip: 8.02 kB │ map: 62.03 kB 2026-10-25T00:47:48.8145475Z dist/assets/catppuccin-latte-DwIHMF0Q.js 47.30 kB │ gzip: 8.02 kB │ map: 62.03 kB 2026-10-25T00:47:48.8145818Z dist/assets/catppuccin-frappe-3VR1Za6u.js 47.31 kB │ gzip: 8.03 kB │ map: 62.04 kB 2026-10-25T00:47:48.8146168Z dist/assets/catppuccin-macchiato-DYnBP6_5.js 47.31 kB │ gzip: 8.03 kB │ map: 62.06 kB 2026-10-25T00:47:48.8146507Z dist/assets/PreviewPanel-nAs6vTpz.js 47.35 kB │ gzip: 17.24 kB │ map: 255.28 kB 2026-10-25T00:47:48.8146829Z dist/assets/apex-VAyPSnFM.js 47.80 kB │ gzip: 6.85 kB │ map: 66.78 kB 2026-10-25T00:47:48.8147135Z dist/assets/ada-C5qYipkI.js 48.11 kB │ gzip: 6.00 kB │ map: 70.96 kB 2026-10-25T00:47:48.8147573Z dist/assets/css-kzGS2ZwB.js 49.13 kB │ gzip: 11.99 kB │ map: 60.67 kB 2026-10-25T00:47:48.8147955Z dist/assets/welcome-bcuEHKbU.js 49.73 kB │ gzip: 17.04 kB │ map: 266.54 kB 2026-10-25T00:47:48.8148270Z dist/assets/imba-DsUTQ-LC.js 49.96 kB │ gzip: 9.51 kB │ map: 68.08 kB 2026-10-25T00:47:48.8148584Z dist/assets/sortable.esm-CdKt_e6H.js 50.51 kB │ gzip: 16.26 kB │ map: 236.47 kB 2026-10-25T00:47:48.8148918Z dist/assets/everforest-dark-sB-x3p7T.js 53.79 kB │ gzip: 8.41 kB │ map: 68.28 kB 2026-10-25T00:47:48.8149255Z dist/assets/everforest-light-Df2xbC6M.js 53.79 kB │ gzip: 8.41 kB │ map: 68.29 kB 2026-10-25T00:47:48.8149593Z dist/assets/Virtualizer-CXrcZE8C.js 55.69 kB │ gzip: 14.32 kB │ map: 177.52 kB 2026-10-25T00:47:48.8149920Z dist/assets/wikitext-ClFFjSW2.js 55.92 kB │ gzip: 4.85 kB │ map: 77.64 kB 2026-10-25T00:47:48.8150267Z dist/assets/ScheduledTasksSettings-BagOU3lo.js 56.58 kB │ gzip: 19.21 kB │ map: 343.57 kB 2026-10-25T00:47:48.8150599Z dist/assets/stata-Ciuk7_mY.js 57.03 kB │ gzip: 12.44 kB │ map: 74.20 kB 2026-10-25T00:47:48.8150908Z dist/assets/html-DIIndQnv.js 57.35 kB │ gzip: 11.82 kB │ map: 73.07 kB 2026-10-25T00:47:48.8151222Z dist/assets/ballerina-B7ZEbQpA.js 58.73 kB │ gzip: 8.14 kB │ map: 81.54 kB 2026-10-25T00:47:48.8151584Z dist/assets/markdown-BYOwaDjH.js 59.37 kB │ gzip: 5.70 kB │ map: 82.33 kB 2026-10-25T00:47:48.8151907Z dist/assets/pierre-icons-BG_vN4vh.js 60.69 kB │ gzip: 22.05 kB │ map: 82.50 kB 2026-10-25T00:47:48.8152233Z dist/assets/Icons-BQqrwewC.js 61.79 kB │ gzip: 30.40 kB │ map: 165.88 kB 2026-10-25T00:47:48.8152552Z dist/assets/ocaml-O90oeIOV.js 62.48 kB │ gzip: 5.08 kB │ map: 81.11 kB 2026-10-25T00:47:48.8152863Z dist/assets/mojo-BgCJLMeH.js 69.83 kB │ gzip: 9.25 kB │ map: 94.94 kB 2026-10-25T00:47:48.8153173Z dist/assets/python-gzcpVVnB.js 69.98 kB │ gzip: 9.13 kB │ map: 95.24 kB 2026-10-25T00:47:48.8153507Z dist/assets/useHandleNewThread-DG3n7AYK.js 71.03 kB │ gzip: 22.61 kB │ map: 333.69 kB 2026-10-25T00:47:48.8153830Z dist/assets/c-esFkreWu.js 72.20 kB │ gzip: 10.58 kB │ map: 95.41 kB 2026-10-25T00:47:48.8154141Z dist/assets/latex-b0569jTU.js 72.91 kB │ gzip: 6.78 kB │ map: 100.96 kB 2026-10-25T00:47:48.8154451Z dist/assets/vyper-CgoNMtux.js 74.68 kB │ gzip: 10.73 kB │ map: 100.71 kB 2026-10-25T00:47:48.8154768Z dist/assets/hack-mYo6lwOk.js 81.09 kB │ gzip: 26.47 kB │ map: 98.63 kB 2026-10-25T00:47:48.8155091Z dist/assets/SettingsPanels-CAmAf5p9.js 82.62 kB │ gzip: 25.82 kB │ map: 507.56 kB 2026-10-25T00:47:48.8155426Z dist/assets/themePalette-BMZI0OA9.js 83.31 kB │ gzip: 23.89 kB │ map: 284.11 kB 2026-10-25T00:47:48.8155744Z dist/assets/swift-DonLKvLd.js 86.72 kB │ gzip: 14.72 kB │ map: 114.51 kB 2026-10-25T00:47:48.8156081Z dist/assets/DiffWorkerPoolProvider-DCxhtEgx.js 87.11 kB │ gzip: 23.11 kB │ map: 273.90 kB 2026-10-25T00:47:48.8156434Z dist/assets/fortran-free-form-CYNrtFtB.js 89.01 kB │ gzip: 11.23 kB │ map: 124.06 kB 2026-10-25T00:47:48.8156765Z dist/assets/csharp-oqKa8noW.js 90.22 kB │ gzip: 10.75 kB │ map: 126.35 kB 2026-10-25T00:47:48.8157173Z dist/assets/FileDiff-BGJVydWl.js 91.16 kB │ gzip: 23.35 kB │ map: 307.03 kB 2026-10-25T00:47:48.8157581Z dist/assets/_chat.pull-requests-BYyzM_N-.js 91.35 kB │ gzip: 32.72 kB │ map: 452.85 kB 2026-10-25T00:47:48.8157909Z dist/assets/racket-DcIDlBhZ.js 92.42 kB │ gzip: 15.11 kB │ map: 106.19 kB 2026-10-25T00:47:48.8158246Z dist/assets/settings.diagnostics-CEISW3AP.js 93.82 kB │ gzip: 27.26 kB │ map: 499.48 kB 2026-10-25T00:47:48.8158653Z dist/assets/embeddedScripts-hXRveEd6.js 94.06 kB │ gzip: 24.28 kB │ map: 399.57 kB 2026-10-25T00:47:48.8158983Z dist/assets/usage-DG5LwKT_.js 96.07 kB │ gzip: 32.13 kB │ map: 559.57 kB 2026-10-25T00:47:48.8159313Z dist/assets/settings.integrations-BlfCuOqE.js 96.61 kB │ gzip: 31.44 kB │ map: 566.32 kB 2026-10-25T00:47:48.8159651Z dist/assets/less-DVTAwKKz.js 97.66 kB │ gzip: 14.88 kB │ map: 131.85 kB 2026-10-25T00:47:48.8159968Z dist/assets/blade-DBGhfhIu.js 105.01 kB │ gzip: 28.34 kB │ map: 131.09 kB 2026-10-25T00:47:48.8160288Z dist/assets/objective-c-D1A_Heim.js 105.45 kB │ gzip: 23.67 kB │ map: 129.66 kB 2026-10-25T00:47:48.8160624Z dist/assets/settings.connections-DaV_vbvP.js 107.26 kB │ gzip: 36.17 kB │ map: 612.94 kB 2026-10-25T00:47:48.8160953Z dist/assets/php-BrskDoCo.js 113.12 kB │ gzip: 28.89 kB │ map: 142.15 kB 2026-10-25T00:47:48.8161283Z dist/assets/ThreadTerminalDrawer-BQsWwMUf.js 113.83 kB │ gzip: 33.62 kB │ map: 458.92 kB 2026-10-25T00:47:48.8161667Z dist/assets/getDiffFileInput-w31oseFL.js 124.36 kB │ gzip: 30.75 kB │ map: 375.11 kB 2026-10-25T00:47:48.8161998Z dist/assets/asciidoc-DE70LPWp.js 131.56 kB │ gzip: 9.35 kB │ map: 189.11 kB 2026-10-25T00:47:48.8162318Z dist/assets/mdx-DQZ5AkYe.js 136.14 kB │ gzip: 23.57 kB │ map: 176.72 kB 2026-10-25T00:47:48.8162981Z dist/assets/RenderErrorBoundary-DJIsU0Jp.js 153.41 kB │ gzip: 45.88 kB │ map: 938.43 kB 2026-10-25T00:47:48.8163486Z dist/assets/settings.providers-CGA2JX6O.js 161.58 kB │ gzip: 53.40 kB │ map: 828.10 kB 2026-10-25T00:47:48.8164017Z dist/assets/objective-cpp-BsSzOQcm.js 172.01 kB │ gzip: 31.02 kB │ map: 218.54 kB 2026-10-25T00:47:48.8164579Z dist/assets/javascript-DM2jNGak.js 174.93 kB │ gzip: 16.72 kB │ map: 236.10 kB 2026-10-25T00:47:48.8165021Z dist/assets/tsx-BeGYnVHn.js 175.63 kB │ gzip: 16.71 kB │ map: 236.76 kB 2026-10-25T00:47:48.8165578Z dist/assets/runtime-e9I4Mf73.js 176.30 kB │ gzip: 56.48 kB │ map: 1,089.97 kB 2026-10-25T00:47:48.8166048Z dist/assets/jsx-DQaT7vKh.js 177.88 kB │ gzip: 16.80 kB │ map: 239.02 kB 2026-10-25T00:47:48.8179496Z dist/assets/runtime-DvhQwur3.js 178.42 kB │ gzip: 51.35 kB │ map: 826.19 kB 2026-10-25T00:47:48.8179871Z dist/assets/typescript-BEWCPeCr.js 181.18 kB │ gzip: 16.32 kB │ map: 244.44 kB 2026-10-25T00:47:48.8180210Z dist/assets/angular-ts-B9yvU4g3.js 183.77 kB │ gzip: 16.82 kB │ map: 249.70 kB 2026-10-25T00:47:48.8180537Z dist/assets/vue-vine-DBK802jz.js 190.10 kB │ gzip: 18.11 kB │ map: 255.27 kB 2026-10-25T00:47:48.8180875Z dist/assets/fileTreeExpansion-1CKynzaf.js 199.35 kB │ gzip: 54.49 kB │ map: 731.80 kB 2026-10-25T00:47:48.8181225Z dist/assets/FilePreviewPanel-ueKwXnQo.js 204.13 kB │ gzip: 66.97 kB │ map: 946.01 kB 2026-10-25T00:47:48.8181834Z dist/assets/settings.appearance-CadXHD1O.js 214.00 kB │ gzip: 68.31 kB │ map: 896.66 kB 2026-10-25T00:47:48.8182298Z dist/assets/diffRendering-BLQ70woO.js 254.85 kB │ gzip: 81.54 kB │ map: 946.66 kB 2026-10-25T00:47:48.8182629Z dist/assets/katex-DJhrJSbw.js 258.63 kB │ gzip: 77.46 kB │ map: 969.65 kB 2026-10-25T00:47:48.8182949Z dist/assets/wolfram-DLL8P-h_.js 262.42 kB │ gzip: 77.67 kB │ map: 279.66 kB 2026-10-25T00:47:48.8183275Z dist/assets/dist-CwWL9jXP.js 332.34 kB │ gzip: 97.19 kB │ map: 1,652.92 kB 2026-10-25T00:47:48.8183617Z dist/assets/PanelLayoutControls-AbMV9oUA.js 384.71 kB │ gzip: 119.95 kB │ map: 1,813.73 kB 2026-10-25T00:47:48.8183966Z dist/assets/ChatMarkdown-Ci95WY4Y.js 438.89 kB │ gzip: 146.35 kB │ map: 1,866.44 kB 2026-10-25T00:47:48.8184324Z dist/assets/ComposerPromptEditor-BUUQPb7h.js 519.96 kB │ gzip: 167.93 kB │ map: 2,358.60 kB 2026-10-25T00:47:48.8184707Z dist/assets/lucideIconByName-P4A8T7Oe.js 553.52 kB │ gzip: 141.17 kB │ map: 2,035.78 kB 2026-10-25T00:47:48.8185058Z dist/assets/renderScheduler-DaiMwxuV.js 608.04 kB │ gzip: 156.03 kB │ map: 3,048.60 kB 2026-10-25T00:47:48.8185390Z dist/assets/wasm-BnjxR4X6.js 622.36 kB │ gzip: 232.13 kB │ map: 622.90 kB 2026-10-25T00:47:48.8185701Z dist/assets/cpp-5pYxG9nn.js 626.16 kB │ gzip: 48.12 kB │ map: 816.28 kB 2026-10-25T00:47:48.8186024Z dist/assets/emacs-lisp-B4R74twV.js 779.92 kB │ gzip: 197.59 kB │ map: 789.85 kB 2026-10-25T00:47:48.8186345Z dist/assets/utils-uNZ_wy5H.js 1,012.77 kB │ gzip: 314.47 kB │ map: 7,801.53 kB 2026-10-25T00:47:48.8186662Z dist/assets/main-BROlIgA7.js 1,055.87 kB │ gzip: 345.70 kB │ map: 5,061.54 kB 2026-10-25T00:47:48.8186982Z dist/assets/_chat-CqQKEPhJ.js 1,314.73 kB │ gzip: 438.50 kB │ map: 6,558.41 kB 2026-10-25T00:47:48.8187309Z dist/assets/heic-to-DeD09f__.js 2,995.22 kB │ gzip: 750.97 kB │ map: 2,998.72 kB 2026-10-25T00:47:48.8187475Z 2026-10-25T00:47:48.8187571Z [plugin builtin:vite-reporter] 2026-10-25T00:47:48.8187771Z (!) Some chunks are larger than 500 kB after minification. Consider: 2026-10-25T00:47:48.8187987Z - Using dynamic import() to code-split the application 2026-10-25T00:47:48.8188333Z - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting 2026-10-25T00:47:48.8188721Z - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. 2026-10-25T00:47:48.8188978Z ✓ built in 6.56s 2026-10-25T00:47:48.9180007Z 2026-10-25T00:47:48.9181007Z ~/apps/server$ node scripts/cli.ts build ⊘ cache disabled 2026-10-25T00:47:49.1928132Z [00:47:49.191] INFO (#1): [cli] Running tsdown... 2026-10-25T00:47:51.2108034Z [00:47:51.210] INFO (#1): [cli] Applied development icon overrides to dist/client 2026-10-25T00:47:51.2108342Z [00:47:51.210] INFO (#1): [cli] Bundled web app into dist/client 2026-10-25T00:47:51.2219047Z 2026-10-25T00:47:51.2219906Z ~/apps/desktop$ node scripts/build-browser-secret.mjs ⊘ cache disabled 2026-10-25T00:47:51.3469232Z 2026-10-25T00:47:51.3469956Z ~/apps/desktop$ node scripts/build-preview-annotation-css.mjs ⊘ cache disabled 2026-10-25T00:47:51.3956728Z 2026-10-25T00:47:51.3957888Z ~/apps/desktop$ vp pack ⊘ cache disabled 2026-10-25T00:47:51.5155157Z ℹ entry: src/main.ts 2026-10-25T00:47:51.5155663Z ℹ tsconfig: tsconfig.json 2026-10-25T00:47:51.5162034Z ℹ entry: src/electron/WindowsForegroundFocusWorker.ts, src/snapShot/GlobalShiftShortcutWorker.ts, src/snapShot/RegionSnapShotWorker.ts, src/snapShot/SnapShotAccessibilityWorker.ts 2026-10-25T00:47:51.5162445Z ℹ tsconfig: tsconfig.json 2026-10-25T00:47:51.5165563Z ℹ entry: src/boot.ts, src/compileCache.ts 2026-10-25T00:47:51.5166242Z ℹ tsconfig: tsconfig.json 2026-10-25T00:47:51.5168804Z ℹ entry: src/preload.ts 2026-10-25T00:47:51.5168961Z ℹ tsconfig: tsconfig.json 2026-10-25T00:47:51.5171617Z ℹ entry: src/preview-pick-preload.ts 2026-10-25T00:47:51.5171958Z ℹ tsconfig: tsconfig.json 2026-10-25T00:47:51.5174997Z ℹ entry: src/preview-pip-preload.ts 2026-10-25T00:47:51.5175193Z ℹ tsconfig: tsconfig.json 2026-10-25T00:47:51.5178187Z ℹ entry: src/mac-permission-preload.ts 2026-10-25T00:47:51.5178418Z ℹ tsconfig: tsconfig.json 2026-10-25T00:47:51.5181073Z ℹ Build start 2026-10-25T00:47:51.5363476Z ℹ dist-electron/mac-permission-preload.cjs 0.79 kB │ gzip: 0.38 kB 2026-10-25T00:47:51.5364220Z ℹ dist-electron/mac-permission-preload.cjs.map 11.01 kB │ gzip: 2.80 kB 2026-10-25T00:47:51.5364455Z ℹ 2 files, total: 11.80 kB 2026-10-25T00:47:51.5370215Z ℹ dist-electron/compileCache.cjs 1.61 kB │ gzip: 0.75 kB 2026-10-25T00:47:51.5370568Z ℹ dist-electron/boot.cjs 0.12 kB │ gzip: 0.12 kB 2026-10-25T00:47:51.5370968Z ℹ dist-electron/compileCache.cjs.map 1.29 kB │ gzip: 0.74 kB 2026-10-25T00:47:51.5371291Z ℹ dist-electron/boot.cjs.map 0.31 kB │ gzip: 0.22 kB 2026-10-25T00:47:51.5371617Z ℹ 4 files, total: 3.33 kB 2026-10-25T00:47:51.5387646Z ℹ Hint: consider adding deps.onlyBundle option to avoid unintended bundling of dependencies, or set deps.onlyBundle: false to disable this hint. 2026-10-25T00:47:51.5388296Z See more at https://tsdown.dev/options/dependencies#deps-onlybundle 2026-10-25T00:47:51.5388688Z Detected dependencies in bundle: 2026-10-25T00:47:51.5388868Z - @clerk/electron 2026-10-25T00:47:51.5390450Z ℹ dist-electron/preview-pip-preload.cjs 0.68 kB │ gzip: 0.36 kB 2026-10-25T00:47:51.5390861Z ℹ dist-electron/preview-pip-preload.cjs.map 10.93 kB │ gzip: 2.83 kB 2026-10-25T00:47:51.5391156Z ℹ 2 files, total: 11.61 kB 2026-10-25T00:47:51.5396611Z ✔ Build complete in 21ms 2026-10-25T00:47:51.5422548Z ✔ Build complete in 24ms 2026-10-25T00:47:51.5722112Z ✔ Build complete in 54ms 2026-10-25T00:47:51.5736216Z ℹ dist-electron/preload.cjs 32.04 kB │ gzip: 7.35 kB 2026-10-25T00:47:51.5736564Z ℹ dist-electron/preload.cjs.map 58.74 kB │ gzip: 13.13 kB 2026-10-25T00:47:51.5736784Z ℹ 2 files, total: 90.78 kB 2026-10-25T00:47:51.5792409Z ℹ Hint: consider adding deps.onlyBundle option to avoid unintended bundling of dependencies, or set deps.onlyBundle: false to disable this hint. 2026-10-25T00:47:51.5793441Z See more at https://tsdown.dev/options/dependencies#deps-onlybundle 2026-10-25T00:47:51.5793643Z Detected dependencies in bundle: 2026-10-25T00:47:51.5793785Z - react-grab 2026-10-25T00:47:51.5876681Z ✔ Build complete in 69ms 2026-10-25T00:47:51.6376467Z ℹ dist-electron/preview-pick-preload.cjs 136.94 kB │ gzip: 36.46 kB 2026-10-25T00:47:51.6377583Z ℹ dist-electron/preview-pick-preload.cjs.map 243.14 kB │ gzip: 62.42 kB 2026-10-25T00:47:51.6379125Z ℹ 2 files, total: 380.08 kB 2026-10-25T00:47:51.6529885Z ✔ Build complete in 135ms 2026-10-25T00:47:51.7644927Z ℹ dist-electron/snapShot/SnapShotAccessibilityWorker.cjs 6.35 kB │ gzip: 1.97 kB 2026-10-25T00:47:51.7646109Z ℹ dist-electron/snapShot/GlobalShiftShortcutWorker.cjs 5.71 kB │ gzip: 1.60 kB 2026-10-25T00:47:51.7646541Z ℹ dist-electron/electron/WindowsForegroundFocusWorker.cjs 2.32 kB │ gzip: 0.89 kB 2026-10-25T00:47:51.7647077Z ℹ dist-electron/snapShot/RegionSnapShotWorker.cjs 0.77 kB │ gzip: 0.43 kB 2026-10-25T00:47:51.7647453Z ℹ dist-electron/snapShot-Ce8HVBWB.cjs.map 4.58 MB 2026-10-25T00:47:51.7647806Z ℹ dist-electron/snapShot-Ce8HVBWB.cjs 1.19 MB 2026-10-25T00:47:51.7648399Z ℹ dist-electron/snapShot/SnapShotAccessibilityWorker.cjs.map 13.86 kB │ gzip: 4.10 kB 2026-10-25T00:47:51.7648775Z ℹ dist-electron/snapShot/GlobalShiftShortcutWorker.cjs.map 13.29 kB │ gzip: 3.40 kB 2026-10-25T00:47:51.7649113Z ℹ dist-electron/electron/WindowsForegroundFocusWorker.cjs.map 5.07 kB │ gzip: 1.69 kB 2026-10-25T00:47:51.7649450Z ℹ dist-electron/snapShot/RegionSnapShotWorker.cjs.map 1.73 kB │ gzip: 0.82 kB 2026-10-25T00:47:51.7649811Z ℹ dist-electron/rolldown-runtime-VH7oDXx4.cjs 1.13 kB │ gzip: 0.54 kB 2026-10-25T00:47:51.7650060Z ℹ 11 files, total: 5.83 MB 2026-10-25T00:47:51.7652030Z ✔ Build complete in 247ms 2026-10-25T00:47:52.2045247Z ℹ dist-electron/main.cjs 5.49 MB 2026-10-25T00:47:52.2045517Z ℹ dist-electron/main.cjs.map 13.91 MB 2026-10-25T00:47:52.2045688Z ℹ 2 files, total: 19.40 MB 2026-10-25T00:47:52.2053356Z ../../node_modules/.pnpm/dbus-next@0.10.2_patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4/node_modules/dbus-next/lib/address-x11.js (7:22) [UNRESOLVED_IMPORT] Could not resolve 'x11' in ../../node_modules/.pnpm/dbus-next@0.10.2_patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4/node_modules/dbus-next/lib/address-x11.js 2026-10-25T00:47:52.2054541Z ╭─[ ../../node_modules/.pnpm/dbus-next@0.10.2_patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4/node_modules/dbus-next/lib/address-x11.js:7:23 ] 2026-10-25T00:47:52.2054975Z │ 2026-10-25T00:47:52.2055702Z 7 │   const x11 = require('x11'); 2026-10-25T00:47:52.2056221Z  │ ──┬── 2026-10-25T00:47:52.2056493Z  │ ╰──── Module not found, treating it as an external dependency 2026-10-25T00:47:52.2056711Z ───╯ 2026-10-25T00:47:52.2056786Z 2026-10-25T00:47:52.2057128Z ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/ConfigProvider.js (725:7) [EMPTY_IMPORT_META] `import.meta` may not be a valid syntax with the `cjs` output format. 2026-10-25T00:47:52.2057684Z ╭─[ ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/ConfigProvider.js:725:8 ] 2026-10-25T00:47:52.2057982Z │ 2026-10-25T00:47:52.2058370Z 725 │     ...import.meta?.env 2026-10-25T00:47:52.2058722Z  │ ─────┬───── 2026-10-25T00:47:52.2059316Z  │ ╰─────── This `import.meta` will be replaced with an empty object (`{}`) automatically. If this is desired, you can suppress this warning by adding `transform.define: { 'import.meta': {} }`. If `import.meta` needs to be kept as-is, you need to set the output format to `esm`. 2026-10-25T00:47:52.2059810Z ─────╯ 2026-10-25T00:47:52.2060321Z 2026-10-25T00:47:52.2060529Z ✔ Build complete in 687ms 2026-10-25T00:47:52.2249791Z 2026-10-25T00:47:52.2252138Z --- 2026-10-25T00:47:52.2252353Z vp run: 5/5 successful. (Run `vp run --last-details` for full details) 2026-10-25T00:47:52.2337336Z ##[group]Run node apps/desktop/scripts/verify-preload-bundle.mjs 2026-10-25T00:47:52.2337604Z node apps/desktop/scripts/verify-preload-bundle.mjs 2026-10-25T00:47:52.2354826Z shell: /usr/bin/bash -e {0} 2026-10-25T00:47:52.2354956Z env: 2026-10-25T00:47:52.2355075Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:52.2355229Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:52.2355376Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:52.2355518Z ##[endgroup] 2026-10-25T00:47:52.2737089Z ##[group]Run until test -s "$RUNNER_TEMP/typecheck-status"; do sleep 1; done 2026-10-25T00:47:52.2737381Z until test -s "$RUNNER_TEMP/typecheck-status"; do sleep 1; done 2026-10-25T00:47:52.2737579Z cat "$RUNNER_TEMP/typecheck.log" 2026-10-25T00:47:52.2737789Z exit "$(cat "$RUNNER_TEMP/typecheck-status")" 2026-10-25T00:47:52.2755069Z shell: /usr/bin/bash -e {0} 2026-10-25T00:47:52.2755202Z env: 2026-10-25T00:47:52.2755318Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:52.2755473Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:52.2755617Z GITHUB_REPO_NAME: pingdotgg/t3code 2026-10-25T00:47:52.2755759Z ##[endgroup] 2026-10-25T00:47:52.2785408Z ~/packages/effect-acp$ tsc --noEmit 2026-10-25T00:47:52.2785624Z ~/packages/effect-codex-app-server$ tsc --noEmit 2026-10-25T00:47:52.2785821Z ~/oxlint-plugin-t3code$ tsc --noEmit 2026-10-25T00:47:52.2785973Z ~/packages/contracts$ tsc --noEmit 2026-10-25T00:47:52.2786068Z 2026-10-25T00:47:52.2786451Z src/agent.test.ts:40:10 - suggestion TS377036: This `Schema.Struct` includes a `_tag` field. `Schema.TaggedStruct` is the tagged-struct form for this pattern and makes the tag optional in the constructor. effect(schemaStructWithTag) 2026-10-25T00:47:52.2786840Z 2026-10-25T00:47:52.2786894Z 40 error: Schema.Struct({ 2026-10-25T00:47:52.2787042Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2787174Z 41 _tag: Schema.Literal("Cause"), 2026-10-25T00:47:52.2787323Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2787517Z 42 data: Schema.Tuple([Schema.Struct({ _tag: Schema.Literal("Die") })]), 2026-10-25T00:47:52.2787734Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2787894Z 43 }), 2026-10-25T00:47:52.2787992Z ~~~~ 2026-10-25T00:47:52.2788051Z 2026-10-25T00:47:52.2788382Z src/agent.test.ts:42:25 - suggestion TS377036: This `Schema.Struct` includes a `_tag` field. `Schema.TaggedStruct` is the tagged-struct form for this pattern and makes the tag optional in the constructor. effect(schemaStructWithTag) 2026-10-25T00:47:52.2788761Z 2026-10-25T00:47:52.2788862Z 42 data: Schema.Tuple([Schema.Struct({ _tag: Schema.Literal("Die") })]), 2026-10-25T00:47:52.2789064Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2789179Z 2026-10-25T00:47:52.2789455Z src/agent.ts:422:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleInitialize")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2789761Z 2026-10-25T00:47:52.2789820Z 422 handleInitialize: (handler) => 2026-10-25T00:47:52.2789968Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2790040Z 2026-10-25T00:47:52.2790336Z src/agent.ts:427:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleAuthenticate")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2790650Z 2026-10-25T00:47:52.2790711Z 427 handleAuthenticate: (handler) => 2026-10-25T00:47:52.2790851Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2790925Z 2026-10-25T00:47:52.2791185Z src/agent.ts:432:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleLogout")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2791707Z 2026-10-25T00:47:52.2791764Z 432 handleLogout: (handler) => 2026-10-25T00:47:52.2791899Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.2791965Z 2026-10-25T00:47:52.2792239Z src/agent.ts:437:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleCreateSession")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2792554Z 2026-10-25T00:47:52.2792614Z 437 handleCreateSession: (handler) => 2026-10-25T00:47:52.2792757Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2792834Z 2026-10-25T00:47:52.2793201Z src/agent.ts:442:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleLoadSession")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2793507Z 2026-10-25T00:47:52.2793566Z 442 handleLoadSession: (handler) => 2026-10-25T00:47:52.2793707Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2793780Z 2026-10-25T00:47:52.2794049Z src/agent.ts:447:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleListSessions")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2794357Z 2026-10-25T00:47:52.2794416Z 447 handleListSessions: (handler) => 2026-10-25T00:47:52.2794555Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2794630Z 2026-10-25T00:47:52.2794895Z src/agent.ts:452:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleForkSession")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2795198Z 2026-10-25T00:47:52.2795257Z 452 handleForkSession: (handler) => 2026-10-25T00:47:52.2795397Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2795466Z 2026-10-25T00:47:52.2795736Z src/agent.ts:457:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleResumeSession")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2796047Z 2026-10-25T00:47:52.2796107Z 457 handleResumeSession: (handler) => 2026-10-25T00:47:52.2796246Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2796320Z 2026-10-25T00:47:52.2796588Z src/agent.ts:462:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleCloseSession")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2796896Z 2026-10-25T00:47:52.2796950Z 462 handleCloseSession: (handler) => 2026-10-25T00:47:52.2797088Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2797158Z 2026-10-25T00:47:52.2797429Z src/agent.ts:467:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleDeleteSession")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2797740Z 2026-10-25T00:47:52.2797798Z 467 handleDeleteSession: (handler) => 2026-10-25T00:47:52.2797937Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2798012Z 2026-10-25T00:47:52.2798380Z src/agent.ts:472:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleListProviders")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2798696Z 2026-10-25T00:47:52.2798752Z 472 handleListProviders: (handler) => 2026-10-25T00:47:52.2799206Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2799281Z 2026-10-25T00:47:52.2799544Z src/agent.ts:477:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleSetProvider")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2799854Z 2026-10-25T00:47:52.2799912Z 477 handleSetProvider: (handler) => 2026-10-25T00:47:52.2800048Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2800120Z 2026-10-25T00:47:52.2800533Z src/agent.ts:482:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleDisableProvider")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2800949Z 2026-10-25T00:47:52.2801008Z 482 handleDisableProvider: (handler) => 2026-10-25T00:47:52.2801157Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2801236Z 2026-10-25T00:47:52.2801554Z src/agent.ts:487:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleSetSessionConfigOption")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2801885Z 2026-10-25T00:47:52.2801957Z 487 handleSetSessionConfigOption: (handler) => 2026-10-25T00:47:52.2802116Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2802269Z 2026-10-25T00:47:52.2802533Z src/agent.ts:492:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handlePrompt")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2802834Z 2026-10-25T00:47:52.2802888Z 492 handlePrompt: (handler) => 2026-10-25T00:47:52.2803023Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.2803104Z 2026-10-25T00:47:52.2803359Z src/agent.ts:497:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleCancel")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2803658Z 2026-10-25T00:47:52.2803712Z 497 handleCancel: (handler) => 2026-10-25T00:47:52.2803840Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.2803908Z 2026-10-25T00:47:52.2804194Z src/agent.ts:502:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleUnknownExtRequest")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2804516Z 2026-10-25T00:47:52.2804577Z 502 handleUnknownExtRequest: (handler) => 2026-10-25T00:47:52.2804729Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2804810Z 2026-10-25T00:47:52.2805098Z src/agent.ts:507:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleUnknownExtNotification")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2805433Z 2026-10-25T00:47:52.2805503Z 507 handleUnknownExtNotification: (handler) => 2026-10-25T00:47:52.2805659Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2805744Z 2026-10-25T00:47:52.2806038Z src/agent.ts:512:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleExtRequest")((method, payload, handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2806374Z 2026-10-25T00:47:52.2806446Z 512 handleExtRequest: (method, payload, handler) => 2026-10-25T00:47:52.2806609Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2806682Z 2026-10-25T00:47:52.2806982Z src/agent.ts:517:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpAgent.handleExtNotification")((method, payload, handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2807327Z 2026-10-25T00:47:52.2807409Z 517 handleExtNotification: (method, payload, handler) => 2026-10-25T00:47:52.2807578Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2807657Z 2026-10-25T00:47:52.2807985Z src/client.test.ts:56:10 - suggestion TS377036: This `Schema.Struct` includes a `_tag` field. `Schema.TaggedStruct` is the tagged-struct form for this pattern and makes the tag optional in the constructor. effect(schemaStructWithTag) 2026-10-25T00:47:52.2808351Z 2026-10-25T00:47:52.2808403Z 56 error: Schema.Struct({ 2026-10-25T00:47:52.2808524Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2808649Z 57 _tag: Schema.Literal("Cause"), 2026-10-25T00:47:52.2808791Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2808969Z 58 data: Schema.Tuple([Schema.Struct({ _tag: Schema.Literal("Die") })]), 2026-10-25T00:47:52.2809182Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2809341Z 59 }), 2026-10-25T00:47:52.2809510Z ~~~~ 2026-10-25T00:47:52.2809564Z 2026-10-25T00:47:52.2809884Z src/client.test.ts:58:25 - suggestion TS377036: This `Schema.Struct` includes a `_tag` field. `Schema.TaggedStruct` is the tagged-struct form for this pattern and makes the tag optional in the constructor. effect(schemaStructWithTag) 2026-10-25T00:47:52.2810245Z 2026-10-25T00:47:52.2810340Z 58 data: Schema.Tuple([Schema.Struct({ _tag: Schema.Literal("Die") })]), 2026-10-25T00:47:52.2810539Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2810650Z 2026-10-25T00:47:52.2810953Z src/client.test.ts:1071:18 - suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach) 2026-10-25T00:47:52.2811247Z 2026-10-25T00:47:52.2811305Z 1071 yield* Effect.all( 2026-10-25T00:47:52.2811471Z ~~~~~~~~~~ 2026-10-25T00:47:52.2811550Z 2026-10-25T00:47:52.2811849Z src/client.ts:1245:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleRequestPermission")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2812184Z 2026-10-25T00:47:52.2812252Z 1245 handleRequestPermission: (handler) => 2026-10-25T00:47:52.2812402Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2812484Z 2026-10-25T00:47:52.2812759Z src/client.ts:1250:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleElicitation")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2813072Z 2026-10-25T00:47:52.2813128Z 1250 handleElicitation: (handler) => 2026-10-25T00:47:52.2813271Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2813347Z 2026-10-25T00:47:52.2813613Z src/client.ts:1255:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleMcpConnect")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2813925Z 2026-10-25T00:47:52.2814011Z 1255 handleMcpConnect: (handler) => 2026-10-25T00:47:52.2814149Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2814224Z 2026-10-25T00:47:52.2814496Z src/client.ts:1259:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleMcpMessage")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2814806Z 2026-10-25T00:47:52.2814860Z 1259 handleMcpMessage: (handler) => 2026-10-25T00:47:52.2814998Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2815073Z 2026-10-25T00:47:52.2815352Z src/client.ts:1263:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleMcpDisconnect")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2815674Z 2026-10-25T00:47:52.2815737Z 1263 handleMcpDisconnect: (handler) => 2026-10-25T00:47:52.2815881Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2815961Z 2026-10-25T00:47:52.2816244Z src/client.ts:1267:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleMcpNotification")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2816566Z 2026-10-25T00:47:52.2816626Z 1267 handleMcpNotification: (handler) => 2026-10-25T00:47:52.2816772Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2816853Z 2026-10-25T00:47:52.2817124Z src/client.ts:1276:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleReadTextFile")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2817439Z 2026-10-25T00:47:52.2817500Z 1276 handleReadTextFile: (handler) => 2026-10-25T00:47:52.2817640Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2817716Z 2026-10-25T00:47:52.2817992Z src/client.ts:1280:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleWriteTextFile")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2818378Z 2026-10-25T00:47:52.2818435Z 1280 handleWriteTextFile: (handler) => 2026-10-25T00:47:52.2818579Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2818658Z 2026-10-25T00:47:52.2818935Z src/client.ts:1284:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleCreateTerminal")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2819254Z 2026-10-25T00:47:52.2819316Z 1284 handleCreateTerminal: (handler) => 2026-10-25T00:47:52.2819460Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2819540Z 2026-10-25T00:47:52.2819874Z src/client.ts:1288:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleTerminalOutput")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2820194Z 2026-10-25T00:47:52.2820254Z 1288 handleTerminalOutput: (handler) => 2026-10-25T00:47:52.2820398Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2820477Z 2026-10-25T00:47:52.2820769Z src/client.ts:1292:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleTerminalWaitForExit")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2821100Z 2026-10-25T00:47:52.2821169Z 1292 handleTerminalWaitForExit: (handler) => 2026-10-25T00:47:52.2821324Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2821445Z 2026-10-25T00:47:52.2821722Z src/client.ts:1296:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleTerminalKill")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2822036Z 2026-10-25T00:47:52.2822095Z 1296 handleTerminalKill: (handler) => 2026-10-25T00:47:52.2822259Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2822337Z 2026-10-25T00:47:52.2822617Z src/client.ts:1300:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleTerminalRelease")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2822938Z 2026-10-25T00:47:52.2823001Z 1300 handleTerminalRelease: (handler) => 2026-10-25T00:47:52.2823148Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2823224Z 2026-10-25T00:47:52.2823499Z src/client.ts:1304:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleSessionUpdate")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2823817Z 2026-10-25T00:47:52.2823878Z 1304 handleSessionUpdate: (handler) => 2026-10-25T00:47:52.2824019Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2824097Z 2026-10-25T00:47:52.2824389Z src/client.ts:1309:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleElicitationComplete")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2824716Z 2026-10-25T00:47:52.2824784Z 1309 handleElicitationComplete: (handler) => 2026-10-25T00:47:52.2824939Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2825020Z 2026-10-25T00:47:52.2825305Z src/client.ts:1314:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleUnknownExtRequest")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2825629Z 2026-10-25T00:47:52.2825695Z 1314 handleUnknownExtRequest: (handler) => 2026-10-25T00:47:52.2825842Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2825924Z 2026-10-25T00:47:52.2826220Z src/client.ts:1319:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleUnknownExtNotification")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2826555Z 2026-10-25T00:47:52.2826628Z 1319 handleUnknownExtNotification: (handler) => 2026-10-25T00:47:52.2826792Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2826944Z 2026-10-25T00:47:52.2827244Z src/client.ts:1324:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleExtRequest")((method, payload, handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2827582Z 2026-10-25T00:47:52.2827659Z 1324 handleExtRequest: (method, payload, handler) => 2026-10-25T00:47:52.2827819Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2827892Z 2026-10-25T00:47:52.2828252Z src/client.ts:1329:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AcpClient.handleExtNotification")((method, payload, handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2828603Z 2026-10-25T00:47:52.2828683Z 1329 handleExtNotification: (method, payload, handler) => 2026-10-25T00:47:52.2828856Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2828933Z 2026-10-25T00:47:52.2829334Z src/protocol.test.ts:500:38 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.2829765Z 2026-10-25T00:47:52.2829846Z 500 const response = yield* Schema.decodeUnknownEffect( 2026-10-25T00:47:52.2830026Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2830128Z 2026-10-25T00:47:52.2830405Z src/protocol.ts:875:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RpcClient.Protocol.run")((_clientId, f) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2830718Z 2026-10-25T00:47:52.2830768Z 875 run: (_clientId, f) => 2026-10-25T00:47:52.2830897Z ~~~ 2026-10-25T00:47:52.2830957Z 2026-10-25T00:47:52.2831236Z src/protocol.ts:880:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RpcClient.Protocol.send")((_clientId, request) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2831584Z 2026-10-25T00:47:52.2831640Z 880 send: (_clientId, request) => 2026-10-25T00:47:52.2831771Z ~~~~ 2026-10-25T00:47:52.2831832Z 2026-10-25T00:47:52.2832091Z src/protocol.ts:898:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RpcServer.Protocol.run")((f) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2832388Z 2026-10-25T00:47:52.2832433Z 898 run: (f) => 2026-10-25T00:47:52.2832544Z ~~~ 2026-10-25T00:47:52.2832603Z 2026-10-25T00:47:52.2832883Z src/protocol.ts:904:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RpcServer.Protocol.send")((_clientId, response) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2833206Z 2026-10-25T00:47:52.2833264Z 904 send: (_clientId, response) => 2026-10-25T00:47:52.2833396Z ~~~~ 2026-10-25T00:47:52.2833460Z 2026-10-25T00:47:52.2833725Z src/protocol.ts:913:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RpcServer.Protocol.end")((_clientId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2834030Z 2026-10-25T00:47:52.2834078Z 913 end: (_clientId) => 2026-10-25T00:47:52.2834200Z ~~~ 2026-10-25T00:47:52.2834258Z 2026-10-25T00:47:52.2834260Z 2026-10-25T00:47:52.2834629Z src/auth.test.ts:17:19 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.2835042Z 2026-10-25T00:47:52.2835172Z 17 expect(Schema.decodeUnknownSync(AuthEnvironmentScopes)(["review:write"])).toEqual([ 2026-10-25T00:47:52.2835388Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2835476Z 2026-10-25T00:47:52.2835479Z 2026-10-25T00:47:52.2835536Z ~/packages/shared$ tsc --noEmit 2026-10-25T00:47:52.2835944Z src/HostProcess.ts:91:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("defaultValue")(function*() { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2836256Z 2026-10-25T00:47:52.2836309Z 91 defaultValue: () => 2026-10-25T00:47:52.2836430Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.2836497Z 2026-10-25T00:47:52.2836749Z src/httpReadiness.ts:121:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2837036Z 2026-10-25T00:47:52.2837085Z 121 onNone: () => 2026-10-25T00:47:52.2837242Z ~~~~~~ 2026-10-25T00:47:52.2837306Z 2026-10-25T00:47:52.2837571Z src/nodeSqliteClient.ts:143:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("checkNodeSqliteCompat")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2837882Z 2026-10-25T00:47:52.2837944Z 143 const checkNodeSqliteCompat = () => { 2026-10-25T00:47:52.2838085Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2838168Z 2026-10-25T00:47:52.2838495Z src/nodeSqliteClient.ts:471:31 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.2838791Z 2026-10-25T00:47:52.2838869Z 471 if (unavailable) return Effect.succeed(undefined); 2026-10-25T00:47:52.2839045Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2839146Z 2026-10-25T00:47:52.2839534Z src/nodeSqliteClient.ts:478:3 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen) 2026-10-25T00:47:52.2839941Z 2026-10-25T00:47:52.2840042Z 478 return Effect.suspend((): Effect.Effect => { 2026-10-25T00:47:52.2840230Z ~~~~~~ 2026-10-25T00:47:52.2840288Z 2026-10-25T00:47:52.2840546Z src/nodeSqliteClient.ts:479:29 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.2840842Z 2026-10-25T00:47:52.2840918Z 479 if (unavailable) return Effect.succeed(undefined); 2026-10-25T00:47:52.2841089Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2841188Z 2026-10-25T00:47:52.2841476Z src/nodeSqliteClient.ts:500:13 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.2841766Z 2026-10-25T00:47:52.2841824Z 500 ? Effect.succeed(undefined) 2026-10-25T00:47:52.2841968Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2842051Z 2026-10-25T00:47:52.2842421Z src/nodeSqliteClient.ts:665:3 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen) 2026-10-25T00:47:52.2842825Z 2026-10-25T00:47:52.2842873Z 665 try { 2026-10-25T00:47:52.2842973Z ~~~~~ 2026-10-25T00:47:52.2843129Z 666 worker = new NodeWorkerThreads.Worker(checkpointWorkerSource, { 2026-10-25T00:47:52.2843337Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2843492Z ... 2026-10-25T00:47:52.2843593Z 677 return undefined; 2026-10-25T00:47:52.2843711Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2843828Z 678 } 2026-10-25T00:47:52.2843923Z ~~~ 2026-10-25T00:47:52.2843979Z 2026-10-25T00:47:52.2844188Z src/symlink.ts:28:7 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.2844430Z 2026-10-25T00:47:52.2844559Z 28 Effect.map(Option.some), 2026-10-25T00:47:52.2844692Z ~~~~~~~~~~ 2026-10-25T00:47:52.2844756Z 2026-10-25T00:47:52.2844759Z 2026-10-25T00:47:52.2844813Z ~/apps/marketing$ astro check 2026-10-25T00:47:52.2844962Z ~/packages/source-control-core$ tsc --noEmit 2026-10-25T00:47:52.2845125Z ~/packages/tailscale$ tsc --noEmit 2026-10-25T00:47:52.2845216Z 2026-10-25T00:47:52.2845271Z ~/packages/ssh$ tsc --noEmit 2026-10-25T00:47:52.2845672Z src/client.ts:243:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CodexAppServerClient.handleServerRequest")((method, handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2846087Z 2026-10-25T00:47:52.2846156Z 243 handleServerRequest: (method, handler) => 2026-10-25T00:47:52.2846307Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2846383Z 2026-10-25T00:47:52.2846705Z src/client.ts:247:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CodexAppServerClient.handleServerNotification")((method, handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2847063Z 2026-10-25T00:47:52.2847138Z 247 handleServerNotification: (method, handler) => 2026-10-25T00:47:52.2847303Z ~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2847382Z 2026-10-25T00:47:52.2847699Z src/client.ts:253:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CodexAppServerClient.handleUnknownServerRequest")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2848052Z 2026-10-25T00:47:52.2848124Z 253 handleUnknownServerRequest: (handler) => 2026-10-25T00:47:52.2848278Z ~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2848363Z 2026-10-25T00:47:52.2848687Z src/client.ts:257:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CodexAppServerClient.handleUnknownServerNotification")((handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2849051Z 2026-10-25T00:47:52.2849124Z 257 handleUnknownServerNotification: (handler) => 2026-10-25T00:47:52.2849289Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2849372Z 2026-10-25T00:47:52.2849374Z 2026-10-25T00:47:52.2849435Z ~/packages/provider-core$ tsc --noEmit 2026-10-25T00:47:52.2849786Z src/auth.ts:51:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SshPasswordPrompt.request")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2850080Z 2026-10-25T00:47:52.2850138Z 51 request: () => Effect.succeed(null), 2026-10-25T00:47:52.2850282Z ~~~~~~~ 2026-10-25T00:47:52.2850343Z 2026-10-25T00:47:52.2850584Z src/command.ts:311:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2850866Z 2026-10-25T00:47:52.2850918Z 311 onNone: () => 2026-10-25T00:47:52.2851036Z ~~~~~~ 2026-10-25T00:47:52.2851102Z 2026-10-25T00:47:52.2851104Z 2026-10-25T00:47:52.2851157Z ~/scripts$ tsc --noEmit 2026-10-25T00:47:52.2851230Z 2026-10-25T00:47:52.2851302Z ~/packages/source-control-testing$ tsc --noEmit 2026-10-25T00:47:52.2851750Z src/server/McpProviderSessions.ts:95:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpProviderSessions.read")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2852090Z 2026-10-25T00:47:52.2852224Z 95 read: (threadId) => Ref.get(sessions).pipe(Effect.map((current) => current.get(threadId))), 2026-10-25T00:47:52.2852442Z ~~~~ 2026-10-25T00:47:52.2852499Z 2026-10-25T00:47:52.2852805Z src/server/McpProviderSessions.ts:96:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpProviderSessions.clear")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2853147Z 2026-10-25T00:47:52.2853266Z 96 clear: (threadId) => 2026-10-25T00:47:52.2853385Z ~~~~~ 2026-10-25T00:47:52.2853446Z 2026-10-25T00:47:52.2853798Z src/server/McpProviderSessions.ts:110:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpProviderSessions.recordHtmlRender")((threadId, input, reference) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2854193Z 2026-10-25T00:47:52.2854265Z 110 recordHtmlRender: (threadId, input, reference) => 2026-10-25T00:47:52.2854430Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2854504Z 2026-10-25T00:47:52.2854889Z src/server/McpProviderSessions.ts:130:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpProviderSessions.takeHtmlRender")((threadId, input, reported) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2855339Z 2026-10-25T00:47:52.2855441Z 130 takeHtmlRender: (threadId, input, reported) => 2026-10-25T00:47:52.2855648Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2855828Z 2026-10-25T00:47:52.2871744Z src/server/ProviderContinuationRequests.ts:55:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderContinuationRequests.offer")((request) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2872171Z 2026-10-25T00:47:52.2872256Z 55 offer: (request: ProviderContinuationRequest) => 2026-10-25T00:47:52.2872416Z ~~~~~ 2026-10-25T00:47:52.2872514Z 2026-10-25T00:47:52.2872851Z src/server/ProviderLatestVersions.ts:53:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderLatestVersions.invalidate")((key) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2873216Z 2026-10-25T00:47:52.2873269Z 53 invalidate: (key) => 2026-10-25T00:47:52.2873386Z ~~~~~~~~~~ 2026-10-25T00:47:52.2873448Z 2026-10-25T00:47:52.2873721Z src/server/snapshotProbe.test.ts:139:9 - suggestion TS377124: `Effect.provideService` provides this inline single-service layer directly. effect(provideLayerSucceedToProvideService) 2026-10-25T00:47:52.2874034Z 2026-10-25T00:47:52.2874168Z 139 Effect.provide(Layer.succeed(ChildProcessSpawner.ChildProcessSpawner, spawner)), 2026-10-25T00:47:52.2874382Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2874455Z 2026-10-25T00:47:52.2874457Z 2026-10-25T00:47:52.2874516Z ~/packages/provider-acp$ tsc --noEmit 2026-10-25T00:47:52.2874657Z 00:47:37 [types] Generated 158ms 2026-10-25T00:47:52.2874881Z 00:47:37 [check] Getting diagnostics for Astro files in /home/runner/_work/t3code/t3code/apps/marketing... 2026-10-25T00:47:52.2875060Z 2026-10-25T00:47:52.2875121Z ~/packages/provider-testing$ tsc --noEmit 2026-10-25T00:47:52.2875218Z 2026-10-25T00:47:52.2875286Z ~/packages/source-control-gitlab$ tsc --noEmit 2026-10-25T00:47:52.2875775Z src/server/AcpSessionRuntime.ts:501:7 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen) 2026-10-25T00:47:52.2876196Z 2026-10-25T00:47:52.2876240Z 501 try { 2026-10-25T00:47:52.2876339Z ~~~~~ 2026-10-25T00:47:52.2876445Z 502 lease.kill(); 2026-10-25T00:47:52.2876559Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2876669Z ... 2026-10-25T00:47:52.2876769Z 508 continue; 2026-10-25T00:47:52.2876878Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2876984Z 509 } 2026-10-25T00:47:52.2877079Z ~~~~~~~ 2026-10-25T00:47:52.2877135Z 2026-10-25T00:47:52.2877511Z src/server/AcpSessionRuntime.ts:511:7 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen) 2026-10-25T00:47:52.2877923Z 2026-10-25T00:47:52.2877965Z 511 try { 2026-10-25T00:47:52.2878070Z ~~~~~ 2026-10-25T00:47:52.2878187Z 512 populated = lease.populated(); 2026-10-25T00:47:52.2878713Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2878842Z ... 2026-10-25T00:47:52.2878974Z 520 return yield* failure("read state for", cause); 2026-10-25T00:47:52.2879153Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2879299Z 521 } 2026-10-25T00:47:52.2879402Z ~~~~~~~ 2026-10-25T00:47:52.2879461Z 2026-10-25T00:47:52.2879896Z src/server/AcpSessionRuntime.ts:527:7 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen) 2026-10-25T00:47:52.2880314Z 2026-10-25T00:47:52.2880361Z 527 try { 2026-10-25T00:47:52.2880463Z ~~~~~ 2026-10-25T00:47:52.2880576Z 528 lease.remove(); 2026-10-25T00:47:52.2880698Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2880817Z ... 2026-10-25T00:47:52.2880930Z 536 lastRemovalFailure = { cause }; 2026-10-25T00:47:52.2881081Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2881212Z 537 } 2026-10-25T00:47:52.2881310Z ~~~~~~~ 2026-10-25T00:47:52.2881399Z 2026-10-25T00:47:52.2881728Z src/server/AcpSessionRuntime.ts:1990:15 - suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption) 2026-10-25T00:47:52.2882089Z 2026-10-25T00:47:52.2882145Z 1990 Option.match(result, { 2026-10-25T00:47:52.2882290Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.2882374Z 2026-10-25T00:47:52.2882681Z src/server/AcpSessionRuntime.ts:2037:7 - suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen) 2026-10-25T00:47:52.2883027Z 2026-10-25T00:47:52.2883095Z 2037 Effect.flatMap(() => getStartedState), 2026-10-25T00:47:52.2883249Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2883325Z 2026-10-25T00:47:52.2883657Z src/server/AcpSessionRuntime.ts:2254:7 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.2884028Z 2026-10-25T00:47:52.2884086Z 2254 Effect.catch((error) => 2026-10-25T00:47:52.2884219Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.2884292Z 2026-10-25T00:47:52.2884652Z src/server/AcpSessionRuntime.ts:2611:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.2885046Z 2026-10-25T00:47:52.2885107Z 2611 Effect.catchCause((cause) => 2026-10-25T00:47:52.2885261Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2885346Z 2026-10-25T00:47:52.2885680Z src/server/adapter.ts:1398:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2886051Z 2026-10-25T00:47:52.2886147Z 1398 getCapabilities: () => Effect.succeed(flavor.capabilities), 2026-10-25T00:47:52.2886326Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2886403Z 2026-10-25T00:47:52.2886754Z src/server/adapter.ts:1399:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2887141Z 2026-10-25T00:47:52.2887279Z 1399 planSelectionTransition: (input) => Effect.succeed(acpSelectionTransition(input)), 2026-10-25T00:47:52.2887502Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2887583Z 2026-10-25T00:47:52.2887773Z src/server/adapter.ts:5423:23 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen) 2026-10-25T00:47:52.2888075Z 2026-10-25T00:47:52.2888146Z 5423 Effect.gen(function* () { 2026-10-25T00:47:52.2888309Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2888509Z 5424 yield* Ref.update(pendingRuntimeRequests, (current) => { 2026-10-25T00:47:52.2888727Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2888899Z ... 2026-10-25T00:47:52.2889006Z 5428 }); 2026-10-25T00:47:52.2889134Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2889315Z 5429 }), 2026-10-25T00:47:52.2889443Z ~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2889524Z 2026-10-25T00:47:52.2889710Z src/server/adapter.ts:6117:21 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen) 2026-10-25T00:47:52.2889934Z 2026-10-25T00:47:52.2889998Z 6117 Effect.gen(function* () { 2026-10-25T00:47:52.2890159Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2890349Z 6118 yield* Ref.update(pendingRuntimeRequests, (current) => { 2026-10-25T00:47:52.2890566Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2890729Z ... 2026-10-25T00:47:52.2890838Z 6122 }); 2026-10-25T00:47:52.2890963Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2891086Z 6123 }), 2026-10-25T00:47:52.2891213Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2891291Z 2026-10-25T00:47:52.2891622Z src/server/adapter.ts:7157:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("scheduleDeferredFinalize")(function*(context) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2891961Z 2026-10-25T00:47:52.2892034Z 7157 scheduleDeferredFinalize = (context) => 2026-10-25T00:47:52.2892192Z ~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2892281Z 2026-10-25T00:47:52.2892567Z src/server/clientTerminals.test.ts:364:32 - suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach) 2026-10-25T00:47:52.2892888Z 2026-10-25T00:47:52.2892948Z 364 const results = yield* Effect.all( 2026-10-25T00:47:52.2893106Z ~~~~~~~~~~ 2026-10-25T00:47:52.2893202Z 2026-10-25T00:47:52.2893204Z 2026-10-25T00:47:52.2893268Z ~/packages/source-control-github$ tsc --noEmit 2026-10-25T00:47:52.2893705Z src/TestProviderHost.ts:59:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderHost.ProviderHost.shouldRunBackgroundWork")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2894072Z 2026-10-25T00:47:52.2894201Z 59 shouldRunBackgroundWork: () => Effect.succeed(options.runBackgroundWork ?? true), 2026-10-25T00:47:52.2894419Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2894508Z 2026-10-25T00:47:52.2894842Z src/TestProviderHost.ts:61:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderHost.ProviderHost.credentials")((namespace, bindingId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2895209Z 2026-10-25T00:47:52.2895277Z 61 credentials: (namespace, bindingId) => 2026-10-25T00:47:52.2895430Z ~~~~~~~~~~~ 2026-10-25T00:47:52.2895499Z 2026-10-25T00:47:52.2895501Z 2026-10-25T00:47:52.2895580Z ~/packages/source-control-azure-devops$ tsc --noEmit 2026-10-25T00:47:52.2895991Z src/server/GitLabCli.ts:470:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabCli.listMergeRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2896318Z 2026-10-25T00:47:52.2896378Z 470 listMergeRequests: (input) => 2026-10-25T00:47:52.2896600Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2896672Z 2026-10-25T00:47:52.2896958Z src/server/GitLabCli.ts:507:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabCli.getMergeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2897283Z 2026-10-25T00:47:52.2897342Z 507 getMergeRequest: (input) => 2026-10-25T00:47:52.2897478Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2897552Z 2026-10-25T00:47:52.2897905Z src/server/GitLabCli.ts:534:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabCli.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2898240Z 2026-10-25T00:47:52.2898307Z 534 getRepositoryCloneUrls: (input) => 2026-10-25T00:47:52.2898459Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2898536Z 2026-10-25T00:47:52.2898822Z src/server/GitLabCli.ts:556:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabCli.createRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2899149Z 2026-10-25T00:47:52.2899209Z 556 createRepository: (input) => { 2026-10-25T00:47:52.2899348Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2899423Z 2026-10-25T00:47:52.2899713Z src/server/GitLabCli.ts:621:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabCli.createMergeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2900037Z 2026-10-25T00:47:52.2900097Z 621 createMergeRequest: (input) => { 2026-10-25T00:47:52.2900243Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2900318Z 2026-10-25T00:47:52.2900602Z src/server/GitLabCli.ts:642:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabCli.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2900925Z 2026-10-25T00:47:52.2900983Z 642 getDefaultBranch: (input) => 2026-10-25T00:47:52.2901115Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2901187Z 2026-10-25T00:47:52.2901496Z src/server/GitLabCli.ts:663:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabCli.checkoutMergeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2901827Z 2026-10-25T00:47:52.2901883Z 663 checkoutMergeRequest: (input) => 2026-10-25T00:47:52.2902025Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2902100Z 2026-10-25T00:47:52.2902432Z src/server/GitLabPullRequestCli.ts:1139:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listMergeRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2902802Z 2026-10-25T00:47:52.2902860Z 1139 listMergeRequests: (input) => { 2026-10-25T00:47:52.2902996Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2903071Z 2026-10-25T00:47:52.2903384Z src/server/GitLabPullRequestCli.ts:1147:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listNotes")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2903739Z 2026-10-25T00:47:52.2903842Z 1147 listNotes: (input) => notesPage({ ...input, page: 1, collected: [] }), 2026-10-25T00:47:52.2904030Z ~~~~~~~~~ 2026-10-25T00:47:52.2904096Z 2026-10-25T00:47:52.2904415Z src/server/GitLabPullRequestCli.ts:1149:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listReactions")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2904779Z 2026-10-25T00:47:52.2904912Z 1149 listReactions: (input) => awardsPage({ ...input, cursor: null, page: 1, collected: null }), 2026-10-25T00:47:52.2905126Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.2905198Z 2026-10-25T00:47:52.2905517Z src/server/GitLabPullRequestCli.ts:1187:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listCommits")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2905932Z 2026-10-25T00:47:52.2905983Z 1187 listCommits: (input) => 2026-10-25T00:47:52.2906114Z ~~~~~~~~~~~ 2026-10-25T00:47:52.2906183Z 2026-10-25T00:47:52.2906510Z src/server/GitLabPullRequestCli.ts:1212:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.getMergeRequestDiff")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2906881Z 2026-10-25T00:47:52.2906941Z 1212 getMergeRequestDiff: (input) => { 2026-10-25T00:47:52.2907132Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2907211Z 2026-10-25T00:47:52.2907562Z src/server/GitLabPullRequestCli.ts:1283:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.getProjectMergeCapabilities")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2907955Z 2026-10-25T00:47:52.2908024Z 1283 getProjectMergeCapabilities: (input) => 2026-10-25T00:47:52.2908176Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2908261Z 2026-10-25T00:47:52.2908587Z src/server/GitLabPullRequestCli.ts:1303:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listProjectLabels")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2908953Z 2026-10-25T00:47:52.2909011Z 1303 listProjectLabels: (input) => 2026-10-25T00:47:52.2909149Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2909220Z 2026-10-25T00:47:52.2909548Z src/server/GitLabPullRequestCli.ts:1329:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listProjectUsers")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2909914Z 2026-10-25T00:47:52.2909972Z 1329 listProjectUsers: (input) => 2026-10-25T00:47:52.2910105Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2910177Z 2026-10-25T00:47:52.2910518Z src/server/GitLabPullRequestCli.ts:1337:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listReviewerCandidates")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2910896Z 2026-10-25T00:47:52.2910959Z 1337 listReviewerCandidates: (input) => 2026-10-25T00:47:52.2911106Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2911184Z 2026-10-25T00:47:52.2911538Z src/server/GitLabPullRequestCli.ts:1355:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.setReviewerRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2911908Z 2026-10-25T00:47:52.2911966Z 1355 setReviewerRequest: (input) => 2026-10-25T00:47:52.2912107Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2912180Z 2026-10-25T00:47:52.2912508Z src/server/GitLabPullRequestCli.ts:1408:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.updateMergeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2912875Z 2026-10-25T00:47:52.2912928Z 1408 updateMergeRequest: (input) => 2026-10-25T00:47:52.2913063Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2913136Z 2026-10-25T00:47:52.2913468Z src/server/GitLabPullRequestCli.ts:1422:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.commentOnMergeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2913844Z 2026-10-25T00:47:52.2913903Z 1422 commentOnMergeRequest: (input) => 2026-10-25T00:47:52.2914041Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2914119Z 2026-10-25T00:47:52.2914433Z src/server/GitLabPullRequestCli.ts:1432:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.updateNote")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2914846Z 2026-10-25T00:47:52.2914895Z 1432 updateNote: (input) => 2026-10-25T00:47:52.2915014Z ~~~~~~~~~~ 2026-10-25T00:47:52.2915078Z 2026-10-25T00:47:52.2915400Z src/server/GitLabPullRequestCli.ts:1442:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.listDiscussions")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2915763Z 2026-10-25T00:47:52.2915883Z 1442 listDiscussions: (input) => discussionsPage({ ...input, page: 1, collected: [] }), 2026-10-25T00:47:52.2916125Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2916197Z 2026-10-25T00:47:52.2916524Z src/server/GitLabPullRequestCli.ts:1493:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.replyToDiscussion")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2916891Z 2026-10-25T00:47:52.2916944Z 1493 replyToDiscussion: (input) => 2026-10-25T00:47:52.2917079Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2917150Z 2026-10-25T00:47:52.2917486Z src/server/GitLabPullRequestCli.ts:1503:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitLabPullRequestCli.setDiscussionResolution")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2917867Z 2026-10-25T00:47:52.2917929Z 1503 setDiscussionResolution: (input) => 2026-10-25T00:47:52.2918072Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2918153Z 2026-10-25T00:47:52.2918634Z src/server/GitLabSourceControlProvider.ts:211:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.readChangeRequestTemplate")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2919074Z 2026-10-25T00:47:52.2919150Z 211 readChangeRequestTemplate: ({ cwd, treeish }) => 2026-10-25T00:47:52.2919311Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2919394Z 2026-10-25T00:47:52.2919781Z src/server/GitLabSourceControlProvider.ts:226:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2920211Z 2026-10-25T00:47:52.2920267Z 226 listChangeRequests: (input) => { 2026-10-25T00:47:52.2920403Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2920473Z 2026-10-25T00:47:52.2920861Z src/server/GitLabSourceControlProvider.ts:254:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2921285Z 2026-10-25T00:47:52.2921338Z 254 getChangeRequest: (input) => 2026-10-25T00:47:52.2921488Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2921557Z 2026-10-25T00:47:52.2921945Z src/server/GitLabSourceControlProvider.ts:272:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2922374Z 2026-10-25T00:47:52.2922429Z 272 createChangeRequest: (input) => { 2026-10-25T00:47:52.2922564Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2922636Z 2026-10-25T00:47:52.2923031Z src/server/GitLabSourceControlProvider.ts:301:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2923467Z 2026-10-25T00:47:52.2923524Z 301 getRepositoryCloneUrls: (input) => 2026-10-25T00:47:52.2923659Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2923809Z 2026-10-25T00:47:52.2924195Z src/server/GitLabSourceControlProvider.ts:318:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2924620Z 2026-10-25T00:47:52.2924672Z 318 createRepository: (input) => 2026-10-25T00:47:52.2924802Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2924872Z 2026-10-25T00:47:52.2925315Z src/server/GitLabSourceControlProvider.ts:335:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2925743Z 2026-10-25T00:47:52.2925795Z 335 getDefaultBranch: (input) => 2026-10-25T00:47:52.2925923Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2925991Z 2026-10-25T00:47:52.2926390Z src/server/GitLabSourceControlProvider.ts:349:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2926827Z 2026-10-25T00:47:52.2926884Z 349 checkoutChangeRequest: (input) => 2026-10-25T00:47:52.2927021Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2927098Z 2026-10-25T00:47:52.2927100Z 2026-10-25T00:47:52.2927167Z ~/packages/source-control-bitbucket$ tsc --noEmit 2026-10-25T00:47:52.2927581Z src/server/AzureDevOpsCli.ts:403:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsCli.listPullRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2927924Z 2026-10-25T00:47:52.2927976Z 403 listPullRequests: (input) => 2026-10-25T00:47:52.2928103Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2928172Z 2026-10-25T00:47:52.2928469Z src/server/AzureDevOpsCli.ts:443:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsCli.getPullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2928806Z 2026-10-25T00:47:52.2928859Z 443 getPullRequest: (input) => 2026-10-25T00:47:52.2928987Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2929054Z 2026-10-25T00:47:52.2929367Z src/server/AzureDevOpsCli.ts:477:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsCli.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2929717Z 2026-10-25T00:47:52.2929775Z 477 getRepositoryCloneUrls: (input) => 2026-10-25T00:47:52.2929916Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2929992Z 2026-10-25T00:47:52.2930293Z src/server/AzureDevOpsCli.ts:493:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsCli.createRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2930631Z 2026-10-25T00:47:52.2930686Z 493 createRepository: (input) => { 2026-10-25T00:47:52.2930818Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2930884Z 2026-10-25T00:47:52.2931185Z src/server/AzureDevOpsCli.ts:518:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsCli.createPullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2931554Z 2026-10-25T00:47:52.2931610Z 518 createPullRequest: (input) => 2026-10-25T00:47:52.2931740Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2931811Z 2026-10-25T00:47:52.2932111Z src/server/AzureDevOpsCli.ts:538:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsCli.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2932449Z 2026-10-25T00:47:52.2932501Z 538 getDefaultBranch: (input) => 2026-10-25T00:47:52.2932629Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2932755Z 2026-10-25T00:47:52.2933062Z src/server/AzureDevOpsCli.ts:549:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsCli.checkoutPullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2933409Z 2026-10-25T00:47:52.2933464Z 549 checkoutPullRequest: (input) => 2026-10-25T00:47:52.2933598Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2933672Z 2026-10-25T00:47:52.2934002Z src/server/AzureDevOpsPullRequestCli.ts:494:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.getViewer")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2934419Z 2026-10-25T00:47:52.2934469Z 494 getViewer: (input) => 2026-10-25T00:47:52.2934586Z ~~~~~~~~~ 2026-10-25T00:47:52.2934646Z 2026-10-25T00:47:52.2934989Z src/server/AzureDevOpsPullRequestCli.ts:548:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.listPullRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2935375Z 2026-10-25T00:47:52.2935427Z 548 listPullRequests: (input) => 2026-10-25T00:47:52.2935554Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2935623Z 2026-10-25T00:47:52.2935966Z src/server/AzureDevOpsPullRequestCli.ts:562:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.getPullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2936346Z 2026-10-25T00:47:52.2936397Z 562 getPullRequest: (input) => 2026-10-25T00:47:52.2936526Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2936594Z 2026-10-25T00:47:52.2936924Z src/server/AzureDevOpsPullRequestCli.ts:593:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.listThreads")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2937302Z 2026-10-25T00:47:52.2937353Z 593 listThreads: (input) => 2026-10-25T00:47:52.2937475Z ~~~~~~~~~~~ 2026-10-25T00:47:52.2937539Z 2026-10-25T00:47:52.2937876Z src/server/AzureDevOpsPullRequestCli.ts:603:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.listIterations")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2938254Z 2026-10-25T00:47:52.2938304Z 603 listIterations: (input) => 2026-10-25T00:47:52.2938430Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2938498Z 2026-10-25T00:47:52.2938847Z src/server/AzureDevOpsPullRequestCli.ts:613:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.listIterationChanges")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2939241Z 2026-10-25T00:47:52.2939299Z 613 listIterationChanges: (input) => { 2026-10-25T00:47:52.2939437Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2939514Z 2026-10-25T00:47:52.2939853Z src/server/AzureDevOpsPullRequestCli.ts:640:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.readItemContent")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2940234Z 2026-10-25T00:47:52.2940286Z 640 readItemContent: (input) => 2026-10-25T00:47:52.2940417Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2940485Z 2026-10-25T00:47:52.2940844Z src/server/AzureDevOpsPullRequestCli.ts:663:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.setPullRequestReviewers")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2941242Z 2026-10-25T00:47:52.2941301Z 663 setPullRequestReviewers: (input) => 2026-10-25T00:47:52.2941499Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2941580Z 2026-10-25T00:47:52.2941932Z src/server/AzureDevOpsPullRequestCli.ts:688:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.runPullRequestAction")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2942378Z 2026-10-25T00:47:52.2942435Z 688 runPullRequestAction: (input) => 2026-10-25T00:47:52.2942571Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2942647Z 2026-10-25T00:47:52.2942991Z src/server/AzureDevOpsPullRequestCli.ts:707:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.updatePullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2943374Z 2026-10-25T00:47:52.2943477Z 707 updatePullRequest: (input) => 2026-10-25T00:47:52.2943612Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2943681Z 2026-10-25T00:47:52.2944081Z src/server/AzureDevOpsSourceControlProvider.ts:81:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2944524Z 2026-10-25T00:47:52.2944580Z 81 listChangeRequests: (input) => { 2026-10-25T00:47:52.2944712Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2944783Z 2026-10-25T00:47:52.2945176Z src/server/AzureDevOpsSourceControlProvider.ts:109:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2945610Z 2026-10-25T00:47:52.2945661Z 109 getChangeRequest: (input) => 2026-10-25T00:47:52.2945793Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2945861Z 2026-10-25T00:47:52.2946261Z src/server/AzureDevOpsSourceControlProvider.ts:127:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2946704Z 2026-10-25T00:47:52.2946761Z 127 createChangeRequest: (input) => { 2026-10-25T00:47:52.2946895Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2946970Z 2026-10-25T00:47:52.2947379Z src/server/AzureDevOpsSourceControlProvider.ts:156:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2947827Z 2026-10-25T00:47:52.2947884Z 156 getRepositoryCloneUrls: (input) => 2026-10-25T00:47:52.2948022Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2948099Z 2026-10-25T00:47:52.2948493Z src/server/AzureDevOpsSourceControlProvider.ts:173:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2948930Z 2026-10-25T00:47:52.2948983Z 173 createRepository: (input) => 2026-10-25T00:47:52.2949111Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2949181Z 2026-10-25T00:47:52.2949571Z src/server/AzureDevOpsSourceControlProvider.ts:190:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2950007Z 2026-10-25T00:47:52.2950059Z 190 getDefaultBranch: (input) => 2026-10-25T00:47:52.2950186Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2950256Z 2026-10-25T00:47:52.2950659Z src/server/AzureDevOpsSourceControlProvider.ts:204:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2951105Z 2026-10-25T00:47:52.2951162Z 204 checkoutChangeRequest: (input) => 2026-10-25T00:47:52.2951358Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2951453Z 2026-10-25T00:47:52.2951456Z 2026-10-25T00:47:52.2951523Z ~/packages/source-control-gitcafe$ tsc --noEmit 2026-10-25T00:47:52.2951939Z src/server/GitHubCredentials.ts:245:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubCredentials.invalidate")((rawHost) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2952281Z 2026-10-25T00:47:52.2952333Z 245 invalidate: (rawHost) => { 2026-10-25T00:47:52.2952464Z ~~~~~~~~~~ 2026-10-25T00:47:52.2952525Z 2026-10-25T00:47:52.2952889Z src/server/GitHubPullRequestApi.ts:992:21 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubApiResponseError")(function*(error) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2953237Z 2026-10-25T00:47:52.2953306Z 992 GitHubApiResponseError: (error) => 2026-10-25T00:47:52.2953467Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2953562Z 2026-10-25T00:47:52.2953924Z src/server/GitHubPullRequestApi.ts:1629:13 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.2954316Z 2026-10-25T00:47:52.2954372Z 1629 Effect.flatMap((runs) => 2026-10-25T00:47:52.2954512Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2954588Z 2026-10-25T00:47:52.2954918Z src/server/GitHubPullRequestApi.ts:1776:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getViewerLogin")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2955283Z 2026-10-25T00:47:52.2955337Z 1776 getViewerLogin: (input) => 2026-10-25T00:47:52.2955464Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2955534Z 2026-10-25T00:47:52.2955858Z src/server/GitHubPullRequestApi.ts:1779:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.listPullRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2956229Z 2026-10-25T00:47:52.2956283Z 1779 listPullRequests: (input) => { 2026-10-25T00:47:52.2956415Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2956484Z 2026-10-25T00:47:52.2956838Z src/server/GitHubPullRequestApi.ts:1908:9 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.2957229Z 2026-10-25T00:47:52.2957285Z 1908 Effect.flatMap((batch) => { 2026-10-25T00:47:52.2957417Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2957491Z 2026-10-25T00:47:52.2957821Z src/server/GitHubPullRequestApi.ts:1947:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.searchPullRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2958192Z 2026-10-25T00:47:52.2958246Z 1947 searchPullRequests: (input) => { 2026-10-25T00:47:52.2958441Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2958514Z 2026-10-25T00:47:52.2958846Z src/server/GitHubPullRequestApi.ts:2021:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getPullRequestPreview")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2959223Z 2026-10-25T00:47:52.2959284Z 2021 getPullRequestPreview: (input) => { 2026-10-25T00:47:52.2959425Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2959503Z 2026-10-25T00:47:52.2959837Z src/server/GitHubPullRequestApi.ts:2034:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getPullRequestStack")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2960284Z 2026-10-25T00:47:52.2960340Z 2034 getPullRequestStack: (input) => { 2026-10-25T00:47:52.2960478Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2960553Z 2026-10-25T00:47:52.2960876Z src/server/GitHubPullRequestApi.ts:2112:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getPullRequestDiff")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2961252Z 2026-10-25T00:47:52.2961308Z 2112 getPullRequestDiff: (input) => { 2026-10-25T00:47:52.2961471Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2961545Z 2026-10-25T00:47:52.2961948Z src/server/GitHubPullRequestApi.ts:2160:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getReviewThreadComments")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2962330Z 2026-10-25T00:47:52.2962395Z 2160 getReviewThreadComments: (input) => { 2026-10-25T00:47:52.2962544Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2962628Z 2026-10-25T00:47:52.2962951Z src/server/GitHubPullRequestApi.ts:2302:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.listActorAvatars")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2963314Z 2026-10-25T00:47:52.2963371Z 2302 listActorAvatars: (input) => { 2026-10-25T00:47:52.2963507Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2963578Z 2026-10-25T00:47:52.2963903Z src/server/GitHubPullRequestApi.ts:2311:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getViewerAccess")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2964269Z 2026-10-25T00:47:52.2964326Z 2311 getViewerAccess: (input) => { 2026-10-25T00:47:52.2964461Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2964533Z 2026-10-25T00:47:52.2964871Z src/server/GitHubPullRequestApi.ts:2323:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.listReviewerCandidates")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2965251Z 2026-10-25T00:47:52.2965315Z 2323 listReviewerCandidates: (input) => { 2026-10-25T00:47:52.2965463Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2965540Z 2026-10-25T00:47:52.2965874Z src/server/GitHubPullRequestApi.ts:2335:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setReviewerRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2966243Z 2026-10-25T00:47:52.2966302Z 2335 setReviewerRequest: (input) => { 2026-10-25T00:47:52.2966441Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2966515Z 2026-10-25T00:47:52.2966844Z src/server/GitHubPullRequestApi.ts:2348:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.listLabelCandidates")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2967217Z 2026-10-25T00:47:52.2967273Z 2348 listLabelCandidates: (input) => { 2026-10-25T00:47:52.2967415Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2967489Z 2026-10-25T00:47:52.2967822Z src/server/GitHubPullRequestApi.ts:2360:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.listRepositoryLabels")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2968198Z 2026-10-25T00:47:52.2968259Z 2360 listRepositoryLabels: (input) => { 2026-10-25T00:47:52.2968400Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2968479Z 2026-10-25T00:47:52.2968823Z src/server/GitHubPullRequestApi.ts:2372:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.searchRepositoryAuthors")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2969204Z 2026-10-25T00:47:52.2969323Z 2372 searchRepositoryAuthors: (input) => { 2026-10-25T00:47:52.2969471Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2969552Z 2026-10-25T00:47:52.2969863Z src/server/GitHubPullRequestApi.ts:2384:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setLabels")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2970214Z 2026-10-25T00:47:52.2970265Z 2384 setLabels: (input) => { 2026-10-25T00:47:52.2970389Z ~~~~~~~~~ 2026-10-25T00:47:52.2970453Z 2026-10-25T00:47:52.2970831Z src/server/GitHubPullRequestApi.ts:2411:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.runPullRequestAction")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2971207Z 2026-10-25T00:47:52.2971266Z 2411 runPullRequestAction: (input) => { 2026-10-25T00:47:52.2971441Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2971521Z 2026-10-25T00:47:52.2971853Z src/server/GitHubPullRequestApi.ts:2670:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.commentOnPullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2972226Z 2026-10-25T00:47:52.2972284Z 2670 commentOnPullRequest: (input) => 2026-10-25T00:47:52.2972419Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2972497Z 2026-10-25T00:47:52.2972813Z src/server/GitHubPullRequestApi.ts:2680:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.submitReview")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2973176Z 2026-10-25T00:47:52.2973228Z 2680 submitReview: (input) => { 2026-10-25T00:47:52.2973363Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.2973434Z 2026-10-25T00:47:52.2973760Z src/server/GitHubPullRequestApi.ts:2697:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.replyToReviewThread")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2974133Z 2026-10-25T00:47:52.2974191Z 2697 replyToReviewThread: (input) => 2026-10-25T00:47:52.2974329Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2974407Z 2026-10-25T00:47:52.2974754Z src/server/GitHubPullRequestApi.ts:2702:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getPullRequestFilesViewed")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2975143Z 2026-10-25T00:47:52.2975209Z 2702 getPullRequestFilesViewed: (input) => { 2026-10-25T00:47:52.2975361Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2975447Z 2026-10-25T00:47:52.2975791Z src/server/GitHubPullRequestApi.ts:2730:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getPullRequestFileStats")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2976171Z 2026-10-25T00:47:52.2976234Z 2730 getPullRequestFileStats: (input) => { 2026-10-25T00:47:52.2976383Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2976460Z 2026-10-25T00:47:52.2976807Z src/server/GitHubPullRequestApi.ts:2758:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setPullRequestFilesViewed")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2977194Z 2026-10-25T00:47:52.2977260Z 2758 setPullRequestFilesViewed: (input) => { 2026-10-25T00:47:52.2977409Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2977493Z 2026-10-25T00:47:52.2977837Z src/server/GitHubPullRequestApi.ts:2779:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setReviewThreadResolution")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2978222Z 2026-10-25T00:47:52.2978284Z 2779 setReviewThreadResolution: (input) => 2026-10-25T00:47:52.2978510Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2978592Z 2026-10-25T00:47:52.2978908Z src/server/GitHubPullRequestApi.ts:2785:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setReaction")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2979267Z 2026-10-25T00:47:52.2979320Z 2785 setReaction: (input) => { 2026-10-25T00:47:52.2979445Z ~~~~~~~~~~~ 2026-10-25T00:47:52.2979513Z 2026-10-25T00:47:52.2979892Z src/server/GitHubPullRequestApi.ts:2818:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.updatePullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2980260Z 2026-10-25T00:47:52.2980314Z 2818 updatePullRequest: (input) => 2026-10-25T00:47:52.2980452Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2980524Z 2026-10-25T00:47:52.2980849Z src/server/GitHubPullRequestApi.ts:2834:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.updateComment")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2981209Z 2026-10-25T00:47:52.2981263Z 2834 updateComment: (input) => 2026-10-25T00:47:52.2981414Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.2981484Z 2026-10-25T00:47:52.2981887Z src/server/GitHubSourceControlProvider.ts:897:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.readChangeRequestTemplate")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2982331Z 2026-10-25T00:47:52.2982405Z 897 readChangeRequestTemplate: ({ cwd, treeish }) => 2026-10-25T00:47:52.2982570Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2982654Z 2026-10-25T00:47:52.2983033Z src/server/GitHubSourceControlProvider.ts:935:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.recordBranchBase")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2983455Z 2026-10-25T00:47:52.2983531Z 935 recordBranchBase: ({ cwd, branch, baseBranch }) => 2026-10-25T00:47:52.2983688Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2983760Z 2026-10-25T00:47:52.2984150Z src/server/GitHubSourceControlProvider.ts:957:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2984585Z 2026-10-25T00:47:52.2984641Z 957 listChangeRequests: (input) => 2026-10-25T00:47:52.2984776Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2984848Z 2026-10-25T00:47:52.2985233Z src/server/GitHubSourceControlProvider.ts:975:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2985658Z 2026-10-25T00:47:52.2985712Z 975 getChangeRequest: (input) => 2026-10-25T00:47:52.2985845Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2985913Z 2026-10-25T00:47:52.2986308Z src/server/GitHubSourceControlProvider.ts:1088:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2986745Z 2026-10-25T00:47:52.2986804Z 1088 checkoutChangeRequest: (input) => 2026-10-25T00:47:52.2986947Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2987024Z 2026-10-25T00:47:52.2987370Z src/server/gitHubGraphQlClient.ts:118:12 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.2987805Z 2026-10-25T00:47:52.2987864Z 118 return yield* Effect.fail(error); 2026-10-25T00:47:52.2987999Z ~~~~~ 2026-10-25T00:47:52.2988065Z 2026-10-25T00:47:52.2988365Z src/server/BitbucketApi.ts:1013:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketApi.listPullRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2988703Z 2026-10-25T00:47:52.2988759Z 1013 listPullRequests: (input) => 2026-10-25T00:47:52.2988893Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2988966Z 2026-10-25T00:47:52.2989312Z src/server/BitbucketApi.ts:1040:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketApi.getPullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2989647Z 2026-10-25T00:47:52.2989698Z 1040 getPullRequest: (input) => 2026-10-25T00:47:52.2989830Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2989899Z 2026-10-25T00:47:52.2990209Z src/server/BitbucketApi.ts:1042:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketApi.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2990558Z 2026-10-25T00:47:52.2990619Z 1042 getRepositoryCloneUrls: (input) => 2026-10-25T00:47:52.2990761Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2990840Z 2026-10-25T00:47:52.2991135Z src/server/BitbucketApi.ts:1044:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketApi.createRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2991500Z 2026-10-25T00:47:52.2991554Z 1044 createRepository: (input) => 2026-10-25T00:47:52.2991689Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2991758Z 2026-10-25T00:47:52.2992052Z src/server/BitbucketApi.ts:1109:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketApi.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2992388Z 2026-10-25T00:47:52.2992442Z 1109 getDefaultBranch: (input) => 2026-10-25T00:47:52.2992572Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2992644Z 2026-10-25T00:47:52.2992962Z src/server/BitbucketPullRequestApi.ts:555:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.getViewer")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2993320Z 2026-10-25T00:47:52.2993366Z 555 getViewer: () => 2026-10-25T00:47:52.2993480Z ~~~~~~~~~ 2026-10-25T00:47:52.2993544Z 2026-10-25T00:47:52.2993880Z src/server/BitbucketPullRequestApi.ts:570:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.listPullRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2994257Z 2026-10-25T00:47:52.2994312Z 570 listPullRequests: (input) => 2026-10-25T00:47:52.2994445Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2994514Z 2026-10-25T00:47:52.2994845Z src/server/BitbucketPullRequestApi.ts:594:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.getPullRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2995216Z 2026-10-25T00:47:52.2995269Z 594 getPullRequest: (input) => 2026-10-25T00:47:52.2995398Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2995467Z 2026-10-25T00:47:52.2995817Z src/server/BitbucketPullRequestApi.ts:609:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.getRepositoryPermission")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2996209Z 2026-10-25T00:47:52.2996270Z 609 getRepositoryPermission: (input) => 2026-10-25T00:47:52.2996412Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2996554Z 2026-10-25T00:47:52.2996888Z src/server/BitbucketPullRequestApi.ts:622:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.getFileRevisions")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2997264Z 2026-10-25T00:47:52.2997318Z 622 getFileRevisions: (input) => 2026-10-25T00:47:52.2997448Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2997519Z 2026-10-25T00:47:52.2997840Z src/server/BitbucketPullRequestApi.ts:639:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.getDiffStat")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2998252Z 2026-10-25T00:47:52.2998419Z 639 getDiffStat: (input) => 2026-10-25T00:47:52.2998541Z ~~~~~~~~~~~ 2026-10-25T00:47:52.2998607Z 2026-10-25T00:47:52.2998937Z src/server/BitbucketPullRequestApi.ts:647:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.getMergeability")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.2999314Z 2026-10-25T00:47:52.2999368Z 647 getMergeability: (input) => 2026-10-25T00:47:52.2999497Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.2999566Z 2026-10-25T00:47:52.2999892Z src/server/BitbucketPullRequestApi.ts:656:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.listComments")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3000257Z 2026-10-25T00:47:52.3000309Z 656 listComments: (input) => 2026-10-25T00:47:52.3000436Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3000503Z 2026-10-25T00:47:52.3000826Z src/server/BitbucketPullRequestApi.ts:666:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.listCommits")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3001191Z 2026-10-25T00:47:52.3001242Z 666 listCommits: (input) => 2026-10-25T00:47:52.3001361Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3001465Z 2026-10-25T00:47:52.3001785Z src/server/BitbucketPullRequestApi.ts:677:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.listChecks")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3002146Z 2026-10-25T00:47:52.3002197Z 677 listChecks: (input) => 2026-10-25T00:47:52.3002322Z ~~~~~~~~~~ 2026-10-25T00:47:52.3002383Z 2026-10-25T00:47:52.3002736Z src/server/BitbucketPullRequestApi.ts:688:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.listReviewerCandidates")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3003124Z 2026-10-25T00:47:52.3003185Z 688 listReviewerCandidates: (input) => 2026-10-25T00:47:52.3003326Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3003407Z 2026-10-25T00:47:52.3003746Z src/server/BitbucketPullRequestApi.ts:722:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.setReviewerRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3004129Z 2026-10-25T00:47:52.3004182Z 722 setReviewerRequest: (input) => 2026-10-25T00:47:52.3004314Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3004384Z 2026-10-25T00:47:52.3004704Z src/server/BitbucketPullRequestApi.ts:749:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.runAction")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3005069Z 2026-10-25T00:47:52.3005120Z 749 runAction: (input) => 2026-10-25T00:47:52.3005241Z ~~~~~~~~~ 2026-10-25T00:47:52.3005303Z 2026-10-25T00:47:52.3005644Z src/server/BitbucketPullRequestApi.ts:766:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.updateChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3006093Z 2026-10-25T00:47:52.3006148Z 766 updateChangeRequest: (input) => 2026-10-25T00:47:52.3006291Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3006364Z 2026-10-25T00:47:52.3006684Z src/server/BitbucketPullRequestApi.ts:784:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.comment")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3007042Z 2026-10-25T00:47:52.3007090Z 784 comment: (input) => 2026-10-25T00:47:52.3007205Z ~~~~~~~ 2026-10-25T00:47:52.3007321Z 2026-10-25T00:47:52.3007651Z src/server/BitbucketPullRequestApi.ts:795:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.updateComment")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3008020Z 2026-10-25T00:47:52.3008072Z 795 updateComment: (input) => 2026-10-25T00:47:52.3008201Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3008268Z 2026-10-25T00:47:52.3008592Z src/server/BitbucketPullRequestApi.ts:808:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.submitReview")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3008959Z 2026-10-25T00:47:52.3009009Z 808 submitReview: (input) => 2026-10-25T00:47:52.3009137Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3009205Z 2026-10-25T00:47:52.3009538Z src/server/BitbucketPullRequestApi.ts:848:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.replyToComment")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3009911Z 2026-10-25T00:47:52.3009964Z 848 replyToComment: (input) => 2026-10-25T00:47:52.3010097Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3010168Z 2026-10-25T00:47:52.3010511Z src/server/BitbucketPullRequestApi.ts:862:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BitbucketPullRequestApi.setCommentResolution")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3010900Z 2026-10-25T00:47:52.3010963Z 862 setCommentResolution: (input) => 2026-10-25T00:47:52.3011105Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3011182Z 2026-10-25T00:47:52.3011620Z src/server/BitbucketSourceControlProvider.ts:47:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3012059Z 2026-10-25T00:47:52.3012117Z 47 listChangeRequests: (input) => { 2026-10-25T00:47:52.3012256Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3012330Z 2026-10-25T00:47:52.3012718Z src/server/BitbucketSourceControlProvider.ts:75:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3013151Z 2026-10-25T00:47:52.3013207Z 75 getChangeRequest: (input) => 2026-10-25T00:47:52.3013339Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3013413Z 2026-10-25T00:47:52.3013810Z src/server/BitbucketSourceControlProvider.ts:92:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3014246Z 2026-10-25T00:47:52.3014308Z 92 createChangeRequest: (input) => { 2026-10-25T00:47:52.3014447Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3014522Z 2026-10-25T00:47:52.3014930Z src/server/BitbucketSourceControlProvider.ts:121:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3015430Z 2026-10-25T00:47:52.3015492Z 121 getRepositoryCloneUrls: (input) => 2026-10-25T00:47:52.3015638Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3015714Z 2026-10-25T00:47:52.3016105Z src/server/BitbucketSourceControlProvider.ts:137:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3016539Z 2026-10-25T00:47:52.3016596Z 137 createRepository: (input) => 2026-10-25T00:47:52.3016775Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3016850Z 2026-10-25T00:47:52.3017243Z src/server/BitbucketSourceControlProvider.ts:153:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3017676Z 2026-10-25T00:47:52.3017729Z 153 getDefaultBranch: (input) => 2026-10-25T00:47:52.3017867Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3017936Z 2026-10-25T00:47:52.3018338Z src/server/BitbucketSourceControlProvider.ts:171:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3018781Z 2026-10-25T00:47:52.3018841Z 171 checkoutChangeRequest: (input) => 2026-10-25T00:47:52.3018984Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3019066Z 2026-10-25T00:47:52.3019069Z 2026-10-25T00:47:52.3019141Z ~/packages/source-control-forgejo$ tsc --noEmit 2026-10-25T00:47:52.3019254Z 2026-10-25T00:47:52.3019311Z ~/packages/provider-grok$ tsc --noEmit 2026-10-25T00:47:52.3019702Z src/server/GitCafeCredentials.ts:170:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.get")((host) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3020038Z 2026-10-25T00:47:52.3020084Z 170 get: (host) => 2026-10-25T00:47:52.3020201Z ~~~ 2026-10-25T00:47:52.3020262Z 2026-10-25T00:47:52.3020565Z src/server/GitCafeCredentials.ts:183:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.invalidate")((host) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3020910Z 2026-10-25T00:47:52.3021014Z 183 invalidate: (host) => Cache.invalidate(cache, normalizeHost(host)), 2026-10-25T00:47:52.3021200Z ~~~~~~~~~~ 2026-10-25T00:47:52.3021268Z 2026-10-25T00:47:52.3021596Z src/server/GitCafeCredentials.ts:184:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.cliEnv")((host) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3021936Z 2026-10-25T00:47:52.3021985Z 184 cliEnv: (host) => 2026-10-25T00:47:52.3022105Z ~~~~~~ 2026-10-25T00:47:52.3022169Z 2026-10-25T00:47:52.3022421Z src/server/GitCafePullRequestProvider.ts:341:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3022713Z 2026-10-25T00:47:52.3022769Z 341 Effect.map(Option.some), 2026-10-25T00:47:52.3022904Z ~~~~~~~~~~ 2026-10-25T00:47:52.3022974Z 2026-10-25T00:47:52.3023222Z src/server/GitCafePullRequestProvider.ts:346:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3023510Z 2026-10-25T00:47:52.3023574Z 346 : Effect.succeed(Option.none()), 2026-10-25T00:47:52.3023729Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3023815Z 2026-10-25T00:47:52.3024062Z src/server/GitCafePullRequestProvider.ts:655:13 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3024410Z 2026-10-25T00:47:52.3024469Z 655 Effect.map(Option.some), 2026-10-25T00:47:52.3024607Z ~~~~~~~~~~ 2026-10-25T00:47:52.3024683Z 2026-10-25T00:47:52.3024926Z src/server/GitCafePullRequestProvider.ts:660:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3025210Z 2026-10-25T00:47:52.3025276Z 660 : Effect.succeed(Option.none()), 2026-10-25T00:47:52.3025434Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3025522Z 2026-10-25T00:47:52.3025861Z src/server/GitCafePullRequestProvider.ts:673:15 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("readPage")((rows, after) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3026199Z 2026-10-25T00:47:52.3026289Z 673 const readPage = (rows: number, after: string | null) => { 2026-10-25T00:47:52.3026466Z ~~~~~~~~ 2026-10-25T00:47:52.3026542Z 2026-10-25T00:47:52.3026891Z src/server/GitCafePullRequestProvider.ts:790:13 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3027277Z 2026-10-25T00:47:52.3027330Z 790 Effect.catch((error) => 2026-10-25T00:47:52.3027472Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3027552Z 2026-10-25T00:47:52.3027893Z src/server/GitCafePullRequestProvider.ts:872:19 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3028274Z 2026-10-25T00:47:52.3028336Z 872 Effect.catch((error) => 2026-10-25T00:47:52.3028482Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3028570Z 2026-10-25T00:47:52.3028572Z 2026-10-25T00:47:52.3028631Z ~/packages/provider-pi$ tsc --noEmit 2026-10-25T00:47:52.3029121Z src/server/ForgejoSourceControlProvider.ts:362:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3029555Z 2026-10-25T00:47:52.3029610Z 362 getChangeRequest: (input) => 2026-10-25T00:47:52.3029748Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3029818Z 2026-10-25T00:47:52.3029820Z 2026-10-25T00:47:52.3029880Z ~/packages/provider-muse$ tsc --noEmit 2026-10-25T00:47:52.3030309Z src/server/driver.ts:174:7 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3030677Z 2026-10-25T00:47:52.3030734Z 174 Effect.flatMap((snapshot) => 2026-10-25T00:47:52.3030876Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3030946Z 2026-10-25T00:47:52.3031192Z src/server/xaiAcpExtension.ts:1507:15 - suggestion TS377009: The previous Effect does not fail, so this error-handling branch will never run. effect(catchUnfailableEffect) 2026-10-25T00:47:52.3031508Z 2026-10-25T00:47:52.3031580Z 1507 }).pipe(Effect.catch(() => Effect.void)); 2026-10-25T00:47:52.3031734Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3031817Z 2026-10-25T00:47:52.3032078Z src/server/xaiAcpExtension.ts:1507:15 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore) 2026-10-25T00:47:52.3032375Z 2026-10-25T00:47:52.3032447Z 1507 }).pipe(Effect.catch(() => Effect.void)); 2026-10-25T00:47:52.3032600Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3032677Z 2026-10-25T00:47:52.3033030Z src/server/xaiAcpExtension.ts:1588:13 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3033488Z 2026-10-25T00:47:52.3033552Z 1588 Effect.catchCause((cause) => 2026-10-25T00:47:52.3033700Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3033788Z 2026-10-25T00:47:52.3033790Z 2026-10-25T00:47:52.3033854Z ~/packages/provider-opencode$ tsc --noEmit 2026-10-25T00:47:52.3034277Z src/server/adapter.ts:440:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3034687Z 2026-10-25T00:47:52.3034791Z 440 getCapabilities: () => Effect.succeed(PiProviderCapabilitiesV2), 2026-10-25T00:47:52.3034977Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3035051Z 2026-10-25T00:47:52.3035395Z src/server/adapter.ts:441:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3035774Z 2026-10-25T00:47:52.3035969Z 441 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()), 2026-10-25T00:47:52.3036185Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3036263Z 2026-10-25T00:47:52.3036486Z src/server/adapter.ts:1694:31 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3036745Z 2026-10-25T00:47:52.3036818Z 1694 Effect.map(Option.some), 2026-10-25T00:47:52.3036984Z ~~~~~~~~~~ 2026-10-25T00:47:52.3037078Z 2026-10-25T00:47:52.3037295Z src/server/adapter.ts:1697:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3037552Z 2026-10-25T00:47:52.3037625Z 1697 : Effect.succeed(Option.none()), 2026-10-25T00:47:52.3037795Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3037892Z 2026-10-25T00:47:52.3038140Z src/server/rpc.ts:334:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSuccess")(function*() { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3038507Z 2026-10-25T00:47:52.3038560Z 334 onSuccess: () => 2026-10-25T00:47:52.3038680Z ~~~~~~~~~ 2026-10-25T00:47:52.3038747Z 2026-10-25T00:47:52.3038958Z src/server/rpc.ts:342:17 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3039207Z 2026-10-25T00:47:52.3039265Z 342 Effect.map(Option.some), 2026-10-25T00:47:52.3039410Z ~~~~~~~~~~ 2026-10-25T00:47:52.3039489Z 2026-10-25T00:47:52.3039495Z 2026-10-25T00:47:52.3039552Z ~/packages/provider-cursor$ tsc --noEmit 2026-10-25T00:47:52.3039977Z src/server/adapter.ts:284:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3040341Z 2026-10-25T00:47:52.3040439Z 284 getCapabilities: () => Effect.succeed(MuseProviderCapabilitiesV2), 2026-10-25T00:47:52.3040630Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3040703Z 2026-10-25T00:47:52.3041041Z src/server/adapter.ts:285:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3041455Z 2026-10-25T00:47:52.3041580Z 285 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()), 2026-10-25T00:47:52.3041789Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3041870Z 2026-10-25T00:47:52.3042142Z src/server/adapter.ts:388:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TimeoutError")(function*(cause) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3042528Z 2026-10-25T00:47:52.3042582Z 388 TimeoutError: (cause) => 2026-10-25T00:47:52.3042725Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3042804Z 2026-10-25T00:47:52.3043019Z src/server/adapter.ts:1366:35 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3043278Z 2026-10-25T00:47:52.3043464Z 1366 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()), 2026-10-25T00:47:52.3043687Z ~~~~~~~~~~ 2026-10-25T00:47:52.3043784Z 2026-10-25T00:47:52.3043999Z src/server/adapter.ts:1366:71 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3044254Z 2026-10-25T00:47:52.3044377Z 1366 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()), 2026-10-25T00:47:52.3044618Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3044736Z 2026-10-25T00:47:52.3044739Z 2026-10-25T00:47:52.3044807Z ~/packages/provider-acp-registry$ tsc --noEmit 2026-10-25T00:47:52.3045192Z src/server/OpenCodeServerLedger.ts:147:12 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3045510Z 2026-10-25T00:47:52.3045572Z 147 return Effect.succeed(undefined); 2026-10-25T00:47:52.3045713Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3045801Z 2026-10-25T00:47:52.3046198Z src/server/OpenCodeServerLedger.ts:188:24 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen) 2026-10-25T00:47:52.3046627Z 2026-10-25T00:47:52.3046691Z 188 if (!recordable) return Effect.void; 2026-10-25T00:47:52.3046842Z ~~~~~~ 2026-10-25T00:47:52.3046924Z 2026-10-25T00:47:52.3047314Z src/server/OpenCodeServerLedger.ts:208:9 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen) 2026-10-25T00:47:52.3047740Z 2026-10-25T00:47:52.3047795Z 208 return Effect.void; 2026-10-25T00:47:52.3047922Z ~~~~~~ 2026-10-25T00:47:52.3047989Z 2026-10-25T00:47:52.3048374Z src/server/OpenCodeServerLedger.ts:228:7 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen) 2026-10-25T00:47:52.3048800Z 2026-10-25T00:47:52.3048844Z 228 return fs 2026-10-25T00:47:52.3048957Z ~~~~~~ 2026-10-25T00:47:52.3049018Z 2026-10-25T00:47:52.3049320Z src/server/OpenCodeServerLedger.ts:311:29 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCodeServerLedger.track")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3049662Z 2026-10-25T00:47:52.3049771Z 311 OpenCodeServerLedger.of({ track: () => Effect.succeed(Effect.void) }), 2026-10-25T00:47:52.3049967Z ~~~~~ 2026-10-25T00:47:52.3050056Z 2026-10-25T00:47:52.3050369Z src/server/OpenCodeServerOwner.ts:169:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCodeServerOwner.withServer")((use) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3050721Z 2026-10-25T00:47:52.3050770Z 169 withServer: (use) => 2026-10-25T00:47:52.3050963Z ~~~~~~~~~~ 2026-10-25T00:47:52.3051032Z 2026-10-25T00:47:52.3051458Z src/server/adapter.test.ts:103:39 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3051890Z 2026-10-25T00:47:52.3052011Z 103 const OPENCODE_TEST_SETTINGS = Schema.decodeUnknownSync(OpenCodeSettings)({}); 2026-10-25T00:47:52.3052230Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3052337Z 2026-10-25T00:47:52.3052729Z src/server/adapter.ts:938:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3053092Z 2026-10-25T00:47:52.3053200Z 938 getCapabilities: () => Effect.succeed(OpenCodeProviderCapabilitiesV2), 2026-10-25T00:47:52.3053401Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3053474Z 2026-10-25T00:47:52.3053812Z src/server/adapter.ts:939:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3054191Z 2026-10-25T00:47:52.3054314Z 939 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()), 2026-10-25T00:47:52.3054527Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3054604Z 2026-10-25T00:47:52.3054902Z src/server/adapter.ts:1011:33 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3055234Z 2026-10-25T00:47:52.3055314Z 1011 const abortController = new AbortController(); 2026-10-25T00:47:52.3055486Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3055590Z 2026-10-25T00:47:52.3055917Z src/server/adapter.ts:1088:31 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3056274Z 2026-10-25T00:47:52.3056355Z 1088 if (failure) return yield* Effect.fail(failure); 2026-10-25T00:47:52.3062769Z ~~~~~ 2026-10-25T00:47:52.3062864Z 2026-10-25T00:47:52.3063150Z src/server/adapter.ts:1584:15 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed) 2026-10-25T00:47:52.3063465Z 2026-10-25T00:47:52.3063544Z 1584 Effect.catch(() => Effect.succeed(undefined)), 2026-10-25T00:47:52.3063704Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3063781Z 2026-10-25T00:47:52.3064035Z src/server/adapter.ts:1584:34 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3064325Z 2026-10-25T00:47:52.3064400Z 1584 Effect.catch(() => Effect.succeed(undefined)), 2026-10-25T00:47:52.3064570Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3064669Z 2026-10-25T00:47:52.3064965Z src/server/adapter.ts:3194:43 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3065292Z 2026-10-25T00:47:52.3065377Z 3194 admissionAbortController: new AbortController(), 2026-10-25T00:47:52.3065558Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3065660Z 2026-10-25T00:47:52.3065943Z src/server/adapter.ts:3354:47 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3066354Z 2026-10-25T00:47:52.3066446Z 3354 turn.admissionAbortController = new AbortController(); 2026-10-25T00:47:52.3066636Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3066739Z 2026-10-25T00:47:52.3067031Z src/server/v2/OpenCode2Client.ts:158:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Client.connect")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3067356Z 2026-10-25T00:47:52.3067471Z 158 connect: ({ baseUrl, password }) => { 2026-10-25T00:47:52.3067613Z ~~~~~~~ 2026-10-25T00:47:52.3067675Z 2026-10-25T00:47:52.3067978Z src/server/v2/OpenCode2Server.ts:160:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Server.withConnection")((use) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3068321Z 2026-10-25T00:47:52.3068374Z 160 withConnection: (use) => 2026-10-25T00:47:52.3068509Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3068582Z 2026-10-25T00:47:52.3068881Z src/server/v2/OpenCode2Server.ts:175:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Server.withConnection")((use) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3069219Z 2026-10-25T00:47:52.3069271Z 175 withConnection: (use) => 2026-10-25T00:47:52.3069396Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3069463Z 2026-10-25T00:47:52.3069685Z src/server/v2/adapter.ts:1544:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3069942Z 2026-10-25T00:47:52.3070068Z 1544 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some), 2026-10-25T00:47:52.3070284Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3070378Z 2026-10-25T00:47:52.3070598Z src/server/v2/adapter.ts:1544:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3070859Z 2026-10-25T00:47:52.3070981Z 1544 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some), 2026-10-25T00:47:52.3071200Z ~~~~~~~~~~ 2026-10-25T00:47:52.3071306Z 2026-10-25T00:47:52.3071669Z src/server/v2/adapter.ts:4137:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3072036Z 2026-10-25T00:47:52.3072143Z 4137 getCapabilities: () => Effect.succeed(OpenCode2ProviderCapabilities), 2026-10-25T00:47:52.3072330Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3072403Z 2026-10-25T00:47:52.3072748Z src/server/v2/adapter.ts:4138:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3073126Z 2026-10-25T00:47:52.3073249Z 4138 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()), 2026-10-25T00:47:52.3073458Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3073535Z 2026-10-25T00:47:52.3073537Z 2026-10-25T00:47:52.3073612Z ~/packages/source-control-definitions$ tsc --noEmit 2026-10-25T00:47:52.3074077Z src/server/CursorAccountReader.ts:31:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CursorAccountReader.read")((credentialSource, sinceMs, untilMs) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3074458Z 2026-10-25T00:47:52.3074527Z 31 read: (credentialSource, sinceMs, untilMs) => 2026-10-25T00:47:52.3074682Z ~~~~ 2026-10-25T00:47:52.3074797Z 2026-10-25T00:47:52.3075089Z src/server/CursorSdkCatalog.ts:82:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CursorSdkCatalog.read")((apiKey) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3075416Z 2026-10-25T00:47:52.3075466Z 82 read: (apiKey) => 2026-10-25T00:47:52.3075578Z ~~~~ 2026-10-25T00:47:52.3075638Z 2026-10-25T00:47:52.3075923Z src/server/accountUsage.ts:360:5 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed) 2026-10-25T00:47:52.3076244Z 2026-10-25T00:47:52.3076341Z 360 Effect.catch(() => 2026-10-25T00:47:52.3076463Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3076529Z 2026-10-25T00:47:52.3076851Z src/server/adapter.ts:911:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3077213Z 2026-10-25T00:47:52.3077320Z 911 getCapabilities: () => Effect.succeed(CursorProviderCapabilitiesV2), 2026-10-25T00:47:52.3077507Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3077578Z 2026-10-25T00:47:52.3077912Z src/server/adapter.ts:912:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3078357Z 2026-10-25T00:47:52.3078477Z 912 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()), 2026-10-25T00:47:52.3078691Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3078771Z 2026-10-25T00:47:52.3079222Z src/server/credentialStore.ts:55:7 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3079708Z 2026-10-25T00:47:52.3079760Z 55 Effect.runPromise( 2026-10-25T00:47:52.3079880Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3079954Z 2026-10-25T00:47:52.3080219Z src/server/credentialStore.ts:59:29 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3080521Z 2026-10-25T00:47:52.3080589Z 59 onNone: () => Effect.succeed(undefined), 2026-10-25T00:47:52.3080753Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3080849Z 2026-10-25T00:47:52.3081294Z src/server/credentialStore.ts:69:7 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3081814Z 2026-10-25T00:47:52.3081866Z 69 Effect.runPromise( 2026-10-25T00:47:52.3081989Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3082059Z 2026-10-25T00:47:52.3082501Z src/server/credentialStore.ts:82:18 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3082981Z 2026-10-25T00:47:52.3083054Z 82 clear: () => Effect.runPromise(credentials.remove), 2026-10-25T00:47:52.3083218Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3083306Z 2026-10-25T00:47:52.3083637Z src/server/driver.ts:228:11 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3084085Z 2026-10-25T00:47:52.3084142Z 228 Effect.flatMap((snapshot) => 2026-10-25T00:47:52.3084283Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3084358Z 2026-10-25T00:47:52.3084553Z src/server/usageLimits.test.ts:74:5 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen) 2026-10-25T00:47:52.3084787Z 2026-10-25T00:47:52.3084843Z 74 Effect.gen(function* () { 2026-10-25T00:47:52.3084976Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3085108Z 75 yield* withNodeServices( 2026-10-25T00:47:52.3085241Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3085360Z ... 2026-10-25T00:47:52.3085515Z 115 ); 2026-10-25T00:47:52.3085614Z ~~~~~~~~ 2026-10-25T00:47:52.3085714Z 116 }), 2026-10-25T00:47:52.3085811Z ~~~~~~ 2026-10-25T00:47:52.3085868Z 2026-10-25T00:47:52.3085870Z 2026-10-25T00:47:52.3086133Z src/server/AcpRegistryRuntimeCoordinator.ts:154:52 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3086432Z 2026-10-25T00:47:52.3086569Z 154 return yield* Effect.raceFirst(effect.pipe(Effect.map(Option.some)), foregroundStarted); 2026-10-25T00:47:52.3086804Z ~~~~~~~~~~ 2026-10-25T00:47:52.3086908Z 2026-10-25T00:47:52.3087238Z src/server/AcpRegistrySupport.ts:1301:9 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3087605Z 2026-10-25T00:47:52.3087660Z 1301 Effect.catch((error) => 2026-10-25T00:47:52.3087791Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3087865Z 2026-10-25T00:47:52.3088160Z src/server/auth.ts:146:13 - suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption) 2026-10-25T00:47:52.3088493Z 2026-10-25T00:47:52.3088545Z 146 Option.isSome(result) 2026-10-25T00:47:52.3088680Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3088759Z 2026-10-25T00:47:52.3089014Z src/server/driver.ts:640:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("enrichSnapshot")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3089307Z 2026-10-25T00:47:52.3089409Z 640 enrichSnapshot: ({ snapshot, getSnapshot, publishSnapshot }) => { 2026-10-25T00:47:52.3089592Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3089664Z 2026-10-25T00:47:52.3089881Z src/server/driver.ts:650:51 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3090135Z 2026-10-25T00:47:52.3090235Z 650 : enrichProviderCached(snapshot).pipe(Effect.map(Option.some)) 2026-10-25T00:47:52.3090436Z ~~~~~~~~~~ 2026-10-25T00:47:52.3090543Z 2026-10-25T00:47:52.3090545Z 2026-10-25T00:47:52.3090547Z 2026-10-25T00:47:52.3090604Z ~/packages/client-runtime$ tsc --noEmit 2026-10-25T00:47:52.3090743Z Result (22 files): 2026-10-25T00:47:52.3090853Z - 0 errors 2026-10-25T00:47:52.3090955Z - 0 warnings 2026-10-25T00:47:52.3091053Z - 0 hints 2026-10-25T00:47:52.3091111Z 2026-10-25T00:47:52.3091113Z 2026-10-25T00:47:52.3091344Z src/authorization/remote.test.ts:334:25 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3091643Z 2026-10-25T00:47:52.3091757Z 334 identity: Effect.succeed(Option.some({ accountId: "user_connect" })), 2026-10-25T00:47:52.3091956Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3092043Z 2026-10-25T00:47:52.3092269Z src/authorization/remote.test.ts:339:17 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3092599Z 2026-10-25T00:47:52.3092674Z 339 id: Effect.succeed(Option.some("device-1")), 2026-10-25T00:47:52.3092833Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3092917Z 2026-10-25T00:47:52.3093251Z src/authorization/service.ts:547:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpop")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3093621Z 2026-10-25T00:47:52.3093673Z 547 authorizeDpop: (input) => 2026-10-25T00:47:52.3093806Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3093873Z 2026-10-25T00:47:52.3094265Z src/authorization/service.ts:549:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpopHttp")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3094640Z 2026-10-25T00:47:52.3094696Z 549 authorizeDpopHttp: (input) => 2026-10-25T00:47:52.3094832Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3094905Z 2026-10-25T00:47:52.3095216Z src/connection/onboarding.ts:298:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ConnectionOnboarding.registerPairing")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3095570Z 2026-10-25T00:47:52.3095623Z 298 registerPairing: (input) => 2026-10-25T00:47:52.3095756Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3095826Z 2026-10-25T00:47:52.3096127Z src/connection/onboarding.ts:304:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ConnectionOnboarding.registerSsh")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3096468Z 2026-10-25T00:47:52.3096518Z 304 registerSsh: (input) => 2026-10-25T00:47:52.3096640Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3096704Z 2026-10-25T00:47:52.3097011Z src/connection/onboarding.ts:309:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ConnectionOnboarding.updateBearer")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3097358Z 2026-10-25T00:47:52.3097410Z 309 updateBearer: (input) => 2026-10-25T00:47:52.3097537Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3097605Z 2026-10-25T00:47:52.3097947Z src/connection/pullRequestRoutingPermissions.ts:138:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3098331Z 2026-10-25T00:47:52.3098377Z 138 get: (entry) => 2026-10-25T00:47:52.3098491Z ~~~ 2026-10-25T00:47:52.3098550Z 2026-10-25T00:47:52.3098906Z src/connection/pullRequestRoutingPermissions.ts:143:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3099302Z 2026-10-25T00:47:52.3099355Z 143 set: (entry, permission) => { 2026-10-25T00:47:52.3099488Z ~~~ 2026-10-25T00:47:52.3099548Z 2026-10-25T00:47:52.3099903Z src/connection/pullRequestRoutingPermissions.ts:159:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3100297Z 2026-10-25T00:47:52.3100349Z 159 forget: (environmentId) => 2026-10-25T00:47:52.3100477Z ~~~~~~ 2026-10-25T00:47:52.3100539Z 2026-10-25T00:47:52.3100812Z src/connection/registry.test.ts:1392:15 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3101119Z 2026-10-25T00:47:52.3101176Z 1392 ? Effect.succeed(undefined) 2026-10-25T00:47:52.3101318Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3101489Z 2026-10-25T00:47:52.3101752Z src/connection/registry.test.ts:1476:15 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3102057Z 2026-10-25T00:47:52.3102113Z 1476 ? Effect.succeed(undefined) 2026-10-25T00:47:52.3102251Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3102337Z 2026-10-25T00:47:52.3102599Z src/connection/registry.test.ts:1489:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3102952Z 2026-10-25T00:47:52.3103019Z 1489 : Effect.succeed(undefined), 2026-10-25T00:47:52.3103175Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3103269Z 2026-10-25T00:47:52.3103517Z src/platform/orchestrationCache.test.ts:110:15 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3103802Z 2026-10-25T00:47:52.3103860Z 110 }).pipe(Effect.map(Option.some)); 2026-10-25T00:47:52.3104001Z ~~~~~~~~~~ 2026-10-25T00:47:52.3104075Z 2026-10-25T00:47:52.3104449Z src/state/boundedThreadSnapshotHttp.ts:72:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadSnapshotLoader.ThreadSnapshotLoader.load")((prepared, threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3104857Z 2026-10-25T00:47:52.3104947Z 72 load: (prepared: PreparedConnection, threadId: ThreadId) => { 2026-10-25T00:47:52.3105120Z ~~~~ 2026-10-25T00:47:52.3105180Z 2026-10-25T00:47:52.3105472Z src/state/commandPermissions.ts:56:13 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed) 2026-10-25T00:47:52.3105800Z 2026-10-25T00:47:52.3105902Z 56 Effect.catch(() => Effect.succeed(Option.none())), 2026-10-25T00:47:52.3106089Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3106162Z 2026-10-25T00:47:52.3106498Z src/state/commandPermissions.ts:62:20 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3106872Z 2026-10-25T00:47:52.3106926Z 62 return yield* Effect.fail( 2026-10-25T00:47:52.3107060Z ~~~~~ 2026-10-25T00:47:52.3107134Z 2026-10-25T00:47:52.3107430Z src/state/outdatedServerUpdate.ts:57:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("execute")((target, atomRegistry) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3107759Z 2026-10-25T00:47:52.3107853Z 57 execute: (target: OutdatedServerUpdateTarget, atomRegistry) => { 2026-10-25T00:47:52.3108034Z ~~~~~~~ 2026-10-25T00:47:52.3108094Z 2026-10-25T00:47:52.3108406Z src/state/pullRequestDiffHttp.ts:90:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestDiffLoader.load")((prepared, input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3108759Z 2026-10-25T00:47:52.3108813Z 90 load: (prepared, input) => 2026-10-25T00:47:52.3108938Z ~~~~ 2026-10-25T00:47:52.3108997Z 2026-10-25T00:47:52.3109401Z src/state/queryPersistence.ts:34:28 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3109837Z 2026-10-25T00:47:52.3109943Z 34 return yield* Schema.decodeUnknownEffect(codec)(stored.value).pipe( 2026-10-25T00:47:52.3110135Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3110287Z 2026-10-25T00:47:52.3110513Z src/state/queryPersistence.ts:35:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3110774Z 2026-10-25T00:47:52.3110828Z 35 Effect.map(Option.some), 2026-10-25T00:47:52.3110957Z ~~~~~~~~~~ 2026-10-25T00:47:52.3111024Z 2026-10-25T00:47:52.3111290Z src/state/server.ts:680:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("execute")((target, atomRegistry) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3111617Z 2026-10-25T00:47:52.3111721Z 680 execute: (target, atomRegistry) => { 2026-10-25T00:47:52.3111856Z ~~~~~~~ 2026-10-25T00:47:52.3111917Z 2026-10-25T00:47:52.3112248Z src/state/server.ts:1125:11 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3112614Z 2026-10-25T00:47:52.3112672Z 1125 Effect.flatMap((summary) => 2026-10-25T00:47:52.3112812Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3112888Z 2026-10-25T00:47:52.3113108Z src/state/shell-sync.test.ts:90:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3113111Z 2026-10-25T00:47:52.3113183Z 90 loadShell: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3113233Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3113236Z 2026-10-25T00:47:52.3113452Z src/state/shell-sync.test.ts:96:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3113455Z 2026-10-25T00:47:52.3113530Z 96 loadThread: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3113580Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3113584Z 2026-10-25T00:47:52.3113798Z src/state/shell-sync.test.ts:99:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3113800Z 2026-10-25T00:47:52.3113882Z 99 loadServerConfig: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3113933Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3113936Z 2026-10-25T00:47:52.3114151Z src/state/shell-sync.test.ts:101:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3114153Z 2026-10-25T00:47:52.3114229Z 101 loadVcsRefs: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3114282Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3114285Z 2026-10-25T00:47:52.3114498Z src/state/shell-sync.test.ts:108:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3114503Z 2026-10-25T00:47:52.3114569Z 108 load: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3114618Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3114620Z 2026-10-25T00:47:52.3114835Z src/state/shell-sync.test.ts:229:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3114838Z 2026-10-25T00:47:52.3114910Z 229 loadShell: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3114956Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3114959Z 2026-10-25T00:47:52.3115173Z src/state/shell-sync.test.ts:238:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3115176Z 2026-10-25T00:47:52.3115248Z 238 loadThread: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3115299Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3115349Z 2026-10-25T00:47:52.3115564Z src/state/shell-sync.test.ts:241:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3115566Z 2026-10-25T00:47:52.3115646Z 241 loadServerConfig: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3115698Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3115701Z 2026-10-25T00:47:52.3115914Z src/state/shell-sync.test.ts:243:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3115917Z 2026-10-25T00:47:52.3116032Z 243 loadVcsRefs: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3116081Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3116085Z 2026-10-25T00:47:52.3116295Z src/state/shell-sync.test.ts:250:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3116299Z 2026-10-25T00:47:52.3116364Z 250 load: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3116414Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3116416Z 2026-10-25T00:47:52.3116630Z src/state/shell-sync.test.ts:349:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3116632Z 2026-10-25T00:47:52.3116701Z 349 loadShell: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3116749Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3116751Z 2026-10-25T00:47:52.3116966Z src/state/shell-sync.test.ts:355:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3116968Z 2026-10-25T00:47:52.3117040Z 355 loadThread: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3117090Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3117094Z 2026-10-25T00:47:52.3117309Z src/state/shell-sync.test.ts:358:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3117311Z 2026-10-25T00:47:52.3117392Z 358 loadServerConfig: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3117444Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3117447Z 2026-10-25T00:47:52.3117662Z src/state/shell-sync.test.ts:360:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3117664Z 2026-10-25T00:47:52.3117737Z 360 loadVcsRefs: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3117786Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3117788Z 2026-10-25T00:47:52.3118002Z src/state/shell-sync.test.ts:367:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3118006Z 2026-10-25T00:47:52.3118070Z 367 load: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3118117Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3118120Z 2026-10-25T00:47:52.3118404Z src/state/shell-sync.test.ts:446:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3118409Z 2026-10-25T00:47:52.3118498Z 446 loadShell: () => Effect.succeed(Option.some(cachedSnapshot)), 2026-10-25T00:47:52.3118547Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3118549Z 2026-10-25T00:47:52.3118765Z src/state/shell-sync.test.ts:448:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3118768Z 2026-10-25T00:47:52.3118839Z 448 loadThread: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3118959Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3118961Z 2026-10-25T00:47:52.3119175Z src/state/shell-sync.test.ts:451:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3119177Z 2026-10-25T00:47:52.3119258Z 451 loadServerConfig: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3119309Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3119311Z 2026-10-25T00:47:52.3119525Z src/state/shell-sync.test.ts:453:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3119685Z 2026-10-25T00:47:52.3119757Z 453 loadVcsRefs: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3119807Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3119809Z 2026-10-25T00:47:52.3120024Z src/state/shell-sync.test.ts:460:21 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3120029Z 2026-10-25T00:47:52.3120108Z 460 load: () => Effect.succeed(Option.some(httpSnapshot)), 2026-10-25T00:47:52.3120154Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3120158Z 2026-10-25T00:47:52.3120457Z src/state/shellSnapshotHttp.ts:98:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ShellSnapshotLoader.load")((prepared) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3120459Z 2026-10-25T00:47:52.3120523Z 98 load: (prepared: PreparedConnection) => 2026-10-25T00:47:52.3120564Z ~~~~ 2026-10-25T00:47:52.3120568Z 2026-10-25T00:47:52.3120929Z src/state/threadHistoryController.ts:52:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.register")((environmentId, threadId, handler) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3120933Z 2026-10-25T00:47:52.3121002Z 52 register: (environmentId, threadId, handler) => 2026-10-25T00:47:52.3121044Z ~~~~~~~~ 2026-10-25T00:47:52.3121046Z 2026-10-25T00:47:52.3121408Z src/state/threadHistoryController.ts:64:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.unregister")((registration) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3121411Z 2026-10-25T00:47:52.3121464Z 64 unregister: (registration) => 2026-10-25T00:47:52.3121507Z ~~~~~~~~~~ 2026-10-25T00:47:52.3121509Z 2026-10-25T00:47:52.3121879Z src/state/threadHistoryController.ts:79:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.loadEarlier")((environmentId, threadId, throughEntryId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3121883Z 2026-10-25T00:47:52.3121963Z 79 loadEarlier: (environmentId, threadId, throughEntryId) => 2026-10-25T00:47:52.3122008Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3122010Z 2026-10-25T00:47:52.3122376Z src/state/threadHistoryController.ts:89:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.reconcilePendingWork")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3122379Z 2026-10-25T00:47:52.3122453Z 89 reconcilePendingWork: (environmentId, threadId) => 2026-10-25T00:47:52.3122499Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3122501Z 2026-10-25T00:47:52.3122906Z src/state/threads-sync.test.ts:374:18 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3122909Z 2026-10-25T00:47:52.3122987Z 374 Schema.decodeUnknownEffect(schema)(stale).pipe( 2026-10-25T00:47:52.3123098Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3123100Z 2026-10-25T00:47:52.3123324Z src/state/threads-sync.test.ts:1520:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3123326Z 2026-10-25T00:47:52.3123407Z 1520 : { loadCached: Effect.succeed(Option.some(saved!)) }, 2026-10-25T00:47:52.3123460Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3123463Z 2026-10-25T00:47:52.3123768Z src/state/vcsAction.ts:447:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("execute")((input, registry) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3123771Z 2026-10-25T00:47:52.3123859Z 447 execute: (input: RunVcsStackedActionInput, registry) => { 2026-10-25T00:47:52.3123902Z ~~~~~~~ 2026-10-25T00:47:52.3123904Z 2026-10-25T00:47:52.3123906Z 2026-10-25T00:47:52.3123956Z ~/apps/mobile$ tsc --noEmit 2026-10-25T00:47:52.3124008Z ~/infra/relay$ tsc --noEmit 2026-10-25T00:47:52.3124056Z ~/apps/web$ tsc --noEmit 2026-10-25T00:47:52.3124108Z ~/apps/desktop$ tsc --noEmit 2026-10-25T00:47:52.3124420Z src/agentActivity/ApnsDeliveryQueue.ts:220:11 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ApnsDeliveryQueueSender.send")((body) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3124423Z 2026-10-25T00:47:52.3124470Z 220 send: (body) => 2026-10-25T00:47:52.3124511Z ~~~~ 2026-10-25T00:47:52.3124514Z 2026-10-25T00:47:52.3124814Z src/agentActivity/FcmDeliveryQueueConsumer.ts:12:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onFailure")(function*(error) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3124817Z 2026-10-25T00:47:52.3124866Z 12 onFailure: (error) => 2026-10-25T00:47:52.3124906Z ~~~~~~~~~ 2026-10-25T00:47:52.3124909Z 2026-10-25T00:47:52.3125233Z src/environments/CloudflareApiPause.ts:64:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CloudflareApiPause.pauseUntil")((untilMillis) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3125235Z 2026-10-25T00:47:52.3125289Z 64 pauseUntil: (untilMillis) => 2026-10-25T00:47:52.3125330Z ~~~~~~~~~~ 2026-10-25T00:47:52.3125333Z 2026-10-25T00:47:52.3125569Z src/http/Api.ts:198:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3125574Z 2026-10-25T00:47:52.3125620Z 198 onNone: () => 2026-10-25T00:47:52.3125662Z ~~~~~~ 2026-10-25T00:47:52.3125664Z 2026-10-25T00:47:52.3125931Z src/previewTunnelSweep.test.ts:53:11 - suggestion TS377124: `Effect.provideService` provides this inline single-service layer directly. effect(provideLayerSucceedToProvideService) 2026-10-25T00:47:52.3125935Z 2026-10-25T00:47:52.3126054Z 53 }).pipe(Effect.provide(Layer.succeed(HttpClient.HttpClient, cloudflare.client))); 2026-10-25T00:47:52.3126096Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3126098Z 2026-10-25T00:47:52.3126382Z src/worker.ts:92:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpPlatform.HttpPlatform.fileResponse")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3126384Z 2026-10-25T00:47:52.3126493Z 92 fileResponse: () => Effect.die("Relay API does not serve filesystem responses"), 2026-10-25T00:47:52.3126534Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3126536Z 2026-10-25T00:47:52.3126824Z src/worker.ts:93:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpPlatform.HttpPlatform.fileWebResponse")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3126827Z 2026-10-25T00:47:52.3126932Z 93 fileWebResponse: () => Effect.die("Relay API does not serve file responses"), 2026-10-25T00:47:52.3127026Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3127028Z 2026-10-25T00:47:52.3127282Z src/worker.ts:242:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.hold")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3127284Z 2026-10-25T00:47:52.3127348Z 242 hold: ({ endpointKey, baseUrl, hook }) => 2026-10-25T00:47:52.3127392Z ~~~~ 2026-10-25T00:47:52.3127394Z 2026-10-25T00:47:52.3127696Z src/worker.ts:244:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.wake")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3127699Z 2026-10-25T00:47:52.3127759Z 244 wake: ({ endpointKey, baseUrl }) => 2026-10-25T00:47:52.3127801Z ~~~~ 2026-10-25T00:47:52.3127804Z 2026-10-25T00:47:52.3128060Z src/worker.ts:246:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.clear")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3128064Z 2026-10-25T00:47:52.3128118Z 246 clear: ({ endpointKey }) => 2026-10-25T00:47:52.3128160Z ~~~~~ 2026-10-25T00:47:52.3128162Z 2026-10-25T00:47:52.3128475Z src/worker.ts:275:15 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("FcmDeliveryQueueSender.FcmDeliveryQueueSender.send")((body) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3128478Z 2026-10-25T00:47:52.3128526Z 275 send: (body) => 2026-10-25T00:47:52.3128571Z ~~~~ 2026-10-25T00:47:52.3128573Z 2026-10-25T00:47:52.3128576Z 2026-10-25T00:47:52.3128882Z src/app/DesktopAppActivation.ts:389:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppActivation.complete")((response) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3128886Z 2026-10-25T00:47:52.3128987Z 389 complete: (response) => Effect.sync(() => broker.complete(response)), 2026-10-25T00:47:52.3129030Z ~~~~~~~~ 2026-10-25T00:47:52.3129032Z 2026-10-25T00:47:52.3129254Z src/app/DesktopClerk.test.ts:300:27 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3129257Z 2026-10-25T00:47:52.3129343Z 300 currentMainOrFirst: Effect.succeed(Option.some(window)), 2026-10-25T00:47:52.3129394Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3129396Z 2026-10-25T00:47:52.3129672Z src/app/DesktopObservability.ts:461:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(logFile) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3129675Z 2026-10-25T00:47:52.3129724Z 461 onSome: (logFile) => 2026-10-25T00:47:52.3129765Z ~~~~~~ 2026-10-25T00:47:52.3129767Z 2026-10-25T00:47:52.3130093Z src/app/DesktopObservability.ts:591:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendOutputLogFactory.forInstance")((id) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3130097Z 2026-10-25T00:47:52.3130153Z 591 forInstance: (id) => makeForId(id), 2026-10-25T00:47:52.3130198Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3130201Z 2026-10-25T00:47:52.3130426Z src/app/DesktopWebLinks.test.ts:29:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3130428Z 2026-10-25T00:47:52.3130516Z 29 currentMainOrFirst: Effect.succeed(Option.some(window)), 2026-10-25T00:47:52.3130566Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3130570Z 2026-10-25T00:47:52.3130844Z src/app/DesktopWebLinks.ts:72:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWebLinks.receive")((url) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3130901Z 2026-10-25T00:47:52.3130947Z 72 receive: (url) => 2026-10-25T00:47:52.3130990Z ~~~~~~~ 2026-10-25T00:47:52.3130992Z 2026-10-25T00:47:52.3131288Z src/app/DesktopWebLinks.ts:77:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWebLinks.setRendererReady")((ready) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3131291Z 2026-10-25T00:47:52.3131341Z 77 setRendererReady: (ready) => 2026-10-25T00:47:52.3131415Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3131418Z 2026-10-25T00:47:52.3131744Z src/backend/DesktopBackendManager.ts:1062:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(run) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3131747Z 2026-10-25T00:47:52.3131794Z 1062 onSome: (run) => 2026-10-25T00:47:52.3131835Z ~~~~~~ 2026-10-25T00:47:52.3131837Z 2026-10-25T00:47:52.3132122Z src/backend/DesktopBackendPool.ts:307:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3132125Z 2026-10-25T00:47:52.3132169Z 307 get: (id) => 2026-10-25T00:47:52.3132211Z ~~~ 2026-10-25T00:47:52.3132213Z 2026-10-25T00:47:52.3132497Z src/backend/DesktopBackendPool.ts:342:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3132499Z 2026-10-25T00:47:52.3132592Z 342 get: (id) => Effect.succeed(Option.fromNullishOr(byId.get(id))), 2026-10-25T00:47:52.3132632Z ~~~ 2026-10-25T00:47:52.3132635Z 2026-10-25T00:47:52.3132926Z src/backend/DesktopBackendPool.ts:345:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.register")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3132930Z 2026-10-25T00:47:52.3133058Z 345 register: () => Effect.die("DesktopBackendPool.layerTest does not support register"), 2026-10-25T00:47:52.3133100Z ~~~~~~~~ 2026-10-25T00:47:52.3133103Z 2026-10-25T00:47:52.3133398Z src/backend/DesktopBackendPool.ts:346:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.unregister")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3133401Z 2026-10-25T00:47:52.3133529Z 346 unregister: () => Effect.die("DesktopBackendPool.layerTest does not support unregister"), 2026-10-25T00:47:52.3133573Z ~~~~~~~~~~ 2026-10-25T00:47:52.3133576Z 2026-10-25T00:47:52.3133842Z src/electron/ElectronApp.ts:145:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.exit")((code) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3133847Z 2026-10-25T00:47:52.3133892Z 145 exit: (code) => 2026-10-25T00:47:52.3133932Z ~~~~ 2026-10-25T00:47:52.3133934Z 2026-10-25T00:47:52.3134211Z src/electron/ElectronApp.ts:149:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.relaunch")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3134213Z 2026-10-25T00:47:52.3134263Z 149 relaunch: (options) => 2026-10-25T00:47:52.3134304Z ~~~~~~~~ 2026-10-25T00:47:52.3134307Z 2026-10-25T00:47:52.3134590Z src/electron/ElectronApp.ts:153:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setPath")((name, path) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3134593Z 2026-10-25T00:47:52.3134642Z 153 setPath: (name, path) => 2026-10-25T00:47:52.3134683Z ~~~~~~~ 2026-10-25T00:47:52.3134686Z 2026-10-25T00:47:52.3134956Z src/electron/ElectronApp.ts:157:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setName")((name) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3135012Z 2026-10-25T00:47:52.3135058Z 157 setName: (name) => 2026-10-25T00:47:52.3135097Z ~~~~~~~ 2026-10-25T00:47:52.3135101Z 2026-10-25T00:47:52.3135399Z src/electron/ElectronApp.ts:161:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAboutPanelOptions")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3135402Z 2026-10-25T00:47:52.3135460Z 161 setAboutPanelOptions: (options) => 2026-10-25T00:47:52.3135507Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3135555Z 2026-10-25T00:47:52.3135843Z src/electron/ElectronApp.ts:165:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAppUserModelId")((id) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3135846Z 2026-10-25T00:47:52.3135900Z 165 setAppUserModelId: (id) => 2026-10-25T00:47:52.3135942Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3135945Z 2026-10-25T00:47:52.3136281Z src/electron/ElectronApp.ts:170:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAsDefaultProtocolClient")((protocol, path, args) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3136283Z 2026-10-25T00:47:52.3136369Z 170 setAsDefaultProtocolClient: (protocol, path, args) => 2026-10-25T00:47:52.3136415Z ~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3136417Z 2026-10-25T00:47:52.3136714Z src/electron/ElectronApp.ts:177:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDesktopName")((desktopName) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3136718Z 2026-10-25T00:47:52.3136772Z 177 setDesktopName: (desktopName) => 2026-10-25T00:47:52.3136814Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3136816Z 2026-10-25T00:47:52.3137100Z src/electron/ElectronApp.ts:184:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDockIcon")((iconPath) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3137103Z 2026-10-25T00:47:52.3137154Z 184 setDockIcon: (iconPath) => 2026-10-25T00:47:52.3137194Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3137196Z 2026-10-25T00:47:52.3137516Z src/electron/ElectronApp.ts:188:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.appendCommandLineSwitch")((switchName, value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3137519Z 2026-10-25T00:47:52.3137593Z 188 appendCommandLineSwitch: (switchName, value) => 2026-10-25T00:47:52.3137641Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3137643Z 2026-10-25T00:47:52.3137947Z src/electron/ElectronApp.ts:196:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.onBeforeQuitForUpdate")((listener) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3137951Z 2026-10-25T00:47:52.3138009Z 196 onBeforeQuitForUpdate: (listener) => 2026-10-25T00:47:52.3138055Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3138057Z 2026-10-25T00:47:52.3138366Z src/electron/ElectronApp.ts:206:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.removeCommandLineSwitch")((switchName) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3138369Z 2026-10-25T00:47:52.3138432Z 206 removeCommandLineSwitch: (switchName) => 2026-10-25T00:47:52.3138475Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3138480Z 2026-10-25T00:47:52.3138789Z src/electron/ElectronDialog.ts:169:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronDialog.showMessageBox")((options, owner) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3138791Z 2026-10-25T00:47:52.3138907Z 169 showMessageBox: (options, owner) => 2026-10-25T00:47:52.3138950Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3138952Z 2026-10-25T00:47:52.3139257Z src/electron/ElectronDialog.ts:185:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronDialog.showErrorBox")((title, content) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3139259Z 2026-10-25T00:47:52.3139313Z 185 showErrorBox: (title, content) => 2026-10-25T00:47:52.3139355Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3139358Z 2026-10-25T00:47:52.3139707Z src/electron/ElectronMenu.ts:193:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.setApplicationMenu")((template) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3139710Z 2026-10-25T00:47:52.3139766Z 193 setApplicationMenu: (template) => 2026-10-25T00:47:52.3139811Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3139814Z 2026-10-25T00:47:52.3140101Z src/electron/ElectronMenu.ts:207:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.popupTemplate")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3140105Z 2026-10-25T00:47:52.3140156Z 207 popupTemplate: (input) => 2026-10-25T00:47:52.3140199Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3140201Z 2026-10-25T00:47:52.3140490Z src/electron/ElectronMenu.ts:225:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.showContextMenu")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3140493Z 2026-10-25T00:47:52.3140546Z 225 showContextMenu: (input) => 2026-10-25T00:47:52.3140587Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3140589Z 2026-10-25T00:47:52.3140945Z src/electron/ElectronPowerMonitor.ts:82:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronPowerMonitor.getSystemIdleState")((idleThresholdSeconds) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3140949Z 2026-10-25T00:47:52.3141017Z 82 getSystemIdleState: (idleThresholdSeconds) => 2026-10-25T00:47:52.3141061Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3141063Z 2026-10-25T00:47:52.3141410Z src/electron/ElectronSafeStorage.ts:77:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronSafeStorage.encryptString")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3141413Z 2026-10-25T00:47:52.3141461Z 77 encryptString: (value) => 2026-10-25T00:47:52.3141504Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3141506Z 2026-10-25T00:47:52.3141817Z src/electron/ElectronSafeStorage.ts:82:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronSafeStorage.decryptString")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3141819Z 2026-10-25T00:47:52.3141869Z 82 decryptString: (value) => 2026-10-25T00:47:52.3141911Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3141916Z 2026-10-25T00:47:52.3142201Z src/electron/ElectronShell.ts:68:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openExternal")((rawUrl) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3142203Z 2026-10-25T00:47:52.3142253Z 68 openExternal: (rawUrl) => 2026-10-25T00:47:52.3142294Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3142297Z 2026-10-25T00:47:52.3142598Z src/electron/ElectronShell.ts:79:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openSystemSettings")((pane) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3142600Z 2026-10-25T00:47:52.3142652Z 79 openSystemSettings: (pane) => 2026-10-25T00:47:52.3142695Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3142698Z 2026-10-25T00:47:52.3142974Z src/electron/ElectronShell.ts:86:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.copyText")((text) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3143032Z 2026-10-25T00:47:52.3143081Z 86 copyText: (text) => 2026-10-25T00:47:52.3143123Z ~~~~~~~~ 2026-10-25T00:47:52.3143125Z 2026-10-25T00:47:52.3143403Z src/electron/ElectronTheme.ts:34:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronTheme.setSource")((theme) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3143405Z 2026-10-25T00:47:52.3143454Z 34 setSource: (theme) => 2026-10-25T00:47:52.3143494Z ~~~~~~~~~ 2026-10-25T00:47:52.3143497Z 2026-10-25T00:47:52.3143829Z src/electron/ElectronTheme.ts:41:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronTheme.onUpdated")((listener) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3143832Z 2026-10-25T00:47:52.3143882Z 41 onUpdated: (listener) => 2026-10-25T00:47:52.3143923Z ~~~~~~~~~ 2026-10-25T00:47:52.3143925Z 2026-10-25T00:47:52.3144219Z src/electron/ElectronUpdater.ts:85:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setFeedURL")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3144222Z 2026-10-25T00:47:52.3144271Z 85 setFeedURL: (options) => 2026-10-25T00:47:52.3144311Z ~~~~~~~~~~ 2026-10-25T00:47:52.3144313Z 2026-10-25T00:47:52.3144613Z src/electron/ElectronUpdater.ts:90:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAutoDownload")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3144617Z 2026-10-25T00:47:52.3144665Z 90 setAutoDownload: (value) => 2026-10-25T00:47:52.3144707Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3144709Z 2026-10-25T00:47:52.3145024Z src/electron/ElectronUpdater.ts:95:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAutoInstallOnAppQuit")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3145029Z 2026-10-25T00:47:52.3145085Z 95 setAutoInstallOnAppQuit: (value) => 2026-10-25T00:47:52.3145128Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3145131Z 2026-10-25T00:47:52.3145425Z src/electron/ElectronUpdater.ts:100:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setChannel")((channel) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3145428Z 2026-10-25T00:47:52.3145476Z 100 setChannel: (channel) => 2026-10-25T00:47:52.3145517Z ~~~~~~~~~~ 2026-10-25T00:47:52.3145521Z 2026-10-25T00:47:52.3145828Z src/electron/ElectronUpdater.ts:105:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAllowPrerelease")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3145831Z 2026-10-25T00:47:52.3145884Z 105 setAllowPrerelease: (value) => 2026-10-25T00:47:52.3145927Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3145930Z 2026-10-25T00:47:52.3146236Z src/electron/ElectronUpdater.ts:111:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAllowDowngrade")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3146238Z 2026-10-25T00:47:52.3146290Z 111 setAllowDowngrade: (value) => 2026-10-25T00:47:52.3146331Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3146335Z 2026-10-25T00:47:52.3146638Z src/electron/ElectronUpdater.ts:116:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setFullChangelog")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3146641Z 2026-10-25T00:47:52.3146695Z 116 setFullChangelog: (value) => 2026-10-25T00:47:52.3146739Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3146741Z 2026-10-25T00:47:52.3147124Z src/electron/ElectronUpdater.ts:121:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setDisableDifferentialDownload")((value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3147126Z 2026-10-25T00:47:52.3147197Z 121 setDisableDifferentialDownload: (value) => 2026-10-25T00:47:52.3147243Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3147246Z 2026-10-25T00:47:52.3147539Z src/electron/ElectronUpdater.ts:140:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.quitAndInstall")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3147541Z 2026-10-25T00:47:52.3147662Z 140 quitAndInstall: ({ isSilent, isForceRunAfter }) => 2026-10-25T00:47:52.3147705Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3147707Z 2026-10-25T00:47:52.3148002Z src/electron/ElectronUpdater.ts:154:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.on")((eventName, listener) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3148008Z 2026-10-25T00:47:52.3148057Z 154 on: (eventName, listener) => { 2026-10-25T00:47:52.3148098Z ~~ 2026-10-25T00:47:52.3148100Z 2026-10-25T00:47:52.3148385Z src/electron/ElectronWindow.ts:211:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.create")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3148388Z 2026-10-25T00:47:52.3148438Z 211 create: (options) => { 2026-10-25T00:47:52.3148478Z ~~~~~~ 2026-10-25T00:47:52.3148480Z 2026-10-25T00:47:52.3148768Z src/electron/ElectronWindow.ts:243:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.setMain")((window) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3148771Z 2026-10-25T00:47:52.3148867Z 243 setMain: (window) => Ref.set(mainWindowRef, Option.some(window)), 2026-10-25T00:47:52.3148912Z ~~~~~~~ 2026-10-25T00:47:52.3148914Z 2026-10-25T00:47:52.3149203Z src/electron/ElectronWindow.ts:244:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.clearMain")((window) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3149206Z 2026-10-25T00:47:52.3149252Z 244 clearMain: (window) => 2026-10-25T00:47:52.3149292Z ~~~~~~~~~ 2026-10-25T00:47:52.3149294Z 2026-10-25T00:47:52.3149590Z src/electron/ElectronWindow.ts:254:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.prepareReveal")((window) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3149593Z 2026-10-25T00:47:52.3149644Z 254 prepareReveal: (window) => 2026-10-25T00:47:52.3149686Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3149688Z 2026-10-25T00:47:52.3149967Z src/electron/ElectronWindow.ts:264:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.reveal")((window) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3149972Z 2026-10-25T00:47:52.3150019Z 264 reveal: (window) => 2026-10-25T00:47:52.3150060Z ~~~~~~ 2026-10-25T00:47:52.3150062Z 2026-10-25T00:47:52.3150410Z src/settings/DesktopAppSettings.ts:526:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3150412Z 2026-10-25T00:47:52.3150480Z 526 setMainWindowBounds: (bounds, isMaximized) => 2026-10-25T00:47:52.3150527Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3150529Z 2026-10-25T00:47:52.3150855Z src/settings/DesktopAppSettings.ts:538:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3150910Z 2026-10-25T00:47:52.3150966Z 538 setServerExposureMode: (mode) => 2026-10-25T00:47:52.3151011Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3151013Z 2026-10-25T00:47:52.3151333Z src/settings/DesktopAppSettings.ts:542:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3151336Z 2026-10-25T00:47:52.3151417Z 542 setTailscaleServe: (input) => 2026-10-25T00:47:52.3151463Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3151465Z 2026-10-25T00:47:52.3151833Z src/settings/DesktopAppSettings.ts:546:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3151836Z 2026-10-25T00:47:52.3151891Z 546 setUpdateChannel: (channel) => 2026-10-25T00:47:52.3151935Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3151938Z 2026-10-25T00:47:52.3152265Z src/settings/DesktopAppSettings.ts:550:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3152268Z 2026-10-25T00:47:52.3152326Z 550 setWslBackendEnabled: (enabled) => 2026-10-25T00:47:52.3152371Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3152373Z 2026-10-25T00:47:52.3152685Z src/settings/DesktopAppSettings.ts:554:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3152687Z 2026-10-25T00:47:52.3152737Z 554 setWslDistro: (distro) => 2026-10-25T00:47:52.3152778Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3152781Z 2026-10-25T00:47:52.3153087Z src/settings/DesktopAppSettings.ts:560:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3153090Z 2026-10-25T00:47:52.3153139Z 560 setWslOnly: (enabled) => 2026-10-25T00:47:52.3153179Z ~~~~~~~~~~ 2026-10-25T00:47:52.3153181Z 2026-10-25T00:47:52.3153521Z src/settings/DesktopAppSettings.ts:564:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3153523Z 2026-10-25T00:47:52.3153588Z 564 setLocalEnvironmentEnabled: (enabled) => 2026-10-25T00:47:52.3153635Z ~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3153637Z 2026-10-25T00:47:52.3153980Z src/settings/DesktopAppSettings.ts:599:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3153986Z 2026-10-25T00:47:52.3154057Z 599 setMainWindowBounds: (bounds, isMaximized) => 2026-10-25T00:47:52.3154106Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3154108Z 2026-10-25T00:47:52.3154434Z src/settings/DesktopAppSettings.ts:601:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3154436Z 2026-10-25T00:47:52.3154496Z 601 setServerExposureMode: (mode) => 2026-10-25T00:47:52.3154543Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3154547Z 2026-10-25T00:47:52.3154862Z src/settings/DesktopAppSettings.ts:603:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3154866Z 2026-10-25T00:47:52.3155043Z 603 setTailscaleServe: (input) => update((settings) => setTailscaleServe(settings, input)), 2026-10-25T00:47:52.3155088Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3155090Z 2026-10-25T00:47:52.3155409Z src/settings/DesktopAppSettings.ts:604:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3155411Z 2026-10-25T00:47:52.3155539Z 604 setUpdateChannel: (channel) => update((settings) => setUpdateChannel(settings, channel)), 2026-10-25T00:47:52.3155582Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3155584Z 2026-10-25T00:47:52.3155965Z src/settings/DesktopAppSettings.ts:605:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3155967Z 2026-10-25T00:47:52.3156030Z 605 setWslBackendEnabled: (enabled) => 2026-10-25T00:47:52.3156076Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3156078Z 2026-10-25T00:47:52.3156390Z src/settings/DesktopAppSettings.ts:607:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3156393Z 2026-10-25T00:47:52.3156506Z 607 setWslDistro: (distro) => update((settings) => setWslDistro(settings, distro)), 2026-10-25T00:47:52.3156550Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3156553Z 2026-10-25T00:47:52.3156864Z src/settings/DesktopAppSettings.ts:608:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3156867Z 2026-10-25T00:47:52.3156978Z 608 setWslOnly: (enabled) => update((settings) => setWslOnly(settings, enabled)), 2026-10-25T00:47:52.3157024Z ~~~~~~~~~~ 2026-10-25T00:47:52.3157027Z 2026-10-25T00:47:52.3157366Z src/settings/DesktopAppSettings.ts:609:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3157370Z 2026-10-25T00:47:52.3157437Z 609 setLocalEnvironmentEnabled: (enabled) => 2026-10-25T00:47:52.3157486Z ~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3157488Z 2026-10-25T00:47:52.3157799Z src/settings/DesktopClientSettings.ts:197:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopClientSettings.set")((settings) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3157801Z 2026-10-25T00:47:52.3157850Z 197 set: (settings) => 2026-10-25T00:47:52.3157891Z ~~~ 2026-10-25T00:47:52.3157893Z 2026-10-25T00:47:52.3158199Z src/settings/DesktopClientSettings.ts:231:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopClientSettings.set")((settings) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3158204Z 2026-10-25T00:47:52.3158350Z 231 set: (settings) => Ref.set(settingsRef, Option.some(settings)), 2026-10-25T00:47:52.3158391Z ~~~ 2026-10-25T00:47:52.3158394Z 2026-10-25T00:47:52.3158730Z src/snapShot/DesktopSnapShot.ts:1729:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.setAnimationDestination")((id, destination) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3158733Z 2026-10-25T00:47:52.3158807Z 1729 setAnimationDestination: (id, destination) => 2026-10-25T00:47:52.3158854Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3158856Z 2026-10-25T00:47:52.3159159Z src/snapShot/DesktopSnapShot.ts:1740:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.dismissAnimation")((id) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3159229Z 2026-10-25T00:47:52.3159282Z 1740 dismissAnimation: (id) => 2026-10-25T00:47:52.3159327Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3159330Z 2026-10-25T00:47:52.3159622Z src/snapShot/DesktopSnapShot.ts:1745:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.acknowledge")((id) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3159624Z 2026-10-25T00:47:52.3159672Z 1745 acknowledge: (id) => 2026-10-25T00:47:52.3159714Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3159716Z 2026-10-25T00:47:52.3160080Z src/ssh/DesktopSshEnvironment.ts:136:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.discoverHosts")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3160083Z 2026-10-25T00:47:52.3160134Z 136 discoverHosts: (input) => 2026-10-25T00:47:52.3160177Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3160179Z 2026-10-25T00:47:52.3160487Z src/ssh/DesktopSshEnvironment.ts:141:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.resolveHost")((alias) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3160489Z 2026-10-25T00:47:52.3160538Z 141 resolveHost: (alias) => 2026-10-25T00:47:52.3160580Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3160583Z 2026-10-25T00:47:52.3160926Z src/ssh/DesktopSshEnvironment.ts:146:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.ensureEnvironment")((target, ensureOptions) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3160931Z 2026-10-25T00:47:52.3160999Z 146 ensureEnvironment: (target, ensureOptions) => 2026-10-25T00:47:52.3161044Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3161047Z 2026-10-25T00:47:52.3161411Z src/ssh/DesktopSshEnvironment.ts:154:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.disconnectEnvironment")((target) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3161414Z 2026-10-25T00:47:52.3161473Z 154 disconnectEnvironment: (target) => 2026-10-25T00:47:52.3161517Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3161519Z 2026-10-25T00:47:52.3161834Z src/updates/DesktopUpdates.ts:1171:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopUpdates.installPrepared")((expectedVersion) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3161838Z 2026-10-25T00:47:52.3161968Z 1171 installPrepared: (expectedVersion) => installWithExpectedVersion(expectedVersion), 2026-10-25T00:47:52.3162012Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3162015Z 2026-10-25T00:47:52.3162311Z src/wsl/DesktopWslEnvironment.ts:1101:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3162315Z 2026-10-25T00:47:52.3162367Z 1101 preWarm: () => Effect.void, 2026-10-25T00:47:52.3162409Z ~~~~~~~ 2026-10-25T00:47:52.3162411Z 2026-10-25T00:47:52.3162750Z src/wsl/DesktopWslEnvironment.ts:1102:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.windowsToWslPath")((distro, windowsPath) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3162752Z 2026-10-25T00:47:52.3162821Z 1102 windowsToWslPath: (distro, windowsPath) => 2026-10-25T00:47:52.3162869Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3162871Z 2026-10-25T00:47:52.3163180Z src/wsl/DesktopWslEnvironment.ts:1104:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getUserHome")((distro) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3163236Z 2026-10-25T00:47:52.3163375Z 1104 getUserHome: (distro) => Effect.succeed(stub.getUserHome?.(distro) ?? Option.none()), 2026-10-25T00:47:52.3163418Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3163420Z 2026-10-25T00:47:52.3163732Z src/wsl/DesktopWslEnvironment.ts:1105:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getDistroIp")((distro) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3163735Z 2026-10-25T00:47:52.3163869Z 1105 getDistroIp: (distro) => Effect.succeed(stub.getDistroIp?.(distro) ?? Option.none()), 2026-10-25T00:47:52.3163958Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3163961Z 2026-10-25T00:47:52.3164295Z src/wsl/DesktopWslEnvironment.ts:1106:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3164299Z 2026-10-25T00:47:52.3164362Z 1106 prepareRuntime: (distro, archive) => 2026-10-25T00:47:52.3164407Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3164409Z 2026-10-25T00:47:52.3164746Z src/wsl/DesktopWslEnvironment.ts:1113:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3164748Z 2026-10-25T00:47:52.3164880Z 1113 pruneRuntimes: (distro, runtimeId) => stub.pruneRuntimes?.(distro, runtimeId) ?? Effect.void, 2026-10-25T00:47:52.3164924Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3164928Z 2026-10-25T00:47:52.3165270Z src/wsl/DesktopWslEnvironment.ts:1114:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3165272Z 2026-10-25T00:47:52.3165341Z 1114 invalidateRuntime: (distro, runtimeId) => 2026-10-25T00:47:52.3165386Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3165389Z 2026-10-25T00:47:52.3165722Z src/wsl/DesktopWslEnvironment.ts:1116:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3165724Z 2026-10-25T00:47:52.3165787Z 1116 probeRuntime: (distro, linuxAppRoot) => 2026-10-25T00:47:52.3165830Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3165833Z 2026-10-25T00:47:52.3166184Z src/wsl/DesktopWslEnvironment.ts:1120:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3166187Z 2026-10-25T00:47:52.3166263Z 1120 ensureNodePty: (distro, linuxAppRoot, options) => 2026-10-25T00:47:52.3166306Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3166309Z 2026-10-25T00:47:52.3166616Z src/wsl/DesktopWslEnvironment.ts:1187:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")((distro) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3166618Z 2026-10-25T00:47:52.3166668Z 1187 preWarm: (distro) => 2026-10-25T00:47:52.3166709Z ~~~~~~~ 2026-10-25T00:47:52.3166712Z 2026-10-25T00:47:52.3167042Z src/wsl/DesktopWslEnvironment.ts:1192:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3167044Z 2026-10-25T00:47:52.3167103Z 1192 prepareRuntime: (distro, archive) => 2026-10-25T00:47:52.3167147Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3167149Z 2026-10-25T00:47:52.3167481Z src/wsl/DesktopWslEnvironment.ts:1196:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3167537Z 2026-10-25T00:47:52.3167598Z 1196 pruneRuntimes: (distro, runtimeId) => 2026-10-25T00:47:52.3167640Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3167644Z 2026-10-25T00:47:52.3167982Z src/wsl/DesktopWslEnvironment.ts:1200:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3167984Z 2026-10-25T00:47:52.3168103Z 1200 invalidateRuntime: (distro, runtimeId) => 2026-10-25T00:47:52.3168147Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3168150Z 2026-10-25T00:47:52.3168482Z src/wsl/DesktopWslEnvironment.ts:1204:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3168486Z 2026-10-25T00:47:52.3168548Z 1204 probeRuntime: (distro, linuxAppRoot) => 2026-10-25T00:47:52.3168589Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3168591Z 2026-10-25T00:47:52.3168940Z src/wsl/DesktopWslEnvironment.ts:1208:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3168942Z 2026-10-25T00:47:52.3169018Z 1208 ensureNodePty: (distro, linuxAppRoot, options) => 2026-10-25T00:47:52.3169063Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3169065Z 2026-10-25T00:47:52.3169067Z 2026-10-25T00:47:52.3169069Z 2026-10-25T00:47:52.3169403Z src/connection/platform.ts:820:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentOwnedDataCleanup.clear")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3169408Z 2026-10-25T00:47:52.3169458Z 820 clear: (environmentId) => 2026-10-25T00:47:52.3169500Z ~~~~~ 2026-10-25T00:47:52.3169502Z 2026-10-25T00:47:52.3169803Z src/connection/platform.ts:830:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentRpcRequestObserver.observe")((_) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3169805Z 2026-10-25T00:47:52.3169892Z 830 observe: ({ environmentId, environmentLabel, method }) => 2026-10-25T00:47:52.3169932Z ~~~~~~~ 2026-10-25T00:47:52.3169936Z 2026-10-25T00:47:52.3170235Z src/connection/storage.ts:551:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3170237Z 2026-10-25T00:47:52.3170284Z 551 get: (entry) => 2026-10-25T00:47:52.3170327Z ~~~ 2026-10-25T00:47:52.3170330Z 2026-10-25T00:47:52.3170641Z src/connection/storage.ts:578:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3170643Z 2026-10-25T00:47:52.3170695Z 578 set: (entry, permission) => { 2026-10-25T00:47:52.3170737Z ~~~ 2026-10-25T00:47:52.3170739Z 2026-10-25T00:47:52.3171053Z src/connection/storage.ts:598:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3171055Z 2026-10-25T00:47:52.3171135Z 598 forget: (environmentId) => write(environmentId, null), 2026-10-25T00:47:52.3171178Z ~~~~~~ 2026-10-25T00:47:52.3171180Z 2026-10-25T00:47:52.3171559Z src/connection/storage.ts:645:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.register")((registration, routes) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3171616Z 2026-10-25T00:47:52.3171673Z 645 register: (registration, routes) => 2026-10-25T00:47:52.3171715Z ~~~~~~~~ 2026-10-25T00:47:52.3171717Z 2026-10-25T00:47:52.3172067Z src/connection/storage.ts:649:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setRoutes")((environmentId, routes) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3172069Z 2026-10-25T00:47:52.3172179Z 649 setRoutes: (environmentId, routes) => 2026-10-25T00:47:52.3172222Z ~~~~~~~~~ 2026-10-25T00:47:52.3172224Z 2026-10-25T00:47:52.3172560Z src/connection/storage.ts:653:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.remove")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3172564Z 2026-10-25T00:47:52.3172616Z 653 remove: (environmentId) => 2026-10-25T00:47:52.3172657Z ~~~~~~ 2026-10-25T00:47:52.3172660Z 2026-10-25T00:47:52.3173015Z src/connection/storage.ts:657:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setEnabled")((environmentId, enabled) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3173018Z 2026-10-25T00:47:52.3173078Z 657 setEnabled: (environmentId, enabled) => 2026-10-25T00:47:52.3173120Z ~~~~~~~~~~ 2026-10-25T00:47:52.3173124Z 2026-10-25T00:47:52.3173450Z src/connection/storage.ts:734:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadShell")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3173454Z 2026-10-25T00:47:52.3173507Z 734 loadShell: (environmentId) => 2026-10-25T00:47:52.3173547Z ~~~~~~~~~ 2026-10-25T00:47:52.3173551Z 2026-10-25T00:47:52.3173890Z src/connection/storage.ts:770:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadServerConfig")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3173893Z 2026-10-25T00:47:52.3173952Z 770 loadServerConfig: (environmentId) => 2026-10-25T00:47:52.3173996Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3173998Z 2026-10-25T00:47:52.3174343Z src/connection/storage.ts:804:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3174346Z 2026-10-25T00:47:52.3174407Z 804 loadThread: (environmentId, threadId) => 2026-10-25T00:47:52.3174450Z ~~~~~~~~~~ 2026-10-25T00:47:52.3174452Z 2026-10-25T00:47:52.3174791Z src/connection/storage.ts:853:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3174793Z 2026-10-25T00:47:52.3174851Z 853 loadVcsRefs: (environmentId, cwd) => 2026-10-25T00:47:52.3174893Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3174896Z 2026-10-25T00:47:52.3175236Z src/connection/storage.ts:895:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3175240Z 2026-10-25T00:47:52.3175299Z 895 removeVcsRefs: (environmentId, cwd) => 2026-10-25T00:47:52.3175342Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3175344Z 2026-10-25T00:47:52.3175677Z src/connection/storage.ts:901:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clearVcsRefs")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3175729Z 2026-10-25T00:47:52.3175785Z 901 clearVcsRefs: (environmentId) => 2026-10-25T00:47:52.3175826Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3175828Z 2026-10-25T00:47:52.3176177Z src/connection/storage.ts:907:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3176179Z 2026-10-25T00:47:52.3176289Z 907 removeThread: (environmentId, threadId) => 2026-10-25T00:47:52.3176335Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3176337Z 2026-10-25T00:47:52.3176657Z src/connection/storage.ts:913:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clear")((environmentId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3176661Z 2026-10-25T00:47:52.3176711Z 913 clear: (environmentId) => 2026-10-25T00:47:52.3176752Z ~~~~~ 2026-10-25T00:47:52.3176754Z 2026-10-25T00:47:52.3176756Z 2026-10-25T00:47:52.3176806Z ~/apps/server$ tsc --noEmit 2026-10-25T00:47:52.3177056Z scripts/acp-mock-agent.ts:941:16 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain) 2026-10-25T00:47:52.3177059Z 2026-10-25T00:47:52.3177115Z 941 yield* Effect.sleep("1200 millis") 2026-10-25T00:47:52.3177165Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3177207Z 942 .pipe( 2026-10-25T00:47:52.3177249Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3177287Z ... 2026-10-25T00:47:52.3177328Z 954 ) 2026-10-25T00:47:52.3177368Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3177422Z 955 .pipe(Effect.forkDetach); 2026-10-25T00:47:52.3177471Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3177473Z 2026-10-25T00:47:52.3177777Z scripts/record-codex-app-server-replay-fixture.ts:1175:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("logger")((event) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3177780Z 2026-10-25T00:47:52.3177829Z 1175 logger: (event) => { 2026-10-25T00:47:52.3177869Z ~~~~~~ 2026-10-25T00:47:52.3177871Z 2026-10-25T00:47:52.3178296Z scripts/record-grok-acp-replay-fixture.ts:376:38 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3178298Z 2026-10-25T00:47:52.3178406Z 376 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({}); 2026-10-25T00:47:52.3178464Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3178469Z 2026-10-25T00:47:52.3178867Z src/assets/AssetAccess.test.ts:975:42 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3178870Z 2026-10-25T00:47:52.3178984Z 975 const { resource } = yield* Schema.decodeUnknownEffect(AssetCreateUrlInput)({ 2026-10-25T00:47:52.3179045Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3179048Z 2026-10-25T00:47:52.3179338Z src/auth/EnvironmentAuth.ts:1396:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentAuth.getDescriptor")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3179342Z 2026-10-25T00:47:52.3179391Z 1396 getDescriptor: () => 2026-10-25T00:47:52.3179435Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3179488Z 2026-10-25T00:47:52.3179798Z src/auth/EnvironmentAuthPolicy.ts:55:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentAuthPolicy.getDescriptor")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3179800Z 2026-10-25T00:47:52.3179848Z 55 getDescriptor: () => 2026-10-25T00:47:52.3179889Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3179891Z 2026-10-25T00:47:52.3180263Z src/auth/McpOAuth.ts:540:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpHttpServer.McpClientAuthenticator.authenticate")((request) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3180265Z 2026-10-25T00:47:52.3180317Z 540 authenticate: (request) => 2026-10-25T00:47:52.3180360Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3180362Z 2026-10-25T00:47:52.3180610Z src/cli/thread.ts:468:11 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3180614Z 2026-10-25T00:47:52.3180666Z 468 : Effect.succeed(undefined), 2026-10-25T00:47:52.3180713Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3180715Z 2026-10-25T00:47:52.3180997Z src/cloud/CliTokenManager.ts:328:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpClientError")(function*(cause) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3180999Z 2026-10-25T00:47:52.3181055Z 328 HttpClientError: (cause) => 2026-10-25T00:47:52.3181098Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3181102Z 2026-10-25T00:47:52.3181337Z src/cloud/CloudLink.lifecycle.test.ts:166:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3181340Z 2026-10-25T00:47:52.3181437Z 166 latest: Effect.succeed(Option.none()), 2026-10-25T00:47:52.3181487Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3181489Z 2026-10-25T00:47:52.3181706Z src/cloud/CloudLink.test.ts:99:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3181708Z 2026-10-25T00:47:52.3181769Z 99 latest: Effect.succeed(Option.none()), 2026-10-25T00:47:52.3181816Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3181818Z 2026-10-25T00:47:52.3182162Z src/cloud/ManagedEndpointRuntime.ts:791:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CloudManagedEndpointRuntime.requestRecovery")((config) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3182164Z 2026-10-25T00:47:52.3182292Z 791 requestRecovery: (config) => Queue.offer(recoveryRequests, config).pipe(Effect.asVoid), 2026-10-25T00:47:52.3182335Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3182338Z 2026-10-25T00:47:52.3182542Z src/cloud/http.test.ts:81:67 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3182546Z 2026-10-25T00:47:52.3182692Z 81 Layer.mock(ConnectReachability.ConnectReachability)({ latest: Effect.succeed(Option.none()) }), 2026-10-25T00:47:52.3182763Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3182765Z 2026-10-25T00:47:52.3183103Z src/cloud/selfUpdate.ts:371:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSelfUpdate.commitDesktopUpdate")((requestId, onHandoffAccepted) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3183107Z 2026-10-25T00:47:52.3183190Z 371 commitDesktopUpdate: (requestId, onHandoffAccepted) => 2026-10-25T00:47:52.3183233Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3183235Z 2026-10-25T00:47:52.3183518Z src/device/DeviceService.ts:808:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceService.updateTool")((tool) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3183578Z 2026-10-25T00:47:52.3183628Z 808 updateTool: (tool) => 2026-10-25T00:47:52.3183672Z ~~~~~~~~~~ 2026-10-25T00:47:52.3183674Z 2026-10-25T00:47:52.3183950Z src/device/DeviceService.ts:823:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceService.easAccount")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3183952Z 2026-10-25T00:47:52.3183998Z 823 easAccount: () => 2026-10-25T00:47:52.3184042Z ~~~~~~~~~~ 2026-10-25T00:47:52.3184044Z 2026-10-25T00:47:52.3184403Z src/device/EasDeviceHost.ts:868:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceHost.DeviceHost.ensureAgentReady")((onPhase) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3184405Z 2026-10-25T00:47:52.3184459Z 868 ensureAgentReady: (onPhase) => 2026-10-25T00:47:52.3184503Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3184507Z 2026-10-25T00:47:52.3184726Z src/device/easProjectId.ts:201:7 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3184728Z 2026-10-25T00:47:52.3184780Z 201 Effect.map(Option.some), 2026-10-25T00:47:52.3184822Z ~~~~~~~~~~ 2026-10-25T00:47:52.3184825Z 2026-10-25T00:47:52.3185111Z src/environment/DirectEndpoints.ts:174:31 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DirectEndpoints.resolve")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3185115Z 2026-10-25T00:47:52.3185192Z 174 return DirectEndpoints.of({ resolve: () => resolve }); 2026-10-25T00:47:52.3185241Z ~~~~~~~ 2026-10-25T00:47:52.3185244Z 2026-10-25T00:47:52.3185550Z src/environment/RemoteOpenTargets.ts:83:33 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteOpenTargets.resolveTargets")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3185555Z 2026-10-25T00:47:52.3185657Z 83 return RemoteOpenTargets.of({ resolveTargets: () => resolveTargets }); 2026-10-25T00:47:52.3185710Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3185712Z 2026-10-25T00:47:52.3186010Z src/git/GitWorkflowService.ts:302:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.isRepository")((cwd) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3186014Z 2026-10-25T00:47:52.3186064Z 302 isRepository: (cwd) => 2026-10-25T00:47:52.3186106Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3186108Z 2026-10-25T00:47:52.3186401Z src/git/GitWorkflowService.ts:315:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.hasCommit")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3186405Z 2026-10-25T00:47:52.3186454Z 315 hasCommit: (input) => 2026-10-25T00:47:52.3186494Z ~~~~~~~~~ 2026-10-25T00:47:52.3186497Z 2026-10-25T00:47:52.3186793Z src/git/GitWorkflowService.ts:327:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.hasRefNamed")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3186795Z 2026-10-25T00:47:52.3186845Z 327 hasRefNamed: (input) => 2026-10-25T00:47:52.3186886Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3186888Z 2026-10-25T00:47:52.3187174Z src/git/GitWorkflowService.ts:346:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.status")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3187177Z 2026-10-25T00:47:52.3187224Z 346 status: (input) => 2026-10-25T00:47:52.3187266Z ~~~~~~ 2026-10-25T00:47:52.3187268Z 2026-10-25T00:47:52.3187612Z src/git/GitWorkflowService.ts:352:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.localStatus")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3187614Z 2026-10-25T00:47:52.3187663Z 352 localStatus: (input) => 2026-10-25T00:47:52.3187704Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3187706Z 2026-10-25T00:47:52.3188019Z src/git/GitWorkflowService.ts:360:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.remoteStatus")((input, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3188021Z 2026-10-25T00:47:52.3188120Z 360 remoteStatus: (input, options) => 2026-10-25T00:47:52.3188162Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3188165Z 2026-10-25T00:47:52.3188473Z src/git/GitWorkflowService.ts:369:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.pullCurrentBranch")((cwd) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3188478Z 2026-10-25T00:47:52.3188528Z 369 pullCurrentBranch: (cwd) => 2026-10-25T00:47:52.3188573Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3188575Z 2026-10-25T00:47:52.3188893Z src/git/GitWorkflowService.ts:373:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.runStackedAction")((input, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3188895Z 2026-10-25T00:47:52.3188955Z 373 runStackedAction: (input, options) => 2026-10-25T00:47:52.3188999Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3189001Z 2026-10-25T00:47:52.3189325Z src/git/GitWorkflowService.ts:388:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.preparePullRequestThread")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3189327Z 2026-10-25T00:47:52.3189389Z 388 preparePullRequestThread: (input) => 2026-10-25T00:47:52.3189436Z ~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3189439Z 2026-10-25T00:47:52.3189727Z src/git/GitWorkflowService.ts:399:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.listRefs")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3189729Z 2026-10-25T00:47:52.3189777Z 399 listRefs: (input) => 2026-10-25T00:47:52.3189816Z ~~~~~~~~ 2026-10-25T00:47:52.3189818Z 2026-10-25T00:47:52.3190132Z src/git/GitWorkflowService.ts:405:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.createWorktree")((input, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3190134Z 2026-10-25T00:47:52.3190191Z 405 createWorktree: (input, options) => 2026-10-25T00:47:52.3190233Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3190235Z 2026-10-25T00:47:52.3190547Z src/git/GitWorkflowService.ts:409:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.listLocalBranchNames")((cwd) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3190552Z 2026-10-25T00:47:52.3190605Z 409 listLocalBranchNames: (cwd) => 2026-10-25T00:47:52.3190651Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3190653Z 2026-10-25T00:47:52.3190950Z src/git/GitWorkflowService.ts:413:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.fetchRemote")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3190952Z 2026-10-25T00:47:52.3191002Z 413 fetchRemote: (input) => 2026-10-25T00:47:52.3191042Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3191044Z 2026-10-25T00:47:52.3191341Z src/git/GitWorkflowService.ts:417:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.remoteExists")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3191413Z 2026-10-25T00:47:52.3191464Z 417 remoteExists: (input) => 2026-10-25T00:47:52.3191508Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3191510Z 2026-10-25T00:47:52.3191819Z src/git/GitWorkflowService.ts:421:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.remoteBranchExists")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3191821Z 2026-10-25T00:47:52.3191873Z 421 remoteBranchExists: (input) => 2026-10-25T00:47:52.3191918Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3191920Z 2026-10-25T00:47:52.3192292Z src/git/GitWorkflowService.ts:425:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.resolveRemoteTrackingCommit")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3192295Z 2026-10-25T00:47:52.3192360Z 425 resolveRemoteTrackingCommit: (input) => 2026-10-25T00:47:52.3192408Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3192411Z 2026-10-25T00:47:52.3192733Z src/git/GitWorkflowService.ts:429:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.resolveWorktreeBaseRemote")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3192735Z 2026-10-25T00:47:52.3192797Z 429 resolveWorktreeBaseRemote: (input) => 2026-10-25T00:47:52.3192843Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3192845Z 2026-10-25T00:47:52.3193164Z src/git/GitWorkflowService.ts:433:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.fetchWorktreeBaseCommit")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3193166Z 2026-10-25T00:47:52.3193226Z 433 fetchWorktreeBaseCommit: (input) => 2026-10-25T00:47:52.3193269Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3193272Z 2026-10-25T00:47:52.3193575Z src/git/GitWorkflowService.ts:437:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.removeWorktree")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3193578Z 2026-10-25T00:47:52.3193630Z 437 removeWorktree: (input) => 2026-10-25T00:47:52.3193673Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3193675Z 2026-10-25T00:47:52.3193975Z src/git/GitWorkflowService.ts:441:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.pruneWorktrees")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3193980Z 2026-10-25T00:47:52.3194031Z 441 pruneWorktrees: (input) => 2026-10-25T00:47:52.3194074Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3194076Z 2026-10-25T00:47:52.3194381Z src/git/GitWorkflowService.ts:445:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.deleteLocalBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3194385Z 2026-10-25T00:47:52.3194437Z 445 deleteLocalBranch: (input) => 2026-10-25T00:47:52.3194479Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3194481Z 2026-10-25T00:47:52.3194771Z src/git/GitWorkflowService.ts:449:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.createRef")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3194773Z 2026-10-25T00:47:52.3194822Z 449 createRef: (input) => 2026-10-25T00:47:52.3194862Z ~~~~~~~~~ 2026-10-25T00:47:52.3194864Z 2026-10-25T00:47:52.3195156Z src/git/GitWorkflowService.ts:457:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.switchRef")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3195158Z 2026-10-25T00:47:52.3195205Z 457 switchRef: (input) => 2026-10-25T00:47:52.3195245Z ~~~~~~~~~ 2026-10-25T00:47:52.3195303Z 2026-10-25T00:47:52.3195600Z src/git/GitWorkflowService.ts:463:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.renameBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3195602Z 2026-10-25T00:47:52.3195651Z 463 renameBranch: (input) => 2026-10-25T00:47:52.3195691Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3195695Z 2026-10-25T00:47:52.3195952Z src/htmlRender/headlessChrome.ts:282:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("receive")((raw) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3195954Z 2026-10-25T00:47:52.3196054Z 282 const receive = (raw: string) => { 2026-10-25T00:47:52.3196098Z ~~~~~~~ 2026-10-25T00:47:52.3196100Z 2026-10-25T00:47:52.3196473Z src/mcp/AcpMcpStdioBridge.ts:284:7 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen) 2026-10-25T00:47:52.3196477Z 2026-10-25T00:47:52.3196517Z 284 try { 2026-10-25T00:47:52.3196560Z ~~~~~ 2026-10-25T00:47:52.3196613Z 285 parsed = JSON.parse(line); 2026-10-25T00:47:52.3196661Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3196700Z ... 2026-10-25T00:47:52.3196803Z 287 return yield* respondWithError(null, "Parse error", -32700); 2026-10-25T00:47:52.3196873Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3196915Z 288 } 2026-10-25T00:47:52.3196955Z ~~~~~~~ 2026-10-25T00:47:52.3196959Z 2026-10-25T00:47:52.3197232Z src/mcp/AcpMcpStdioBridge.ts:324:7 - suggestion TS377099: `Effect.ignoreCause` expresses ignored failure more directly than `Effect.catchCause` returning `Effect.void`. effect(catchToIgnore) 2026-10-25T00:47:52.3197234Z 2026-10-25T00:47:52.3197293Z 324 Effect.catchCause(() => Effect.void), 2026-10-25T00:47:52.3197341Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3197343Z 2026-10-25T00:47:52.3197572Z src/mcp/McpDeviceToolkit.test.ts:105:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3197574Z 2026-10-25T00:47:52.3197638Z 105 getById: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3197685Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3197688Z 2026-10-25T00:47:52.3197971Z src/mcp/McpHttpServer.ts:421:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("previewSnapshotFailure")((cause) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3197973Z 2026-10-25T00:47:52.3198067Z 421 const previewSnapshotFailure = (cause: Cause.Cause) => { 2026-10-25T00:47:52.3198111Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3198115Z 2026-10-25T00:47:52.3198451Z src/mcp/McpHttpServer.ts:938:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpServer.McpServer.addTool")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3198456Z 2026-10-25T00:47:52.3198506Z 938 addTool: (options) => 2026-10-25T00:47:52.3198548Z ~~~~~~~ 2026-10-25T00:47:52.3198550Z 2026-10-25T00:47:52.3198829Z src/mcp/McpSessionRegistry.testkit.ts:22:20 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3198831Z 2026-10-25T00:47:52.3198890Z 22 resolve: () => Effect.succeed(undefined), 2026-10-25T00:47:52.3198943Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3198946Z 2026-10-25T00:47:52.3199234Z src/mcp/McpToolAccess.ts:112:7 - suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen) 2026-10-25T00:47:52.3199313Z 2026-10-25T00:47:52.3199372Z 112 Effect.flatMap(() => writingCaller), 2026-10-25T00:47:52.3199415Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3199418Z 2026-10-25T00:47:52.3199919Z src/mcp/OrchestratorMcpService.ts:2465:39 - suggestion TS377088: This generator applies the same inline `Effect.mapError(...)` to every yielded effect. Keep that `Effect.mapError(...)` inline and hoist it once to the generator result: `Effect.gen(...).pipe(Effect.mapError(...))`, or `Effect.fn(function*(){ ... }, Effect.mapError(...))`. effect(redundantMapError) 2026-10-25T00:47:52.3199924Z 2026-10-25T00:47:52.3199995Z 2465 const cancelOrphan = Effect.gen(function* () { 2026-10-25T00:47:52.3200105Z ~~~~~~~~~ 2026-10-25T00:47:52.3200107Z 2026-10-25T00:47:52.3200344Z src/mcp/OrchestratorMcpService.ts:2480:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError) 2026-10-25T00:47:52.3200429Z 2480 .pipe(Effect.mapError(threadManagementFailure)); 2026-10-25T00:47:52.3200476Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3200478Z 2026-10-25T00:47:52.3200709Z src/mcp/OrchestratorMcpService.ts:2483:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError) 2026-10-25T00:47:52.3200789Z 2483 .pipe(Effect.mapError(threadManagementFailure)); 2026-10-25T00:47:52.3200836Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3200838Z 2026-10-25T00:47:52.3201115Z src/mcp/PreviewAutomationBroker.ts:664:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3201118Z 2026-10-25T00:47:52.3201163Z 664 onNone: () => 2026-10-25T00:47:52.3201207Z ~~~~~~ 2026-10-25T00:47:52.3201209Z 2026-10-25T00:47:52.3201449Z src/mcp/WorktreeMcpService.test.ts:355:3 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen) 2026-10-25T00:47:52.3201453Z 2026-10-25T00:47:52.3201504Z 355 Effect.gen(function* () { 2026-10-25T00:47:52.3201546Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3201632Z 356 return yield* WorktreeMcpService.WorktreeMcpService; 2026-10-25T00:47:52.3201694Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3201754Z 357 }).pipe(Effect.provide(harness.layer)); 2026-10-25T00:47:52.3201796Z ~~~~ 2026-10-25T00:47:52.3201798Z 2026-10-25T00:47:52.3202072Z src/mcp/toolkits/pullRequests/handlers.ts:217:27 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain) 2026-10-25T00:47:52.3202075Z 2026-10-25T00:47:52.3202126Z 217 const thread = yield* engine 2026-10-25T00:47:52.3202172Z ~~~~~~ 2026-10-25T00:47:52.3202221Z 218 .getThreadShell(threadId) 2026-10-25T00:47:52.3202269Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3202335Z 219 .pipe(Effect.map(Option.fromNullishOr)) 2026-10-25T00:47:52.3202388Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3202475Z 220 .pipe(Effect.mapError((cause) => new Failure({ cause }))); 2026-10-25T00:47:52.3202542Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3202545Z 2026-10-25T00:47:52.3202832Z src/mcpApps/McpAppModelContext.ts:96:27 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpAppModelContext.set")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3202836Z 2026-10-25T00:47:52.3202958Z 96 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }), 2026-10-25T00:47:52.3203005Z ~~~ 2026-10-25T00:47:52.3203007Z 2026-10-25T00:47:52.3203301Z src/mcpApps/McpAppModelContext.ts:96:51 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpAppModelContext.forThread")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3203356Z 2026-10-25T00:47:52.3203473Z 96 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }), 2026-10-25T00:47:52.3203535Z ~~~~~~~~~ 2026-10-25T00:47:52.3203538Z 2026-10-25T00:47:52.3203861Z src/observability/BrowserTraceCollector.ts:16:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BrowserTraceCollector.record")((records) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3203906Z 2026-10-25T00:47:52.3203955Z 16 record: (records) => 2026-10-25T00:47:52.3203995Z ~~~~~~ 2026-10-25T00:47:52.3203997Z 2026-10-25T00:47:52.3204273Z src/observability/EventLoopMonitor.ts:41:49 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3204277Z 2026-10-25T00:47:52.3204379Z 41 defaultValue: () => ({ latestNoticeableStall: Effect.succeed(undefined) }), 2026-10-25T00:47:52.3204444Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3204446Z 2026-10-25T00:47:52.3204902Z src/orchestration-v2/Adapters/AcpRegistryAdapterV2.testkit.ts:30:32 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3204904Z 2026-10-25T00:47:52.3205007Z 30 const REPLAY_SETTINGS = Schema.decodeUnknownSync(AcpRegistrySettings)({ 2026-10-25T00:47:52.3205060Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3205063Z 2026-10-25T00:47:52.3205372Z src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:48:17 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3205376Z 2026-10-25T00:47:52.3205436Z 48 defaultModel: Effect.succeed(undefined), 2026-10-25T00:47:52.3205485Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3205488Z 2026-10-25T00:47:52.3205795Z src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:169:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3205797Z 2026-10-25T00:47:52.3205865Z 169 defaultModel: Effect.succeed(undefined), 2026-10-25T00:47:52.3205918Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3205920Z 2026-10-25T00:47:52.3206228Z src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:306:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3206232Z 2026-10-25T00:47:52.3206297Z 306 defaultModel: Effect.succeed(undefined), 2026-10-25T00:47:52.3206347Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3206350Z 2026-10-25T00:47:52.3206657Z src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:542:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3206660Z 2026-10-25T00:47:52.3206723Z 542 defaultModel: Effect.succeed(undefined), 2026-10-25T00:47:52.3206775Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3206777Z 2026-10-25T00:47:52.3207116Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:976:26 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3207165Z 2026-10-25T00:47:52.3207226Z 976 const controller = new AbortController(); 2026-10-25T00:47:52.3207279Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3207281Z 2026-10-25T00:47:52.3207574Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1328:37 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain) 2026-10-25T00:47:52.3207576Z 2026-10-25T00:47:52.3207645Z 1328 const requestEvent = yield* runtime.events 2026-10-25T00:47:52.3207698Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3207744Z 1329 .pipe( 2026-10-25T00:47:52.3207837Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3207880Z ... 2026-10-25T00:47:52.3207921Z 1332 ) 2026-10-25T00:47:52.3207963Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3208019Z 1333 .pipe(Effect.forkScoped); 2026-10-25T00:47:52.3208068Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3208071Z 2026-10-25T00:47:52.3208410Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1334:28 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3208415Z 2026-10-25T00:47:52.3208481Z 1334 const controller = new AbortController(); 2026-10-25T00:47:52.3208535Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3208538Z 2026-10-25T00:47:52.3208873Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1357:37 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3208876Z 2026-10-25T00:47:52.3208958Z 1357 const cancelledController = new AbortController(); 2026-10-25T00:47:52.3209016Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3209020Z 2026-10-25T00:47:52.3209385Z src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4034:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3209388Z 2026-10-25T00:47:52.3209492Z 4034 getCapabilities: () => Effect.succeed(ClaudeProviderCapabilitiesV2), 2026-10-25T00:47:52.3209538Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3209540Z 2026-10-25T00:47:52.3209922Z src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4035:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3209925Z 2026-10-25T00:47:52.3210046Z 4035 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()), 2026-10-25T00:47:52.3210094Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3210098Z 2026-10-25T00:47:52.3210455Z src/orchestration-v2/Adapters/ClaudeAgentSdkQueryRunner.test.ts:201:17 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3210457Z 2026-10-25T00:47:52.3210518Z 201 signal: new AbortController().signal, 2026-10-25T00:47:52.3210566Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3210568Z 2026-10-25T00:47:52.3210960Z src/orchestration-v2/Adapters/ClaudeTaskOutputTail.ts:74:17 - suggestion TS377121: This Effect first-completion race has exactly one sleep- or delay-based timer arm. `Effect.timeoutOrElse` expresses the timeout and fallback directly. effect(raceFirstWithSleepToTimeout) 2026-10-25T00:47:52.3210964Z 2026-10-25T00:47:52.3211017Z 74 const pause = Effect.raceFirst( 2026-10-25T00:47:52.3211064Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3211066Z 2026-10-25T00:47:52.3211361Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:1741:25 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3211442Z 2026-10-25T00:47:52.3211550Z 1741 threadId === null ? Effect.succeed(undefined) : mcpSessions.read(threadId); 2026-10-25T00:47:52.3211605Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3211607Z 2026-10-25T00:47:52.3212018Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:1748:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3212021Z 2026-10-25T00:47:52.3212125Z 1748 getCapabilities: () => Effect.succeed(CodexProviderCapabilitiesV2), 2026-10-25T00:47:52.3212170Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3212172Z 2026-10-25T00:47:52.3212549Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:1749:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3212553Z 2026-10-25T00:47:52.3212671Z 1749 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()), 2026-10-25T00:47:52.3212716Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3212718Z 2026-10-25T00:47:52.3213034Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:3045:19 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed) 2026-10-25T00:47:52.3213038Z 2026-10-25T00:47:52.3213111Z 3045 Effect.catch(() => Effect.succeed(null)), 2026-10-25T00:47:52.3213158Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3213160Z 2026-10-25T00:47:52.3213532Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:3046:19 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3213538Z 2026-10-25T00:47:52.3213597Z 3046 Effect.flatMap((response) => 2026-10-25T00:47:52.3213645Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3213647Z 2026-10-25T00:47:52.3213928Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:3068:19 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore) 2026-10-25T00:47:52.3213930Z 2026-10-25T00:47:52.3213995Z 3068 Effect.catch(() => Effect.void), 2026-10-25T00:47:52.3214039Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3214041Z 2026-10-25T00:47:52.3214402Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:7268:26 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3214407Z 2026-10-25T00:47:52.3214489Z 7268 return yield* Effect.fail(failedTermination.error); 2026-10-25T00:47:52.3214535Z ~~~~~ 2026-10-25T00:47:52.3214537Z 2026-10-25T00:47:52.3214971Z src/orchestration-v2/Adapters/GrokAdapterV2.testkit.ts:33:38 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3214973Z 2026-10-25T00:47:52.3215076Z 33 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({}); 2026-10-25T00:47:52.3215134Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3215137Z 2026-10-25T00:47:52.3215566Z src/orchestration-v2/Adapters/MuseAdapterV2.testkit.ts:414:38 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3215635Z 2026-10-25T00:47:52.3215762Z 414 const DEFAULT_MUSE_SETTINGS = Schema.decodeUnknownSync(MuseSettings)({ enabled: true }); 2026-10-25T00:47:52.3215819Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3215821Z 2026-10-25T00:47:52.3216213Z src/orchestration-v2/CheckpointCaptureService.ts:242:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CheckpointCaptureServiceV2.execute")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3216215Z 2026-10-25T00:47:52.3216264Z 242 execute: (input) => 2026-10-25T00:47:52.3216306Z ~~~~~~~ 2026-10-25T00:47:52.3216309Z 2026-10-25T00:47:52.3216571Z src/orchestration-v2/CheckpointRestoreSafety.test.ts:104:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3216575Z 2026-10-25T00:47:52.3216683Z 104 get: () => Effect.succeed(Option.some({ workspaceRoot: parent } as never)), 2026-10-25T00:47:52.3216730Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3216734Z 2026-10-25T00:47:52.3217088Z src/orchestration-v2/CheckpointRestoreSafety.ts:41:13 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3217091Z 2026-10-25T00:47:52.3217144Z 41 Effect.catch((error) => 2026-10-25T00:47:52.3217189Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3217191Z 2026-10-25T00:47:52.3217534Z src/orchestration-v2/CheckpointRestoreSafety.ts:83:17 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3217539Z 2026-10-25T00:47:52.3217592Z 83 Effect.catch((error) => 2026-10-25T00:47:52.3217637Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3217639Z 2026-10-25T00:47:52.3217905Z src/orchestration-v2/CheckpointRollbackService.test.ts:233:22 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3217908Z 2026-10-25T00:47:52.3218008Z 233 return Effect.succeed(Option.some({ workspaceRoot } as never)); 2026-10-25T00:47:52.3218056Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3218060Z 2026-10-25T00:47:52.3218420Z src/orchestration-v2/ClaudeAutomaticDelivery.integration.test.ts:142:28 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect) 2026-10-25T00:47:52.3218426Z 2026-10-25T00:47:52.3218492Z 142 const batchAbort = new AbortController(); 2026-10-25T00:47:52.3218549Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3218551Z 2026-10-25T00:47:52.3218919Z src/orchestration-v2/CommandOutputHub.test.ts:168:5 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3218922Z 2026-10-25T00:47:52.3218974Z 168 Effect.flatMap((frame) => 2026-10-25T00:47:52.3219017Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3219020Z 2026-10-25T00:47:52.3219266Z src/orchestration-v2/CommandReceiptStore.ts:164:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3219268Z 2026-10-25T00:47:52.3219341Z 164 onNone: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3219392Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3219444Z 2026-10-25T00:47:52.3219687Z src/orchestration-v2/CommandReceiptStore.ts:167:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3219689Z 2026-10-25T00:47:52.3219750Z 167 ? Effect.succeed(Option.none()) 2026-10-25T00:47:52.3219798Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3219800Z 2026-10-25T00:47:52.3220047Z src/orchestration-v2/CommandReceiptStore.ts:168:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3220049Z 2026-10-25T00:47:52.3220196Z 168 : fromApplicationReceipt(receipt).pipe(Effect.map(Option.some)), 2026-10-25T00:47:52.3220261Z ~~~~~~~~~~ 2026-10-25T00:47:52.3220264Z 2026-10-25T00:47:52.3220502Z src/orchestration-v2/CommandReceiptStore.ts:183:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3220506Z 2026-10-25T00:47:52.3220566Z 183 ? Effect.succeed(Option.none()) 2026-10-25T00:47:52.3220614Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3220617Z 2026-10-25T00:47:52.3220861Z src/orchestration-v2/CommandReceiptStore.ts:192:25 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3220863Z 2026-10-25T00:47:52.3220925Z 192 }).pipe(Effect.map(Option.some)), 2026-10-25T00:47:52.3220973Z ~~~~~~~~~~ 2026-10-25T00:47:52.3220975Z 2026-10-25T00:47:52.3221204Z src/orchestration-v2/EffectOutbox.ts:429:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3221207Z 2026-10-25T00:47:52.3221267Z 429 ? Effect.succeed(Option.none()) 2026-10-25T00:47:52.3221315Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3221317Z 2026-10-25T00:47:52.3221582Z src/orchestration-v2/EffectOutbox.ts:430:39 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3221587Z 2026-10-25T00:47:52.3221664Z 430 : rowToEffect(row).pipe(Effect.map(Option.some)); 2026-10-25T00:47:52.3221718Z ~~~~~~~~~~ 2026-10-25T00:47:52.3221720Z 2026-10-25T00:47:52.3221963Z src/orchestration-v2/EffectWorker.test.ts:107:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3221965Z 2026-10-25T00:47:52.3222028Z 107 get: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3222074Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3222077Z 2026-10-25T00:47:52.3222312Z src/orchestration-v2/EffectWorker.test.ts:302:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3222316Z 2026-10-25T00:47:52.3222403Z 302 claimNext: () => Effect.succeed(Option.some(claimedEffect)), 2026-10-25T00:47:52.3222453Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3222455Z 2026-10-25T00:47:52.3222693Z src/orchestration-v2/EffectWorker.test.ts:369:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3222695Z 2026-10-25T00:47:52.3222779Z 369 claimNext: () => Effect.succeed(Option.some(claimedEffect)), 2026-10-25T00:47:52.3222827Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3222829Z 2026-10-25T00:47:52.3223063Z src/orchestration-v2/EffectWorker.test.ts:436:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3223117Z 2026-10-25T00:47:52.3223201Z 436 claimNext: () => Effect.succeed(Option.some(claimedEffect)), 2026-10-25T00:47:52.3223248Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3223250Z 2026-10-25T00:47:52.3223483Z src/orchestration-v2/EffectWorker.test.ts:437:18 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3223485Z 2026-10-25T00:47:52.3223562Z 437 get: () => Effect.succeed(Option.some(claimedEffect)), 2026-10-25T00:47:52.3223608Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3223611Z 2026-10-25T00:47:52.3223997Z src/orchestration-v2/EffectWorker.ts:98:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestrationEffectExecutorV2.execute")((effect, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3223999Z 2026-10-25T00:47:52.3224054Z 98 execute: (effect, options) => { 2026-10-25T00:47:52.3224097Z ~~~~~~~ 2026-10-25T00:47:52.3224100Z 2026-10-25T00:47:52.3224431Z src/orchestration-v2/EffectWorker.ts:180:17 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3224433Z 2026-10-25T00:47:52.3224489Z 180 Effect.catch((cause) => 2026-10-25T00:47:52.3224535Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3224537Z 2026-10-25T00:47:52.3224824Z src/orchestration-v2/EventStore.ts:110:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EventStoreV2.append")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3224828Z 2026-10-25T00:47:52.3224876Z 110 append: (input) => 2026-10-25T00:47:52.3224919Z ~~~~~~ 2026-10-25T00:47:52.3224921Z 2026-10-25T00:47:52.3225231Z src/orchestration-v2/EventStore.ts:120:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EventStoreV2.appendProjectEvent")((event) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3225234Z 2026-10-25T00:47:52.3225291Z 120 appendProjectEvent: (event) => 2026-10-25T00:47:52.3225333Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3225336Z 2026-10-25T00:47:52.3225633Z src/orchestration-v2/EventStore.ts:131:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EventStoreV2.latestSequence")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3225635Z 2026-10-25T00:47:52.3225687Z 131 latestSequence: (input) => 2026-10-25T00:47:52.3225734Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3225736Z 2026-10-25T00:47:52.3225995Z src/orchestration-v2/FoundationPersistence.test.ts:1791:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3225999Z 2026-10-25T00:47:52.3226089Z 1791 claimNext: () => Effect.succeed(Option.some(claimedEffect)), 2026-10-25T00:47:52.3226140Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3226142Z 2026-10-25T00:47:52.3226400Z src/orchestration-v2/FoundationPersistence.test.ts:1793:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3226403Z 2026-10-25T00:47:52.3226449Z 1793 Effect.succeed( 2026-10-25T00:47:52.3226493Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3226496Z 2026-10-25T00:47:52.3226751Z src/orchestration-v2/FoundationPersistence.test.ts:2663:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3226753Z 2026-10-25T00:47:52.3226835Z 2663 nextClaimableAt: Effect.succeed(Option.none()), 2026-10-25T00:47:52.3226889Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3226941Z 2026-10-25T00:47:52.3227201Z src/orchestration-v2/FoundationPersistence.test.ts:2880:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3227203Z 2026-10-25T00:47:52.3227279Z 2880 nextClaimableAt: Effect.succeed(Option.none()), 2026-10-25T00:47:52.3265618Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3265632Z 2026-10-25T00:47:52.3266179Z src/orchestration-v2/Orchestrator.ts:11814:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3266183Z 2026-10-25T00:47:52.3266244Z 11814 Effect.flatMap((planned) => 2026-10-25T00:47:52.3266290Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3266294Z 2026-10-25T00:47:52.3266702Z src/orchestration-v2/Orchestrator.ts:12242:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.restartContinuationPending")((run) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3266709Z 2026-10-25T00:47:52.3266777Z 12242 restartContinuationPending: (run) => 2026-10-25T00:47:52.3266824Z ~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3266827Z 2026-10-25T00:47:52.3267159Z src/orchestration-v2/Orchestrator.ts:12244:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.awaitRestartContinuation")((run) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3267162Z 2026-10-25T00:47:52.3267223Z 12244 awaitRestartContinuation: (run) => 2026-10-25T00:47:52.3267270Z ~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3267272Z 2026-10-25T00:47:52.3267669Z src/orchestration-v2/Orchestrator.ts:12247:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.autoArmLimitRecovery")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3267674Z 2026-10-25T00:47:52.3267759Z 12247 autoArmLimitRecovery: (input) => 2026-10-25T00:47:52.3267807Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3267809Z 2026-10-25T00:47:52.3268116Z src/orchestration-v2/Orchestrator.ts:12275:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.searchThread")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3268119Z 2026-10-25T00:47:52.3268169Z 12275 searchThread: (input) => 2026-10-25T00:47:52.3268212Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3268214Z 2026-10-25T00:47:52.3268609Z src/orchestration-v2/Orchestrator.ts:12283:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadHistoryPage")((threadId, cursor, throughEntryId, conversationOnly) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3268612Z 2026-10-25T00:47:52.3268734Z 12283 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) => 2026-10-25T00:47:52.3268777Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3268779Z 2026-10-25T00:47:52.3269112Z src/orchestration-v2/Orchestrator.ts:12287:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3269114Z 2026-10-25T00:47:52.3269178Z 12287 getTimelinePage: (threadId, options) => 2026-10-25T00:47:52.3269222Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3269224Z 2026-10-25T00:47:52.3269541Z src/orchestration-v2/Orchestrator.ts:12291:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3269544Z 2026-10-25T00:47:52.3269597Z 12291 getMessageCount: (threadId) => 2026-10-25T00:47:52.3269723Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3269725Z 2026-10-25T00:47:52.3270030Z src/orchestration-v2/Orchestrator.ts:12295:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3270032Z 2026-10-25T00:47:52.3270083Z 12295 getTurnItem: (input) => 2026-10-25T00:47:52.3270125Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3270128Z 2026-10-25T00:47:52.3270515Z src/orchestration-v2/Orchestrator.ts:12303:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3270518Z 2026-10-25T00:47:52.3270593Z 12303 getThreadRecords: (threadId, fields, filter) => 2026-10-25T00:47:52.3270638Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3270640Z 2026-10-25T00:47:52.3270961Z src/orchestration-v2/Orchestrator.ts:12307:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadProjection")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3270965Z 2026-10-25T00:47:52.3271025Z 12307 getThreadProjection: (threadId) => 2026-10-25T00:47:52.3271068Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3271070Z 2026-10-25T00:47:52.3271429Z src/orchestration-v2/Orchestrator.ts:12311:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getCheckpointContext")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3271431Z 2026-10-25T00:47:52.3271493Z 12311 getCheckpointContext: (threadId) => 2026-10-25T00:47:52.3271537Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3271540Z 2026-10-25T00:47:52.3271858Z src/orchestration-v2/Orchestrator.ts:12315:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshot")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3271862Z 2026-10-25T00:47:52.3271939Z 12315 getThreadSnapshot: (threadId) => 2026-10-25T00:47:52.3271984Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3271987Z 2026-10-25T00:47:52.3272333Z src/orchestration-v2/Orchestrator.ts:12319:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshotWindow")((threadId, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3272336Z 2026-10-25T00:47:52.3272411Z 12319 getThreadSnapshotWindow: (threadId, options) => 2026-10-25T00:47:52.3272457Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3272461Z 2026-10-25T00:47:52.3272775Z src/orchestration-v2/Orchestrator.ts:12323:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3272779Z 2026-10-25T00:47:52.3272834Z 12323 getShellSnapshot: (options) => 2026-10-25T00:47:52.3272878Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3272880Z 2026-10-25T00:47:52.3273207Z src/orchestration-v2/Orchestrator.ts:12325:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.listActiveSubagentThreadIds")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3273209Z 2026-10-25T00:47:52.3273270Z 12325 listActiveSubagentThreadIds: () => 2026-10-25T00:47:52.3273317Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3273319Z 2026-10-25T00:47:52.3273637Z src/orchestration-v2/Orchestrator.ts:12327:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.readShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3273639Z 2026-10-25T00:47:52.3273693Z 12327 readShellSnapshot: (options) => 2026-10-25T00:47:52.3273796Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3273798Z 2026-10-25T00:47:52.3274110Z src/orchestration-v2/Orchestrator.ts:12334:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadShell")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3274113Z 2026-10-25T00:47:52.3274164Z 12334 getThreadShell: (threadId) => 2026-10-25T00:47:52.3274208Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3274210Z 2026-10-25T00:47:52.3274591Z src/orchestration-v2/Orchestrator.ts:12338:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadEventSequence")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3274594Z 2026-10-25T00:47:52.3274657Z 12338 getThreadEventSequence: (threadId) => 2026-10-25T00:47:52.3274701Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3274704Z 2026-10-25T00:47:52.3275037Z src/orchestration-v2/ProjectSettingsUpgrade.integration.test.ts:160:28 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3275040Z 2026-10-25T00:47:52.3275110Z 160 getInstance: () => Effect.succeed(undefined), 2026-10-25T00:47:52.3275166Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3275168Z 2026-10-25T00:47:52.3275474Z src/orchestration-v2/ProjectStore.ts:269:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectStoreV2.getShell")((projectId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3275478Z 2026-10-25T00:47:52.3275590Z 269 getShell: (projectId) => get(projectId).pipe(Effect.map(Option.map(toShell))), 2026-10-25T00:47:52.3275632Z ~~~~~~~~ 2026-10-25T00:47:52.3275634Z 2026-10-25T00:47:52.3275938Z src/orchestration-v2/ProjectStore.ts:270:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectStoreV2.listShells")((options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3275942Z 2026-10-25T00:47:52.3275992Z 270 listShells: (options) => 2026-10-25T00:47:52.3276034Z ~~~~~~~~~~ 2026-10-25T00:47:52.3276036Z 2026-10-25T00:47:52.3276299Z src/orchestration-v2/ProjectionControlReads.test.ts:279:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3276302Z 2026-10-25T00:47:52.3276350Z 279 Effect.succeed( 2026-10-25T00:47:52.3276395Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3276397Z 2026-10-25T00:47:52.3276736Z src/orchestration-v2/ProviderAdapterRegistry.ts:78:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapterRegistryV2.get")((instanceId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3276739Z 2026-10-25T00:47:52.3276788Z 78 get: (instanceId) => 2026-10-25T00:47:52.3276828Z ~~~ 2026-10-25T00:47:52.3276830Z 2026-10-25T00:47:52.3277151Z src/orchestration-v2/ProviderAdapterRegistry.ts:135:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapterRegistryV2.list")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3277153Z 2026-10-25T00:47:52.3277197Z 135 list: () => 2026-10-25T00:47:52.3277238Z ~~~~ 2026-10-25T00:47:52.3277240Z 2026-10-25T00:47:52.3277573Z src/orchestration-v2/ProviderEventIngestor.ts:117:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderTurnAnalytics.record")((properties) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3277576Z 2026-10-25T00:47:52.3277662Z 117 record: (properties: Readonly>) => 2026-10-25T00:47:52.3277702Z ~~~~~~ 2026-10-25T00:47:52.3277704Z 2026-10-25T00:47:52.3278080Z src/orchestration-v2/ProviderEventIngestor.ts:843:15 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3278126Z 2026-10-25T00:47:52.3278187Z 843 Effect.flatMap((storedEvents) => 2026-10-25T00:47:52.3278230Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3278233Z 2026-10-25T00:47:52.3278588Z src/orchestration-v2/ProviderSessionManager.test.ts:1155:19 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3278590Z 2026-10-25T00:47:52.3278774Z 1155 : Effect.succeed(Option.some(makeBrowserAccessProject(requestedProjectId))), 2026-10-25T00:47:52.3278824Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3278827Z 2026-10-25T00:47:52.3279092Z src/orchestration-v2/ProviderTurnStartService.test.ts:150:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3279096Z 2026-10-25T00:47:52.3279143Z 150 Effect.succeed( 2026-10-25T00:47:52.3279186Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3279189Z 2026-10-25T00:47:52.3279447Z src/orchestration-v2/ProviderTurnStartService.test.ts:703:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3279449Z 2026-10-25T00:47:52.3279583Z 703 Effect.succeed(Option.some({ workspaceRoot: "/tmp/native-account-project" } as never)), 2026-10-25T00:47:52.3279628Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3279630Z 2026-10-25T00:47:52.3279895Z src/orchestration-v2/ProviderTurnStartService.testkit.ts:14:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3279897Z 2026-10-25T00:47:52.3279966Z 14 getById: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3280012Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3280014Z 2026-10-25T00:47:52.3280311Z src/orchestration-v2/ProviderTurnStartService.ts:205:39 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3280313Z 2026-10-25T00:47:52.3280393Z 205 Effect.catchCause(() => Effect.succeed(undefined)), 2026-10-25T00:47:52.3280454Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3280457Z 2026-10-25T00:47:52.3280843Z src/orchestration-v2/ProviderTurnStartService.ts:512:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3280846Z 2026-10-25T00:47:52.3280902Z 512 Effect.catchCause((cause) => 2026-10-25T00:47:52.3280952Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3280954Z 2026-10-25T00:47:52.3281396Z src/orchestration-v2/ProviderTurnStartService.ts:1302:7 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen) 2026-10-25T00:47:52.3281399Z 2026-10-25T00:47:52.3281459Z 1302 return runExecution.startRootRun({ 2026-10-25T00:47:52.3281502Z ~~~~~~ 2026-10-25T00:47:52.3281505Z 2026-10-25T00:47:52.3281764Z src/orchestration-v2/PullRequestWatchReactor.ts:478:53 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3281767Z 2026-10-25T00:47:52.3281866Z 478 ? pullRequests.activity(reference).pipe(Effect.map(Option.some)) 2026-10-25T00:47:52.3281928Z ~~~~~~~~~~ 2026-10-25T00:47:52.3281992Z 2026-10-25T00:47:52.3282356Z src/orchestration-v2/ResourceCleanupService.ts:49:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupScheduledTasks")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3282359Z 2026-10-25T00:47:52.3282430Z 49 cleanupScheduledTasks: (threadId: ThreadId) => 2026-10-25T00:47:52.3282475Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3282478Z 2026-10-25T00:47:52.3282865Z src/orchestration-v2/ResourceCleanupService.ts:58:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupTerminals")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3282868Z 2026-10-25T00:47:52.3282929Z 58 cleanupTerminals: (threadId: string) => 2026-10-25T00:47:52.3282973Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3282975Z 2026-10-25T00:47:52.3283325Z src/orchestration-v2/ResourceCleanupService.ts:66:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupPreviews")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3283328Z 2026-10-25T00:47:52.3283387Z 66 cleanupPreviews: (threadId: string) => 2026-10-25T00:47:52.3283431Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3283433Z 2026-10-25T00:47:52.3283797Z src/orchestration-v2/ResourceCleanupService.ts:74:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupAttachments")((attachmentIds) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3283800Z 2026-10-25T00:47:52.3283889Z 74 cleanupAttachments: (attachmentIds: ReadonlyArray) => 2026-10-25T00:47:52.3283933Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3283935Z 2026-10-25T00:47:52.3284196Z src/orchestration-v2/RunExecutionService.test.ts:1836:16 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome) 2026-10-25T00:47:52.3284200Z 2026-10-25T00:47:52.3284258Z 1836 ).pipe(Effect.map(Option.some)), 2026-10-25T00:47:52.3284301Z ~~~~~~~~~~ 2026-10-25T00:47:52.3284304Z 2026-10-25T00:47:52.3284674Z src/orchestration-v2/RunExecutionService.ts:945:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3284677Z 2026-10-25T00:47:52.3284736Z 945 Effect.catchCause((cause) => 2026-10-25T00:47:52.3284781Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3284784Z 2026-10-25T00:47:52.3285022Z src/orchestration-v2/RuntimePolicy.test.ts:90:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3285027Z 2026-10-25T00:47:52.3285072Z 90 Effect.succeed( 2026-10-25T00:47:52.3285115Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3285117Z 2026-10-25T00:47:52.3285415Z src/orchestration-v2/RuntimePolicy.ts:54:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RuntimePolicyV2.resolve")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3285417Z 2026-10-25T00:47:52.3285463Z 54 resolve: (input) => 2026-10-25T00:47:52.3285504Z ~~~~~~~ 2026-10-25T00:47:52.3285507Z 2026-10-25T00:47:52.3285761Z src/orchestration-v2/RuntimeRequestService.test.ts:29:7 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3285764Z 2026-10-25T00:47:52.3285809Z 29 Effect.succeed( 2026-10-25T00:47:52.3285851Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3285853Z 2026-10-25T00:47:52.3286103Z src/orchestration-v2/ThreadLaunchService.test.ts:189:33 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3286151Z 2026-10-25T00:47:52.3286245Z 189 getByWorkspaceRoot: () => Effect.succeed(Option.some(project)), 2026-10-25T00:47:52.3286297Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3286299Z 2026-10-25T00:47:52.3286548Z src/orchestration-v2/ThreadLaunchService.test.ts:220:32 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3286550Z 2026-10-25T00:47:52.3286632Z 220 folderForThread: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3286724Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3286726Z 2026-10-25T00:47:52.3287053Z src/orchestration-v2/ThreadLifecycleService.ts:91:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.archive")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3287059Z 2026-10-25T00:47:52.3287105Z 91 archive: (input) => 2026-10-25T00:47:52.3287147Z ~~~~~~~ 2026-10-25T00:47:52.3287150Z 2026-10-25T00:47:52.3287477Z src/orchestration-v2/ThreadLifecycleService.ts:97:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.unarchive")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3287480Z 2026-10-25T00:47:52.3287528Z 97 unarchive: (input) => 2026-10-25T00:47:52.3287568Z ~~~~~~~~~ 2026-10-25T00:47:52.3287570Z 2026-10-25T00:47:52.3287894Z src/orchestration-v2/ThreadLifecycleService.ts:103:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.delete")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3287897Z 2026-10-25T00:47:52.3287942Z 103 delete: (input) => 2026-10-25T00:47:52.3287982Z ~~~~~~ 2026-10-25T00:47:52.3287986Z 2026-10-25T00:47:52.3288326Z src/orchestration-v2/ThreadLifecycleService.ts:109:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.updateMetadata")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3288329Z 2026-10-25T00:47:52.3288379Z 109 updateMetadata: (input) => 2026-10-25T00:47:52.3288421Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3288424Z 2026-10-25T00:47:52.3288764Z src/orchestration-v2/ThreadLifecycleService.ts:118:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.setRuntimeMode")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3288766Z 2026-10-25T00:47:52.3288816Z 118 setRuntimeMode: (input) => 2026-10-25T00:47:52.3288857Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3288859Z 2026-10-25T00:47:52.3289205Z src/orchestration-v2/ThreadLifecycleService.ts:125:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.setInteractionMode")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3289210Z 2026-10-25T00:47:52.3289264Z 125 setInteractionMode: (input) => 2026-10-25T00:47:52.3289307Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3289310Z 2026-10-25T00:47:52.3289654Z src/orchestration-v2/ThreadLifecycleService.ts:132:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.setModelSelection")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3289656Z 2026-10-25T00:47:52.3289710Z 132 setModelSelection: (input) => 2026-10-25T00:47:52.3289752Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3289754Z 2026-10-25T00:47:52.3290130Z src/orchestration-v2/ThreadManagementService.ts:717:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3290182Z 2026-10-25T00:47:52.3290238Z 717 Effect.flatMap((projection) => 2026-10-25T00:47:52.3290280Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3290283Z 2026-10-25T00:47:52.3290562Z src/orchestration-v2/ThreadManagementService.ts:734:5 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain) 2026-10-25T00:47:52.3290566Z 2026-10-25T00:47:52.3290632Z 734 ensureProjectionTranscript(input.threadId) 2026-10-25T00:47:52.3290685Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3290856Z 735 .pipe(Effect.andThen(orchestrator.getThreadRecords(input.threadId, fields, filter))) 2026-10-25T00:47:52.3290941Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3290980Z ... 2026-10-25T00:47:52.3291020Z 754 ), 2026-10-25T00:47:52.3291062Z ~~~~~~~~~~ 2026-10-25T00:47:52.3291100Z 755 ); 2026-10-25T00:47:52.3291141Z ~~~~~~~ 2026-10-25T00:47:52.3291144Z 2026-10-25T00:47:52.3291544Z src/orchestration-v2/ThreadManagementService.ts:745:9 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3291547Z 2026-10-25T00:47:52.3291603Z 745 Effect.flatMap((projection) => 2026-10-25T00:47:52.3291645Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3291647Z 2026-10-25T00:47:52.3292012Z src/orchestration-v2/ThreadManagementService.ts:1208:43 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3292016Z 2026-10-25T00:47:52.3292111Z 1208 if (failures[0] !== undefined) return yield* Effect.fail(failures[0]); 2026-10-25T00:47:52.3292167Z ~~~~~ 2026-10-25T00:47:52.3292170Z 2026-10-25T00:47:52.3292514Z src/orchestration-v2/ThreadManagementService.ts:1219:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.searchThread")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3292516Z 2026-10-25T00:47:52.3292566Z 1219 searchThread: (input) => 2026-10-25T00:47:52.3292608Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3292610Z 2026-10-25T00:47:52.3293043Z src/orchestration-v2/ThreadManagementService.ts:1224:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getThreadHistoryPage")((threadId, cursor, throughEntryId, conversationOnly) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3293046Z 2026-10-25T00:47:52.3293162Z 1224 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) => 2026-10-25T00:47:52.3293207Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3293209Z 2026-10-25T00:47:52.3293575Z src/orchestration-v2/ThreadManagementService.ts:1230:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3293577Z 2026-10-25T00:47:52.3293638Z 1230 getTimelinePage: (threadId, options) => 2026-10-25T00:47:52.3293681Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3293683Z 2026-10-25T00:47:52.3294038Z src/orchestration-v2/ThreadManagementService.ts:1234:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3294040Z 2026-10-25T00:47:52.3294094Z 1234 getMessageCount: (threadId) => 2026-10-25T00:47:52.3294137Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3294188Z 2026-10-25T00:47:52.3294526Z src/orchestration-v2/ThreadManagementService.ts:1238:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3294530Z 2026-10-25T00:47:52.3294578Z 1238 getTurnItem: (input) => 2026-10-25T00:47:52.3294620Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3294622Z 2026-10-25T00:47:52.3295044Z src/orchestration-v2/ThreadManagementService.ts:1243:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3295047Z 2026-10-25T00:47:52.3295119Z 1243 getThreadRecords: (threadId, fields, filter) => 2026-10-25T00:47:52.3295161Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3295163Z 2026-10-25T00:47:52.3295553Z src/orchestration-v2/ThreadManagementService.ts:1284:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("LegacyV1ThreadImporter.LegacyV1ThreadImporter.ensureTranscript")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3295557Z 2026-10-25T00:47:52.3295692Z 1284 ensureTranscript: () => Effect.succeed({ importedThreadCount: 0, importedMessageCount: 0 }), 2026-10-25T00:47:52.3295735Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3295737Z 2026-10-25T00:47:52.3296004Z src/orchestration-v2/ThreadPullRequestService.test.ts:119:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3296008Z 2026-10-25T00:47:52.3296085Z 119 getShell: () => Effect.succeed(Option.some(project)), 2026-10-25T00:47:52.3296136Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3296139Z 2026-10-25T00:47:52.3296400Z src/orchestration-v2/ThreadPullRequestService.test.ts:238:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3296404Z 2026-10-25T00:47:52.3296484Z 238 getShell: () => Effect.succeed(Option.some(project)), 2026-10-25T00:47:52.3296535Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3296537Z 2026-10-25T00:47:52.3296921Z src/orchestration-v2/ThreadPullRequestService.ts:326:17 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3296924Z 2026-10-25T00:47:52.3296982Z 326 Effect.catchCause((cause) => 2026-10-25T00:47:52.3297029Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3297031Z 2026-10-25T00:47:52.3297405Z src/orchestration-v2/ThreadSettlementService.ts:350:11 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3297409Z 2026-10-25T00:47:52.3297465Z 350 Effect.catchCause((cause) => 2026-10-25T00:47:52.3297508Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3297511Z 2026-10-25T00:47:52.3297882Z src/orchestration-v2/ThreadSettlementService.ts:513:11 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3297884Z 2026-10-25T00:47:52.3297937Z 513 Effect.catchCause((cause) => 2026-10-25T00:47:52.3297983Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3297985Z 2026-10-25T00:47:52.3298356Z src/orchestration-v2/ThreadSettlementService.ts:531:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3298404Z 2026-10-25T00:47:52.3298455Z 531 Effect.catchCause((cause) => 2026-10-25T00:47:52.3298499Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3298501Z 2026-10-25T00:47:52.3298873Z src/orchestration-v2/ThreadSettlementService.ts:573:9 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3298875Z 2026-10-25T00:47:52.3298928Z 573 Effect.catchCause((cause) => 2026-10-25T00:47:52.3298973Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3298975Z 2026-10-25T00:47:52.3299367Z src/orchestration-v2/TurnItemPositionStore.ts:106:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TurnItemPositionStoreV2.normalize")((item, runOrdinal) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3299370Z 2026-10-25T00:47:52.3299426Z 106 normalize: (item, runOrdinal) => 2026-10-25T00:47:52.3299468Z ~~~~~~~~~ 2026-10-25T00:47:52.3299470Z 2026-10-25T00:47:52.3299870Z src/orchestration-v2/http.test.ts:54:23 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3299873Z 2026-10-25T00:47:52.3299971Z 54 const thread = Schema.decodeUnknownSync(OrchestrationV2AppThread)({ 2026-10-25T00:47:52.3300018Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3300020Z 2026-10-25T00:47:52.3300390Z src/orchestration-v2/http.ts:231:11 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen) 2026-10-25T00:47:52.3300392Z 2026-10-25T00:47:52.3300435Z 231 try { 2026-10-25T00:47:52.3300475Z ~~~~~ 2026-10-25T00:47:52.3300553Z 232 decodeThreadHistoryCursor(args.query.cursor); 2026-10-25T00:47:52.3300616Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3300655Z ... 2026-10-25T00:47:52.3300783Z 236 return yield* failEnvironmentInternal("orchestration_thread_history_failed", cause); 2026-10-25T00:47:52.3300868Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3300910Z 237 } 2026-10-25T00:47:52.3300950Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3300952Z 2026-10-25T00:47:52.3301195Z src/orchestration-v2/runtimeLayer.test.ts:120:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3301198Z 2026-10-25T00:47:52.3301262Z 120 getById: () => Effect.succeed(Option.none()), 2026-10-25T00:47:52.3301308Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3301312Z 2026-10-25T00:47:52.3301582Z src/orchestration-v2/runtimeLayer.test.ts:997:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3301584Z 2026-10-25T00:47:52.3301631Z 997 Effect.succeed( 2026-10-25T00:47:52.3301676Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3301679Z 2026-10-25T00:47:52.3302045Z src/orchestration-v2/testkit/CommandOutputRecorder.ts:40:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CommandOutputHub.CommandOutputHub.append")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3302050Z 2026-10-25T00:47:52.3302097Z 40 append: (input) => 2026-10-25T00:47:52.3302137Z ~~~~~~ 2026-10-25T00:47:52.3302139Z 2026-10-25T00:47:52.3302456Z src/orchestration-v2/testkit/OrchestratorScenario.ts:283:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("awaitDispatch")(function*(key) { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3302503Z 2026-10-25T00:47:52.3302563Z 283 const awaitDispatch = (key: string) => 2026-10-25T00:47:52.3302605Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3302607Z 2026-10-25T00:47:52.3303025Z src/orchestration-v2/testkit/ProviderReplayHarness.ts:447:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadTitleRegenerationService.ThreadTitleRegenerationService.execute")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3303028Z 2026-10-25T00:47:52.3303079Z 447 execute: () => Effect.void, 2026-10-25T00:47:52.3303161Z ~~~~~~~ 2026-10-25T00:47:52.3303164Z 2026-10-25T00:47:52.3303500Z src/persistence/PullRequestFilesViewed.ts:92:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestFilesViewedRepository.list")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3303504Z 2026-10-25T00:47:52.3303548Z 92 list: (input) => 2026-10-25T00:47:52.3303590Z ~~~~ 2026-10-25T00:47:52.3303592Z 2026-10-25T00:47:52.3303922Z src/persistence/PullRequestFilesViewed.ts:102:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestFilesViewedRepository.set")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3303925Z 2026-10-25T00:47:52.3303969Z 102 set: (input) => 2026-10-25T00:47:52.3304010Z ~~~ 2026-10-25T00:47:52.3304012Z 2026-10-25T00:47:52.3304341Z src/persistence/PullRequestReviewGuides.ts:54:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestReviewGuideRepository.get")((key) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3304343Z 2026-10-25T00:47:52.3304386Z 54 get: (key) => 2026-10-25T00:47:52.3304426Z ~~~ 2026-10-25T00:47:52.3304428Z 2026-10-25T00:47:52.3304770Z src/persistence/PullRequestReviewGuides.ts:64:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestReviewGuideRepository.put")((key, guide) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3304772Z 2026-10-25T00:47:52.3304819Z 64 put: (key, guide) => 2026-10-25T00:47:52.3304857Z ~~~ 2026-10-25T00:47:52.3304859Z 2026-10-25T00:47:52.3305194Z src/persistence/initializeV2Database.ts:45:9 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3305197Z 2026-10-25T00:47:52.3305247Z 45 Effect.catch((error) => 2026-10-25T00:47:52.3305290Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3305292Z 2026-10-25T00:47:52.3305604Z src/preview/DesktopBrowserChannel.ts:75:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.awaitAttached")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3305609Z 2026-10-25T00:47:52.3305672Z 75 awaitAttached: () => Effect.succeed(false), 2026-10-25T00:47:52.3305714Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3305716Z 2026-10-25T00:47:52.3306021Z src/preview/DesktopBrowserChannel.ts:78:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.isAttached")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3306024Z 2026-10-25T00:47:52.3306083Z 78 isAttached: () => Effect.succeed(false), 2026-10-25T00:47:52.3306122Z ~~~~~~~~~~ 2026-10-25T00:47:52.3306124Z 2026-10-25T00:47:52.3306426Z src/preview/DesktopBrowserChannel.ts:79:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.endpoint")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3306428Z 2026-10-25T00:47:52.3306529Z 79 endpoint: () => Effect.die("No desktop app is attached to this server."), 2026-10-25T00:47:52.3306615Z ~~~~~~~~ 2026-10-25T00:47:52.3306617Z 2026-10-25T00:47:52.3306915Z src/preview/DesktopBrowserChannel.ts:80:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.pointer")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3306918Z 2026-10-25T00:47:52.3306967Z 80 pointer: () => Effect.void, 2026-10-25T00:47:52.3307008Z ~~~~~~~ 2026-10-25T00:47:52.3307011Z 2026-10-25T00:47:52.3307380Z src/preview/DesktopBrowserChannel.ts:194:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.awaitAttached")((key, timeout) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3307382Z 2026-10-25T00:47:52.3307436Z 194 awaitAttached: (key, timeout) => 2026-10-25T00:47:52.3307478Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3307480Z 2026-10-25T00:47:52.3307793Z src/preview/DesktopBrowserChannel.ts:216:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.isAttached")((key) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3307795Z 2026-10-25T00:47:52.3307892Z 216 isAttached: (key) => Effect.sync(() => attachedTabs.has(keyOf(key))), 2026-10-25T00:47:52.3307936Z ~~~~~~~~~~ 2026-10-25T00:47:52.3307938Z 2026-10-25T00:47:52.3308259Z src/preview/DesktopBrowserChannel.ts:218:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.pointer")((key, pointer) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3308261Z 2026-10-25T00:47:52.3308364Z 218 pointer: (key, pointer) => command({ type: "pointer", ...key, ...pointer }), 2026-10-25T00:47:52.3308403Z ~~~~~~~ 2026-10-25T00:47:52.3308405Z 2026-10-25T00:47:52.3308857Z src/preview/ServerBrowser.ts:481:23 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3308862Z 2026-10-25T00:47:52.3308956Z 481 executable: () => Effect.runPromise(previewBrowser.executable), 2026-10-25T00:47:52.3309005Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3309008Z 2026-10-25T00:47:52.3309450Z src/preview/ServerBrowser.ts:688:9 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3309452Z 2026-10-25T00:47:52.3309501Z 688 ? Effect.runPromise( 2026-10-25T00:47:52.3309545Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3309547Z 2026-10-25T00:47:52.3309986Z src/preview/ServerBrowser.ts:697:25 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3309989Z 2026-10-25T00:47:52.3310065Z 697 const scope = await Effect.runPromise(Scope.make()); 2026-10-25T00:47:52.3310115Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3310117Z 2026-10-25T00:47:52.3310557Z src/preview/ServerBrowser.ts:699:30 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3310560Z 2026-10-25T00:47:52.3310623Z 699 const endpoint = await Effect.runPromise( 2026-10-25T00:47:52.3310719Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3310722Z 2026-10-25T00:47:52.3311158Z src/preview/ServerBrowser.ts:709:17 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3311160Z 2026-10-25T00:47:52.3311244Z 709 await Effect.runPromise(Scope.close(scope, Exit.void)); 2026-10-25T00:47:52.3311290Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3311293Z 2026-10-25T00:47:52.3311806Z src/preview/ServerBrowser.ts:713:13 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3311810Z 2026-10-25T00:47:52.3311894Z 713 await Effect.runPromise(Scope.close(scope, Exit.void)); 2026-10-25T00:47:52.3311940Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3311942Z 2026-10-25T00:47:52.3312382Z src/preview/ServerBrowser.ts:1202:11 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3312385Z 2026-10-25T00:47:52.3312435Z 1202 await Effect.runPromise( 2026-10-25T00:47:52.3312478Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3312482Z 2026-10-25T00:47:52.3312923Z src/preview/ServerBrowser.ts:1695:17 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3312927Z 2026-10-25T00:47:52.3312980Z 1695 : await Effect.runPromise( 2026-10-25T00:47:52.3313028Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3313030Z 2026-10-25T00:47:52.3313469Z src/preview/ServerBrowser.ts:1759:21 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3313471Z 2026-10-25T00:47:52.3313525Z 1759 ? await Effect.runPromise( 2026-10-25T00:47:52.3313575Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3313577Z 2026-10-25T00:47:52.3313841Z src/preview/ServerBrowser.ts:1762:58 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3313845Z 2026-10-25T00:47:52.3313950Z 1762 ServerBrowserTabNotFoundError: () => Effect.succeed(undefined), 2026-10-25T00:47:52.3314018Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3314020Z 2026-10-25T00:47:52.3314459Z src/preview/ServerBrowser.ts:1768:38 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3314463Z 2026-10-25T00:47:52.3314534Z 1768 const { sessions } = await Effect.runPromise( 2026-10-25T00:47:52.3314591Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3314593Z 2026-10-25T00:47:52.3315033Z src/preview/ServerBrowser.ts:1796:19 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3315078Z 2026-10-25T00:47:52.3315132Z 1796 await Effect.runPromise( 2026-10-25T00:47:52.3315178Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3315182Z 2026-10-25T00:47:52.3315667Z src/preview/ServerBrowser.ts:1827:21 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3315670Z 2026-10-25T00:47:52.3315725Z 1827 await Effect.runPromise( 2026-10-25T00:47:52.3315773Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3315775Z 2026-10-25T00:47:52.3316214Z src/preview/ServerBrowser.ts:1891:13 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3316219Z 2026-10-25T00:47:52.3316348Z 1891 await Effect.runPromise(manager.close({ threadId: tab.threadId, tabId: tab.tabId })); 2026-10-25T00:47:52.3316393Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3316396Z 2026-10-25T00:47:52.3316837Z src/preview/ServerBrowser.ts:1959:15 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3316839Z 2026-10-25T00:47:52.3316890Z 1959 await Effect.runPromise( 2026-10-25T00:47:52.3316935Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3316939Z 2026-10-25T00:47:52.3317375Z src/preview/ServerBrowser.ts:1971:32 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3317378Z 2026-10-25T00:47:52.3317444Z 1971 const snapshot = await Effect.runPromise( 2026-10-25T00:47:52.3317498Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3317501Z 2026-10-25T00:47:52.3317941Z src/preview/ServerBrowser.ts:2217:15 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect) 2026-10-25T00:47:52.3317944Z 2026-10-25T00:47:52.3317995Z 2217 await Effect.runPromise( 2026-10-25T00:47:52.3318041Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3318043Z 2026-10-25T00:47:52.3318366Z src/preview/ServerBrowserStream.ts:179:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("receive")((chunk) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3318370Z 2026-10-25T00:47:52.3318440Z 179 const receive = (chunk: Uint8Array | string) => { 2026-10-25T00:47:52.3318484Z ~~~~~~~ 2026-10-25T00:47:52.3318486Z 2026-10-25T00:47:52.3318782Z src/preview/ServerBrowserStream.ts:209:5 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed) 2026-10-25T00:47:52.3318785Z 2026-10-25T00:47:52.3318879Z 209 Effect.catch(() => Effect.succeed(HttpServerResponse.empty())), 2026-10-25T00:47:52.3318920Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3318922Z 2026-10-25T00:47:52.3319309Z src/process/externalLauncher.ts:860:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.resolveAvailableEditors")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3319311Z 2026-10-25T00:47:52.3319396Z 860 resolveAvailableEditors: () => cachedAvailableEditors, 2026-10-25T00:47:52.3319441Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3319443Z 2026-10-25T00:47:52.3319768Z src/process/externalLauncher.ts:861:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.resolveFileManagerRevealKind")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3319819Z 2026-10-25T00:47:52.3319878Z 861 resolveFileManagerRevealKind: () => 2026-10-25T00:47:52.3319923Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3319925Z 2026-10-25T00:47:52.3320228Z src/process/externalLauncher.ts:865:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.launchBrowser")((target) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3320233Z 2026-10-25T00:47:52.3320282Z 865 launchBrowser: (target) => 2026-10-25T00:47:52.3320323Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3320325Z 2026-10-25T00:47:52.3320624Z src/process/externalLauncher.ts:869:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.launchEditor")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3320626Z 2026-10-25T00:47:52.3320677Z 869 launchEditor: (input) => 2026-10-25T00:47:52.3320718Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3320722Z 2026-10-25T00:47:52.3320967Z src/project/AgentSessionImporter.test.ts:212:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3320970Z 2026-10-25T00:47:52.3321017Z 212 Effect.succeed( 2026-10-25T00:47:52.3321063Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3321065Z 2026-10-25T00:47:52.3321300Z src/project/ManagedProjectFolders.ts:346:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3321303Z 2026-10-25T00:47:52.3321414Z 346 ? Effect.succeed(Option.some(folderFor(id.slice(-8)))) 2026-10-25T00:47:52.3321459Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3321461Z 2026-10-25T00:47:52.3321691Z src/project/ManagedProjectFolders.ts:348:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3321696Z 2026-10-25T00:47:52.3321761Z 348 ? Effect.succeed(Option.some(fullFolder)) 2026-10-25T00:47:52.3321804Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3321806Z 2026-10-25T00:47:52.3322118Z src/project/ProjectCloneTracker.ts:432:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.start")((input, hooks) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3322122Z 2026-10-25T00:47:52.3322198Z 432 start: (input, hooks) => locked(start(input, hooks)), 2026-10-25T00:47:52.3322237Z ~~~~~ 2026-10-25T00:47:52.3322240Z 2026-10-25T00:47:52.3322547Z src/project/ProjectCloneTracker.ts:433:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.cancel")((projectId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3322549Z 2026-10-25T00:47:52.3322619Z 433 cancel: (projectId) => locked(cancel(projectId)), 2026-10-25T00:47:52.3322664Z ~~~~~~ 2026-10-25T00:47:52.3322666Z 2026-10-25T00:47:52.3322969Z src/project/ProjectCloneTracker.ts:434:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.retry")((projectId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3323017Z 2026-10-25T00:47:52.3323085Z 434 retry: (projectId) => locked(retry(projectId)), 2026-10-25T00:47:52.3323126Z ~~~~~ 2026-10-25T00:47:52.3323129Z 2026-10-25T00:47:52.3323438Z src/project/ProjectCloneTracker.ts:435:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.discard")((projectId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3323440Z 2026-10-25T00:47:52.3323513Z 435 discard: (projectId) => locked(discard(projectId)), 2026-10-25T00:47:52.3323552Z ~~~~~~~ 2026-10-25T00:47:52.3323555Z 2026-10-25T00:47:52.3323914Z src/provider/CodexChatGptHandoff.ts:21:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.get")((key) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3323917Z 2026-10-25T00:47:52.3324014Z 21 get: (key) => Effect.sync(() => Option.fromUndefinedOr(bytes.get(key))), 2026-10-25T00:47:52.3324056Z ~~~ 2026-10-25T00:47:52.3324059Z 2026-10-25T00:47:52.3324389Z src/provider/CodexChatGptHandoff.ts:22:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.set")((key, value) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3324391Z 2026-10-25T00:47:52.3324438Z 22 set: (key, value) => 2026-10-25T00:47:52.3324477Z ~~~ 2026-10-25T00:47:52.3324479Z 2026-10-25T00:47:52.3324807Z src/provider/CodexChatGptHandoff.ts:26:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.remove")((key) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3324809Z 2026-10-25T00:47:52.3324857Z 26 remove: (key) => 2026-10-25T00:47:52.3324898Z ~~~~~~ 2026-10-25T00:47:52.3324900Z 2026-10-25T00:47:52.3325221Z src/provider/CodexChatGptHandoff.ts:30:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.create")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3325227Z 2026-10-25T00:47:52.3325323Z 30 create: () => Effect.die("Handoff does not create persistent secrets."), 2026-10-25T00:47:52.3325364Z ~~~~~~ 2026-10-25T00:47:52.3325366Z 2026-10-25T00:47:52.3325712Z src/provider/CodexChatGptHandoff.ts:31:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.getOrCreateRandom")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3325714Z 2026-10-25T00:47:52.3325842Z 31 getOrCreateRandom: () => Effect.die("Handoff uses the destination environment identity."), 2026-10-25T00:47:52.3325886Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3325888Z 2026-10-25T00:47:52.3326302Z src/provider/CodexInstallation.ts:205:26 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder) 2026-10-25T00:47:52.3326307Z 2026-10-25T00:47:52.3326415Z 205 return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))( 2026-10-25T00:47:52.3326467Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3326470Z 2026-10-25T00:47:52.3326735Z src/provider/CodexProvider.ts:569:11 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3326737Z 2026-10-25T00:47:52.3326790Z 569 ? Effect.succeed(undefined) 2026-10-25T00:47:52.3326836Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3326838Z 2026-10-25T00:47:52.3327152Z src/provider/ModelManifest.ts:284:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ModelCatalog.ModelCatalog.current")((driverKind) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3327205Z 2026-10-25T00:47:52.3327256Z 284 current: (driverKind) => 2026-10-25T00:47:52.3327298Z ~~~~~~~ 2026-10-25T00:47:52.3327300Z 2026-10-25T00:47:52.3327651Z src/provider/ProviderAuthService.test.ts:284:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3327656Z 2026-10-25T00:47:52.3327711Z 284 return yield* Effect.fail( 2026-10-25T00:47:52.3327756Z ~~~~~ 2026-10-25T00:47:52.3327797Z 2026-10-25T00:47:52.3328116Z src/provider/ProviderAuthService.ts:211:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAuthService.importProfile")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3328121Z 2026-10-25T00:47:52.3328172Z 211 importProfile: (input) => 2026-10-25T00:47:52.3328212Z ~~~~~~~~~~~~~ 2026-10-25T00:47:52.3328214Z 2026-10-25T00:47:52.3328556Z src/provider/ProviderHostLive.ts:39:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderHost.ProviderHost.credentials")((namespace, bindingId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3328558Z 2026-10-25T00:47:52.3328619Z 39 credentials: (namespace, bindingId) => 2026-10-25T00:47:52.3328660Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3328662Z 2026-10-25T00:47:52.3329031Z src/pullRequest/PullRequestService.ts:2984:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3329034Z 2026-10-25T00:47:52.3329084Z 2984 Effect.catchCause((cause) => 2026-10-25T00:47:52.3329128Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3329132Z 2026-10-25T00:47:52.3329491Z src/pullRequest/PullRequestService.ts:3387:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3329493Z 2026-10-25T00:47:52.3329544Z 3387 Effect.catchCause((cause) => 2026-10-25T00:47:52.3329588Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3329590Z 2026-10-25T00:47:52.3329902Z src/pullRequest/PullRequestService.ts:3607:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestService.listStats")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3329905Z 2026-10-25T00:47:52.3329954Z 3607 listStats: (input) => 2026-10-25T00:47:52.3329994Z ~~~~~~~~~ 2026-10-25T00:47:52.3329997Z 2026-10-25T00:47:52.3330230Z src/relay/AgentAwarenessRelay.test.ts:272:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 2026-10-25T00:47:52.3330235Z 2026-10-25T00:47:52.3330280Z 272 Effect.succeed( 2026-10-25T00:47:52.3330325Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3330327Z 2026-10-25T00:47:52.3330632Z src/relay/AgentAwarenessRelay.ts:822:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AgentAwarenessRelay.requestCatchUp")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3330635Z 2026-10-25T00:47:52.3330752Z 822 requestCatchUp: () => Queue.offer(catchUpRequests, undefined).pipe(Effect.asVoid), 2026-10-25T00:47:52.3330796Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3330798Z 2026-10-25T00:47:52.3331173Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:641:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.requestDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3331221Z 2026-10-25T00:47:52.3331280Z 641 requestDesktopUpdate: (requestId) => 2026-10-25T00:47:52.3331323Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3331325Z 2026-10-25T00:47:52.3331727Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:647:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.commitDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3331730Z 2026-10-25T00:47:52.3331788Z 647 commitDesktopUpdate: (requestId) => 2026-10-25T00:47:52.3331831Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3331833Z 2026-10-25T00:47:52.3332241Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:649:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.cancelDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3332244Z 2026-10-25T00:47:52.3332302Z 649 cancelDesktopUpdate: (requestId) => 2026-10-25T00:47:52.3332344Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3332346Z 2026-10-25T00:47:52.3332703Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:698:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.setDiagnosticsDemand")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3332705Z 2026-10-25T00:47:52.3332767Z 698 setDiagnosticsDemand: () => Effect.void, 2026-10-25T00:47:52.3332813Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3332815Z 2026-10-25T00:47:52.3333171Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:699:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.requestDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3333174Z 2026-10-25T00:47:52.3333235Z 699 requestDesktopUpdate: () => Effect.void, 2026-10-25T00:47:52.3333280Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3333284Z 2026-10-25T00:47:52.3333636Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:700:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.commitDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3333640Z 2026-10-25T00:47:52.3333700Z 700 commitDesktopUpdate: () => Effect.void, 2026-10-25T00:47:52.3333746Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3333748Z 2026-10-25T00:47:52.3334106Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:701:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.cancelDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3334108Z 2026-10-25T00:47:52.3334169Z 701 cancelDesktopUpdate: () => Effect.void, 2026-10-25T00:47:52.3334212Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3334214Z 2026-10-25T00:47:52.3334545Z src/resourceTelemetry/NativeTelemetryClient.ts:1091:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.readHistory")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3334548Z 2026-10-25T00:47:52.3334593Z 1091 readHistory: () => 2026-10-25T00:47:52.3334636Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3334638Z 2026-10-25T00:47:52.3334984Z src/resourceTelemetry/NativeTelemetryClient.ts:1097:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.setExternalProcesses")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3334987Z 2026-10-25T00:47:52.3335050Z 1097 setExternalProcesses: () => Effect.void, 2026-10-25T00:47:52.3335097Z ~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3335099Z 2026-10-25T00:47:52.3335437Z src/resourceTelemetry/NativeTelemetryClient.ts:1098:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.setHostPowerState")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3335483Z 2026-10-25T00:47:52.3335543Z 1098 setHostPowerState: () => Effect.void, 2026-10-25T00:47:52.3335586Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3335589Z 2026-10-25T00:47:52.3335878Z src/scheduledTasks/ScheduledTaskService.ts:1136:31 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3335880Z 2026-10-25T00:47:52.3335947Z 1136 ? Effect.succeed(undefined) 2026-10-25T00:47:52.3336042Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3336045Z 2026-10-25T00:47:52.3336323Z src/secrets/SecretRequests.test.ts:166:30 - suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach) 2026-10-25T00:47:52.3336327Z 2026-10-25T00:47:52.3336384Z 166 const results = yield* Effect.all( 2026-10-25T00:47:52.3336431Z ~~~~~~~~~~ 2026-10-25T00:47:52.3336433Z 2026-10-25T00:47:52.3336783Z src/server.ts:493:5 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen) 2026-10-25T00:47:52.3336786Z 2026-10-25T00:47:52.3336839Z 493 return Effect.gen(function* () { 2026-10-25T00:47:52.3336880Z ~~~~~~ 2026-10-25T00:47:52.3336882Z 2026-10-25T00:47:52.3337155Z src/serverRuntimeStartup.test.ts:209:25 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3337158Z 2026-10-25T00:47:52.3337224Z 209 prepareTrial: Effect.succeed(undefined), 2026-10-25T00:47:52.3337281Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3337283Z 2026-10-25T00:47:52.3337545Z src/serverSettings.test.ts:413:30 - suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach) 2026-10-25T00:47:52.3337547Z 2026-10-25T00:47:52.3337602Z 413 const results = yield* Effect.all( 2026-10-25T00:47:52.3337648Z ~~~~~~~~~~ 2026-10-25T00:47:52.3337650Z 2026-10-25T00:47:52.3338064Z src/sourceControl/SourceControlProviderRegistry.ts:204:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3338066Z 2026-10-25T00:47:52.3338120Z 204 listChangeRequests: (input) => 2026-10-25T00:47:52.3338165Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3338167Z 2026-10-25T00:47:52.3338570Z src/sourceControl/SourceControlProviderRegistry.ts:209:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3338572Z 2026-10-25T00:47:52.3338623Z 209 getChangeRequest: (input) => 2026-10-25T00:47:52.3338667Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3338669Z 2026-10-25T00:47:52.3339076Z src/sourceControl/SourceControlProviderRegistry.ts:214:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3339079Z 2026-10-25T00:47:52.3339132Z 214 createChangeRequest: (input) => 2026-10-25T00:47:52.3339176Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3339178Z 2026-10-25T00:47:52.3339591Z src/sourceControl/SourceControlProviderRegistry.ts:219:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3339638Z 2026-10-25T00:47:52.3339696Z 219 getRepositoryCloneUrls: (input) => 2026-10-25T00:47:52.3339739Z ~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3339741Z 2026-10-25T00:47:52.3340138Z src/sourceControl/SourceControlProviderRegistry.ts:224:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3340198Z 2026-10-25T00:47:52.3340293Z 224 createRepository: (input) => provider.createRepository(input), 2026-10-25T00:47:52.3340336Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3340338Z 2026-10-25T00:47:52.3340735Z src/sourceControl/SourceControlProviderRegistry.ts:225:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3340739Z 2026-10-25T00:47:52.3340791Z 225 getDefaultBranch: (input) => 2026-10-25T00:47:52.3340833Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3340835Z 2026-10-25T00:47:52.3341244Z src/sourceControl/SourceControlProviderRegistry.ts:230:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3341247Z 2026-10-25T00:47:52.3341304Z 230 checkoutChangeRequest: (input) => 2026-10-25T00:47:52.3341348Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3341351Z 2026-10-25T00:47:52.3341732Z src/sourceControl/SourceControlProviderRegistry.ts:345:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProviderRegistry.resolve")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3341737Z 2026-10-25T00:47:52.3341863Z 345 resolve: (input) => resolveHandle(input).pipe(Effect.map((handle) => handle.provider)), 2026-10-25T00:47:52.3341903Z ~~~~~~~ 2026-10-25T00:47:52.3341905Z 2026-10-25T00:47:52.3342265Z src/sourceControl/SourceControlRepositoryService.ts:406:7 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf) 2026-10-25T00:47:52.3342268Z 2026-10-25T00:47:52.3342318Z 406 Effect.catch((sshError) => 2026-10-25T00:47:52.3342360Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3342362Z 2026-10-25T00:47:52.3342740Z src/sourceControl/SourceControlRepositoryService.ts:553:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.lookupRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3342744Z 2026-10-25T00:47:52.3342794Z 553 lookupRepository: (input) => 2026-10-25T00:47:52.3342835Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3342837Z 2026-10-25T00:47:52.3343202Z src/sourceControl/SourceControlRepositoryService.ts:555:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.prepareClone")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3343204Z 2026-10-25T00:47:52.3343254Z 555 prepareClone: (input) => 2026-10-25T00:47:52.3343295Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3343297Z 2026-10-25T00:47:52.3343682Z src/sourceControl/SourceControlRepositoryService.ts:562:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.cloneRepository")((input, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3343735Z 2026-10-25T00:47:52.3343792Z 562 cloneRepository: (input, options) => 2026-10-25T00:47:52.3343834Z ~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3343837Z 2026-10-25T00:47:52.3344218Z src/sourceControl/SourceControlRepositoryService.ts:569:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.discardClone")((destinationPath) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3344220Z 2026-10-25T00:47:52.3344276Z 569 discardClone: (destinationPath) => 2026-10-25T00:47:52.3344318Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3344320Z 2026-10-25T00:47:52.3344739Z src/sourceControl/SourceControlRepositoryService.ts:573:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.publishRepository")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3344742Z 2026-10-25T00:47:52.3344795Z 573 publishRepository: (input) => 2026-10-25T00:47:52.3344840Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3344842Z 2026-10-25T00:47:52.3345162Z src/storageCleanup.ts:708:14 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3345164Z 2026-10-25T00:47:52.3345214Z 708 return yield* Effect.fail( 2026-10-25T00:47:52.3345254Z ~~~~~ 2026-10-25T00:47:52.3345257Z 2026-10-25T00:47:52.3345545Z src/telemetry/AnalyticsService.ts:113:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AnalyticsService.record")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3345547Z 2026-10-25T00:47:52.3345595Z 113 record: () => Effect.void, 2026-10-25T00:47:52.3345635Z ~~~~~~ 2026-10-25T00:47:52.3345637Z 2026-10-25T00:47:52.3345933Z src/telemetry/AnalyticsService.ts:115:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AnalyticsService.recordOwners")(() => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3345938Z 2026-10-25T00:47:52.3345990Z 115 recordOwners: () => Effect.void, 2026-10-25T00:47:52.3346031Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3346033Z 2026-10-25T00:47:52.3346337Z src/telemetry/AnalyticsService.ts:329:62 - suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen) 2026-10-25T00:47:52.3346339Z 2026-10-25T00:47:52.3346483Z 329 yield* Effect.forever(Effect.sleep(FLUSH_INTERVAL_MS).pipe(Effect.flatMap(() => flushWhenDue)), { 2026-10-25T00:47:52.3346549Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3346553Z 2026-10-25T00:47:52.3346826Z src/textGeneration/CodexTextGeneration.ts:90:13 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore) 2026-10-25T00:47:52.3346830Z 2026-10-25T00:47:52.3346889Z 90 .pipe(Effect.catch(() => Effect.void)); 2026-10-25T00:47:52.3346932Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3346934Z 2026-10-25T00:47:52.3347256Z src/textGeneration/TextGeneration.ts:60:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateCommitMessage")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3347258Z 2026-10-25T00:47:52.3347312Z 60 generateCommitMessage: (input) => 2026-10-25T00:47:52.3347356Z ~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3347358Z 2026-10-25T00:47:52.3347671Z src/textGeneration/TextGeneration.ts:64:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generatePrContent")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3347674Z 2026-10-25T00:47:52.3347772Z 64 generatePrContent: (input) => 2026-10-25T00:47:52.3347814Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3347817Z 2026-10-25T00:47:52.3348129Z src/textGeneration/TextGeneration.ts:68:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateBranchName")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3348133Z 2026-10-25T00:47:52.3348184Z 68 generateBranchName: (input) => 2026-10-25T00:47:52.3348227Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3348229Z 2026-10-25T00:47:52.3348579Z src/textGeneration/TextGeneration.ts:72:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateReviewGuide")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3348582Z 2026-10-25T00:47:52.3348636Z 72 generateReviewGuide: (input) => 2026-10-25T00:47:52.3348679Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3348681Z 2026-10-25T00:47:52.3348995Z src/textGeneration/TextGeneration.ts:76:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateThreadTitle")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3348998Z 2026-10-25T00:47:52.3349050Z 76 generateThreadTitle: (input) => 2026-10-25T00:47:52.3349096Z ~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3349098Z 2026-10-25T00:47:52.3349379Z src/usage/UsageService.ts:172:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("UsageService.readSummary")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3349381Z 2026-10-25T00:47:52.3349431Z 172 readSummary: (input) => 2026-10-25T00:47:52.3349473Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3349475Z 2026-10-25T00:47:52.3349717Z src/usage/UsageService.ts:642:9 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain) 2026-10-25T00:47:52.3349721Z 2026-10-25T00:47:52.3349778Z 642 usageInstances(driver, settings) 2026-10-25T00:47:52.3349825Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3349868Z 643 .pipe( 2026-10-25T00:47:52.3349908Z ~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3349948Z ... 2026-10-25T00:47:52.3350013Z 664 Effect.provideContext(readerContext), 2026-10-25T00:47:52.3350069Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3350110Z 665 ), 2026-10-25T00:47:52.3350150Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3350152Z 2026-10-25T00:47:52.3350497Z src/vcs/GitVcsDriverCore.ts:4020:9 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail) 2026-10-25T00:47:52.3350500Z 2026-10-25T00:47:52.3350551Z 4020 Effect.flatMap((result) => 2026-10-25T00:47:52.3350595Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3350598Z 2026-10-25T00:47:52.3350931Z src/vcs/GitVcsDriverCore.ts:4511:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.commit")((cwd, subject, body, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3350933Z 2026-10-25T00:47:52.3350993Z 4511 commit: (cwd, subject, body, options) => 2026-10-25T00:47:52.3351032Z ~~~~~~ 2026-10-25T00:47:52.3351034Z 2026-10-25T00:47:52.3351419Z src/vcs/GitVcsDriverCore.ts:4513:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pushCurrentBranch")((cwd, fallbackBranch, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3351422Z 2026-10-25T00:47:52.3351503Z 4513 pushCurrentBranch: (cwd, fallbackBranch, options) => 2026-10-25T00:47:52.3351547Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3351549Z 2026-10-25T00:47:52.3351869Z src/vcs/GitVcsDriverCore.ts:4515:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pullCurrentBranch")((cwd) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3351929Z 2026-10-25T00:47:52.3352051Z 4515 pullCurrentBranch: (cwd) => withListRefsInvalidation(cwd, pullCurrentBranch(cwd)), 2026-10-25T00:47:52.3352094Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3352097Z 2026-10-25T00:47:52.3352427Z src/vcs/GitVcsDriverCore.ts:4523:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createWorktree")((input, options) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3352486Z 2026-10-25T00:47:52.3352545Z 4523 createWorktree: (input, options) => 2026-10-25T00:47:52.3352589Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3352591Z 2026-10-25T00:47:52.3352912Z src/vcs/GitVcsDriverCore.ts:4525:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRefIntoBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3352917Z 2026-10-25T00:47:52.3353059Z 4525 fetchRefIntoBranch: (input) => withListRefsInvalidation(input.cwd, fetchRefIntoBranch(input)), 2026-10-25T00:47:52.3353103Z ~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3353105Z 2026-10-25T00:47:52.3353440Z src/vcs/GitVcsDriverCore.ts:4528:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.refreshCheckedOutBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3353442Z 2026-10-25T00:47:52.3353501Z 4528 refreshCheckedOutBranch: (input) => 2026-10-25T00:47:52.3353545Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3353547Z 2026-10-25T00:47:52.3353858Z src/vcs/GitVcsDriverCore.ts:4530:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.ensureRemote")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3353862Z 2026-10-25T00:47:52.3353982Z 4530 ensureRemote: (input) => withListRefsInvalidation(input.cwd, ensureRemote(input)), 2026-10-25T00:47:52.3354024Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3354027Z 2026-10-25T00:47:52.3354338Z src/vcs/GitVcsDriverCore.ts:4533:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemote")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3354340Z 2026-10-25T00:47:52.3354388Z 4533 fetchRemote: (input) => 2026-10-25T00:47:52.3354430Z ~~~~~~~~~~~ 2026-10-25T00:47:52.3354434Z 2026-10-25T00:47:52.3354768Z src/vcs/GitVcsDriverCore.ts:4548:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchWorktreeBaseCommit")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3354770Z 2026-10-25T00:47:52.3354830Z 4548 fetchWorktreeBaseCommit: (input) => 2026-10-25T00:47:52.3354873Z ~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3354875Z 2026-10-25T00:47:52.3355195Z src/vcs/GitVcsDriverCore.ts:4550:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3355198Z 2026-10-25T00:47:52.3355335Z 4550 fetchRemoteBranch: (input) => withListRefsInvalidation(input.cwd, fetchRemoteBranch(input)), 2026-10-25T00:47:52.3355378Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3355380Z 2026-10-25T00:47:52.3355721Z src/vcs/GitVcsDriverCore.ts:4551:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteTrackingBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3355723Z 2026-10-25T00:47:52.3355785Z 4551 fetchRemoteTrackingBranch: (input) => 2026-10-25T00:47:52.3355875Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3355878Z 2026-10-25T00:47:52.3356203Z src/vcs/GitVcsDriverCore.ts:4553:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.setBranchUpstream")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3356205Z 2026-10-25T00:47:52.3356339Z 4553 setBranchUpstream: (input) => withListRefsInvalidation(input.cwd, setBranchUpstream(input)), 2026-10-25T00:47:52.3356382Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3356384Z 2026-10-25T00:47:52.3356746Z src/vcs/GitVcsDriverCore.ts:4554:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.removeWorktree")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3356750Z 2026-10-25T00:47:52.3356875Z 4554 removeWorktree: (input) => withListRefsInvalidation(input.cwd, removeWorktree(input)), 2026-10-25T00:47:52.3356920Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3356922Z 2026-10-25T00:47:52.3357238Z src/vcs/GitVcsDriverCore.ts:4555:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pruneWorktrees")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3357240Z 2026-10-25T00:47:52.3357365Z 4555 pruneWorktrees: (input) => withListRefsInvalidation(input.cwd, pruneWorktrees(input)), 2026-10-25T00:47:52.3357406Z ~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3357409Z 2026-10-25T00:47:52.3357731Z src/vcs/GitVcsDriverCore.ts:4556:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.deleteLocalBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3357734Z 2026-10-25T00:47:52.3357867Z 4556 deleteLocalBranch: (input) => withListRefsInvalidation(input.cwd, deleteLocalBranch(input)), 2026-10-25T00:47:52.3357910Z ~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3357914Z 2026-10-25T00:47:52.3358225Z src/vcs/GitVcsDriverCore.ts:4557:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.renameBranch")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3358227Z 2026-10-25T00:47:52.3358435Z 4557 renameBranch: (input) => withListRefsInvalidation(input.cwd, renameBranch(input)), 2026-10-25T00:47:52.3358476Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3358478Z 2026-10-25T00:47:52.3358790Z src/vcs/GitVcsDriverCore.ts:4558:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createRef")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3358792Z 2026-10-25T00:47:52.3358900Z 4558 createRef: (input) => withListRefsInvalidation(input.cwd, createRef(input)), 2026-10-25T00:47:52.3358942Z ~~~~~~~~~ 2026-10-25T00:47:52.3358944Z 2026-10-25T00:47:52.3359251Z src/vcs/GitVcsDriverCore.ts:4559:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.switchRef")((input) => { ... })`. effect(effectFnOpportunity) 2026-10-25T00:47:52.3359255Z 2026-10-25T00:47:52.3359359Z 4559 switchRef: (input) => withListRefsInvalidation(input.cwd, switchRef(input)), 2026-10-25T00:47:52.3359400Z ~~~~~~~~~ 2026-10-25T00:47:52.3359403Z 2026-10-25T00:47:52.3359789Z src/vcs/VcsStatusBroadcaster.ts:153:5 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen) 2026-10-25T00:47:52.3359792Z 2026-10-25T00:47:52.3359857Z 153 return serverSettings.getSettings.pipe( 2026-10-25T00:47:52.3359896Z ~~~~~~ 2026-10-25T00:47:52.3359898Z 2026-10-25T00:47:52.3360200Z src/workspace/WorkspaceFileSystem.ts:171:15 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed) 2026-10-25T00:47:52.3360270Z 2026-10-25T00:47:52.3360351Z 171 }).pipe(Effect.catch(() => Effect.succeed(undefined))); 2026-10-25T00:47:52.3360395Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3360397Z 2026-10-25T00:47:52.3360673Z src/workspace/WorkspaceFileSystem.ts:171:34 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3360676Z 2026-10-25T00:47:52.3360807Z 171 }).pipe(Effect.catch(() => Effect.succeed(undefined))); 2026-10-25T00:47:52.3360867Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3360869Z 2026-10-25T00:47:52.3361105Z src/ws.test.ts:401:47 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid) 2026-10-25T00:47:52.3361109Z 2026-10-25T00:47:52.3361207Z 401 resolveFileManagerRevealKind: () => Effect.succeed(undefined), 2026-10-25T00:47:52.3361270Z ~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-10-25T00:47:52.3361272Z 2026-10-25T00:47:52.3361584Z src/ws.ts:1391:23 - suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption) 2026-10-25T00:47:52.3361588Z 2026-10-25T00:47:52.3361648Z 1391 return yield* Option.match(project, { 2026-10-25T00:47:52.3361695Z ~~~~~~~~~~~~ 2026-10-25T00:47:52.3361698Z 2026-10-25T00:47:52.3361998Z src/ws.ts:2333:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3362001Z 2026-10-25T00:47:52.3362060Z 2333 return yield* Effect.fail( 2026-10-25T00:47:52.3362105Z ~~~~~ 2026-10-25T00:47:52.3362108Z 2026-10-25T00:47:52.3362403Z src/ws.ts:2342:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3362406Z 2026-10-25T00:47:52.3362461Z 2342 return yield* Effect.fail( 2026-10-25T00:47:52.3362505Z ~~~~~ 2026-10-25T00:47:52.3362507Z 2026-10-25T00:47:52.3362799Z src/ws.ts:2350:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError) 2026-10-25T00:47:52.3362802Z 2026-10-25T00:47:52.3362856Z 2350 return yield* Effect.fail( 2026-10-25T00:47:52.3362899Z ~~~~~ 2026-10-25T00:47:52.3362903Z 2026-10-25T00:47:52.3362905Z 2026-10-25T00:47:52.3362943Z --- 2026-10-25T00:47:52.3363216Z vp run: 0/33 cache hit (0%), 33/33 successful. @t3tools/oxlint-plugin-t3code#typecheck (and 1 more) not cached because they modified their inputs. (Run `vp run --last-details` for full details) 2026-10-25T00:47:52.3822731Z Post job cleanup. 2026-10-25T00:47:52.4475751Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache. 2026-10-25T00:47:52.4554309Z Post job cleanup. 2026-10-25T00:47:52.4570181Z ##[start-action display=Cache full pnpm store;id=__20d48108-ff04-4ba5-b67b-46ed93ae4f8c.__actions_cache] 2026-10-25T00:47:52.4949457Z Post job cleanup. 2026-10-25T00:47:52.5611274Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-fe33cf74552d68b43bd4929ad8f74b63f776b4470e2e3533f781441d5e4f188c, not saving cache. 2026-10-25T00:47:52.5647839Z ##[end-action id=__20d48108-ff04-4ba5-b67b-46ed93ae4f8c.__actions_cache;outcome=success;conclusion=success;duration_ms=107] 2026-10-25T00:47:52.5649920Z ##[start-action display=Cache Vite+;id=__20d48108-ff04-4ba5-b67b-46ed93ae4f8c.vp_cache] 2026-10-25T00:47:52.5670731Z Post job cleanup. 2026-10-25T00:47:52.6311221Z Cache hit occurred on the primary key vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0, not saving cache. 2026-10-25T00:47:52.6351292Z ##[end-action id=__20d48108-ff04-4ba5-b67b-46ed93ae4f8c.vp_cache;outcome=success;conclusion=success;duration_ms=70] 2026-10-25T00:47:52.6388531Z Post job cleanup. 2026-10-25T00:47:52.6832635Z [command]/usr/local/bin/git version 2026-10-25T00:47:52.6862540Z git version 2.55.0 2026-10-25T00:47:52.6879512Z Temporarily overriding HOME='/home/runner/_work/_temp/9311f966-5057-48be-9fef-10b6df94377a' before making global git config changes 2026-10-25T00:47:52.6879894Z Adding repository directory to the temporary git global config as a safe directory 2026-10-25T00:47:52.6882382Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code 2026-10-25T00:47:52.6903992Z Removing SSH command configuration 2026-10-25T00:47:52.6906905Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand 2026-10-25T00:47:52.6928673Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" 2026-10-25T00:47:52.7062741Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules 2026-10-25T00:47:52.7088734Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128 2026-10-25T00:47:52.7135595Z A job completed hook has been configured by the self-hosted runner administrator 2026-10-25T00:47:52.7157845Z ##[group]Run '/job_completed.sh' 2026-10-25T00:47:52.7170277Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} 2026-10-25T00:47:52.7170455Z env: 2026-10-25T00:47:52.7170573Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 142 2026-10-25T00:47:52.7170739Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 649 2026-10-25T00:47:52.7170884Z BLACKSMITH_CHECK_RUN_ID: 121033503583 2026-10-25T00:47:52.7171048Z BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck 2026-10-25T00:47:52.7171209Z GITHUB_ACTIONS_CACHE_MODE: write 2026-10-25T00:47:52.7171348Z ##[endgroup] 2026-10-25T00:47:52.7253269Z Docker container cache not activated, skipping hash computation. 2026-10-25T00:47:52.7537949Z No active SSH sessions detected. Proceeding with shutdown immediately. 2026-10-25T00:47:52.7582086Z Cleaning up orphan processes