GitHub check
Whole log, 113 KB
Current runner version: '2.338.2'
Runner name: 'blacksmith-8vcpu-ubuntu-2404-g3jjywda5gjkjnz7'
Runner group name: 'blacksmith scale sets - blacksmith-8vcpu-ubuntu-2404'
Machine name: 'ip-172-31-73-130'
▸ GITHUB_TOKEN Permissions
Contents: read
Metadata: read
Secret source: Actions
Cache mode: write
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v6' (SHA:d23441a48e516b6c34aea4fa41551a30e30af803)
Setting BLACKSMITH_ACTIONS_RESULTS_URL to https://results-receiver.actions.githubusercontent.com/
Complete job name: Build and Typecheck
A job started hook has been configured by the self-hosted runner administrator
▸ Run '/setup.sh'
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
BLACKSMITH_CHECK_RUN_ID: 130349287773
BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck
GITHUB_ACTIONS_CACHE_MODE: write
Logging daemon started (blacksmithd for logs)
Results daemon started (blacksmithd for results)
Background adoption and SSH setup started (PID: 3200)
----------------------------------------
View this job: https://app.blacksmith.sh/pingdotgg/runs/42967887445/jobs/130349287773
SSH Access (using your GitHub SSH key):
ssh -p 64001 runner@blacksmith-8vcpu-ubuntu-2404-g3jjywda5gjkjnz7.vm.blacksmith.sh
No GitHub SSH key? Add one at:
https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
----------------------------------------
VM ID: blacksmith-8vcpu-ubuntu-2404-g3jjywda5gjkjnz7
Host: production-152.236.46.157-x8664
Host Agent PID: 3020896
Host Agent Git SHA: db010f00b
Host CPU Manufacturer: AuthenticAMD
Blacksmith Host Generation: gen 2
Petname: production-musical-dove-2085adc7
Region: us-east
Rootfs Version: ubuntu24-full-x64-081926
OS Version: Ubuntu 24.04.4 LTS
Enabling Blacksmith transparent cache
▸ Run actions/checkout@v6
with:
sparse-checkout: /*
!/.repos/
!/apps/mobile/modules/t3-terminal/Vendor/**/*.a
sparse-checkout-cone-mode: false
repository: pingdotgg/t3code
token: ***
ssh-strict: true
ssh-user: git
persist-credentials: true
clean: true
fetch-depth: 1
fetch-tags: false
show-progress: true
lfs: false
submodules: false
set-safe-directory: true
allow-unsafe-pr-checkout: false
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
Syncing repository: pingdotgg/t3code
▸ Getting Git version info
Working directory is '/home/runner/_work/t3code/t3code'
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/d4c3477f-0660-496b-864c-0de5548e39f8' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
Deleting the contents of '/home/runner/_work/t3code/t3code'
▸ Determining repository object format
▸ Initializing the repository
[command]/usr/local/bin/git init /home/runner/_work/t3code/t3code
hint: Using 'master' as the name for the initial branch. This default branch name
hint: will change to "main" in Git 3.0. To configure the initial branch name
hint: to use in all of your new repositories, which will suppress this warning,
hint: call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /home/runner/_work/t3code/t3code/.git/
[command]/usr/local/bin/git remote add origin https://github.com/pingdotgg/t3code
▸ Disabling automatic garbage collection
[command]/usr/local/bin/git config --local gc.auto 0
▸ Setting up auth
Removing SSH command configuration
[command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
[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' || :"
Removing HTTP extra header
[command]/usr/local/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[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' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/local/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/usr/local/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
[command]/usr/local/bin/git config --file /home/runner/_work/_temp/git-credentials-7f3610f0-2ffd-4f10-bcaf-5793f39a8dc6.config http.https://github.com/.extraheader AUTHORIZATION: basic ***
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git.path /home/runner/_work/_temp/git-credentials-7f3610f0-2ffd-4f10-bcaf-5793f39a8dc6.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git/worktrees/*.path /home/runner/_work/_temp/git-credentials-7f3610f0-2ffd-4f10-bcaf-5793f39a8dc6.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-7f3610f0-2ffd-4f10-bcaf-5793f39a8dc6.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-7f3610f0-2ffd-4f10-bcaf-5793f39a8dc6.config
▸ Fetching the repository
[command]/usr/local/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --filter=blob:none --depth=1 origin +15012e48d52174644dc8b0a91386fe2ea1375415:refs/remotes/pull/23415/merge
From https://github.com/pingdotgg/t3code
* [new ref] 15012e48d52174644dc8b0a91386fe2ea1375415 -> pull/23415/merge
▸ Determining the checkout info
▸ Setting up sparse checkout
[command]/usr/local/bin/git config core.sparseCheckout true
[command]/usr/local/bin/git rev-parse --git-path info/sparse-checkout
.git/info/sparse-checkout
▸ Checking out the ref
[command]/usr/local/bin/git checkout --progress --force refs/remotes/pull/23415/merge
Updating files: 0% (1/7043)
Updating files: 1% (71/7043)
Updating files: 2% (141/7043)
Updating files: 3% (212/7043)
Updating files: 4% (282/7043)
Updating files: 5% (353/7043)
Updating files: 6% (423/7043)
Updating files: 7% (494/7043)
Updating files: 8% (564/7043)
Updating files: 9% (634/7043)
Updating files: 10% (705/7043)
Updating files: 11% (775/7043)
Updating files: 12% (846/7043)
Updating files: 13% (916/7043)
Updating files: 14% (987/7043)
Updating files: 15% (1057/7043)
Updating files: 16% (1127/7043)
Updating files: 17% (1198/7043)
Updating files: 18% (1268/7043)
Updating files: 19% (1339/7043)
Updating files: 20% (1409/7043)
Updating files: 21% (1480/7043)
Updating files: 22% (1550/7043)
Updating files: 23% (1620/7043)
Updating files: 24% (1691/7043)
Updating files: 25% (1761/7043)
Updating files: 26% (1832/7043)
Updating files: 27% (1902/7043)
Updating files: 28% (1973/7043)
Updating files: 29% (2043/7043)
Updating files: 30% (2113/7043)
Updating files: 31% (2184/7043)
Updating files: 32% (2254/7043)
Updating files: 33% (2325/7043)
Updating files: 34% (2395/7043)
Updating files: 35% (2466/7043)
Updating files: 36% (2536/7043)
Updating files: 37% (2606/7043)
Updating files: 38% (2677/7043)
Updating files: 39% (2747/7043)
Updating files: 40% (2818/7043)
Updating files: 41% (2888/7043)
Updating files: 42% (2959/7043)
Updating files: 43% (3029/7043)
Updating files: 44% (3099/7043)
Updating files: 45% (3170/7043)
Updating files: 46% (3240/7043)
Updating files: 47% (3311/7043)
Updating files: 48% (3381/7043)
Updating files: 49% (3452/7043)
Updating files: 50% (3522/7043)
Updating files: 51% (3592/7043)
Updating files: 52% (3663/7043)
Updating files: 53% (3733/7043)
Updating files: 54% (3804/7043)
Updating files: 55% (3874/7043)
Updating files: 56% (3945/7043)
Updating files: 57% (4015/7043)
Updating files: 58% (4085/7043)
Updating files: 59% (4156/7043)
Updating files: 60% (4226/7043)
Updating files: 61% (4297/7043)
Updating files: 62% (4367/7043)
Updating files: 63% (4438/7043)
Updating files: 64% (4508/7043)
Updating files: 65% (4578/7043)
Updating files: 66% (4649/7043)
Updating files: 67% (4719/7043)
Updating files: 68% (4790/7043)
Updating files: 69% (4860/7043)
Updating files: 70% (4931/7043)
Updating files: 71% (5001/7043)
Updating files: 72% (5071/7043)
Updating files: 73% (5142/7043)
Updating files: 74% (5212/7043)
Updating files: 75% (5283/7043)
Updating files: 76% (5353/7043)
Updating files: 77% (5424/7043)
Updating files: 78% (5494/7043)
Updating files: 79% (5564/7043)
Updating files: 80% (5635/7043)
Updating files: 81% (5705/7043)
Updating files: 82% (5776/7043)
Updating files: 83% (5846/7043)
Updating files: 84% (5917/7043)
Updating files: 85% (5987/7043)
Updating files: 86% (6057/7043)
Updating files: 87% (6128/7043)
Updating files: 88% (6198/7043)
Updating files: 89% (6269/7043)
Updating files: 90% (6339/7043)
Updating files: 91% (6410/7043)
Updating files: 92% (6480/7043)
Updating files: 93% (6550/7043)
Updating files: 94% (6621/7043)
Updating files: 95% (6691/7043)
Updating files: 96% (6762/7043)
Updating files: 97% (6832/7043)
Updating files: 98% (6903/7043)
Updating files: 99% (6973/7043)
Updating files: 100% (7043/7043)
Updating files: 100% (7043/7043), done.
Note: switching to 'refs/remotes/pull/23415/merge'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 15012e4 Merge dbfa670d6e2dd08ef57291ee6c0385f9129055cc into f021c92cc97ceadef2a4d311df336aee77f31e3d
[command]/usr/local/bin/git log -1 --format=%H
15012e48d52174644dc8b0a91386fe2ea1375415
Prepare all required actions
▸ Run ./.github/actions/setup-apt-mirrors
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Run # Replace the existing Blacksmith mirror list as well as direct sources.;id=__self.__run]
▸ Run # Replace the existing Blacksmith mirror list as well as direct sources.
# Replace the existing Blacksmith mirror list as well as direct sources.
printf '%s\tpriority:%s\n' \
https://archive.ubuntu.com/ubuntu 1 \
https://mirrors.edge.kernel.org/ubuntu 2 \
https://mirror.math.princeton.edu/pub/ubuntu 3 \
| sudo tee /etc/apt/blacksmith-ubuntu-mirrors.txt > /dev/null
# APT's mirror transport retries each file against the next server.
sudo find /etc/apt -maxdepth 2 -type f \( -name '*.list' -o -name '*.sources' \) \
-exec sed -i -E \
's#https?://(([^/]+\.)?archive|security)\.ubuntu\.com/ubuntu/?#mirror+file:/etc/apt/blacksmith-ubuntu-mirrors.txt#g' {} +
# Move on to a fallback before an unreachable server exhausts the job.
printf '%s\n' 'Acquire::http::Timeout "15";' 'Acquire::https::Timeout "15";' \
| sudo tee /etc/apt/apt.conf.d/80-mirror-timeouts > /dev/null
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self.__run;outcome=success;conclusion=success;duration_ms=29]
▸ Run sudo sed -i 's|http://|https://|g' /etc/apt/blacksmith-ubuntu-mirrors.txt /etc/apt/sources.list.d/ubuntu.sources
sudo sed -i 's|http://|https://|g' /etc/apt/blacksmith-ubuntu-mirrors.txt /etc/apt/sources.list.d/ubuntu.sources
(
set +e
sudo apt-get update && sudo apt-get install -y libsecret-1-dev pkg-config
echo "$?" > "$RUNNER_TEMP/apt-status"
) > "$RUNNER_TEMP/apt.log" 2>&1 < /dev/null &
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
Prepare all required actions
Getting action download info
Download action repository 'actions/cache@v6' (SHA:55cc8345863c7cc4c66a329aec7e433d2d1c52a9)
Download action repository 'voidzero-dev/setup-vp@v1' (SHA:250f29ce396baf5e8f24498e17c0dfdebabc26eb)
▸ Run ./.github/actions/setup-ci-deps
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Resolve Vite+ version;id=__self_2.vp]
▸ Run echo "version=$(sed -nE 's/^ vite-plus: ([0-9][^ ]*)$/\1/p' pnpm-workspace.yaml)" >> "$GITHUB_OUTPUT"
echo "version=$(sed -nE 's/^ vite-plus: ([0-9][^ ]*)$/\1/p' pnpm-workspace.yaml)" >> "$GITHUB_OUTPUT"
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self_2.vp;outcome=success;conclusion=success;duration_ms=6]
##[start-action display=Cache Vite+;id=__self_2.__actions_cache]
▸ Run actions/cache@v6
with:
path: ~/.vite-plus
key: vite-plus-home-v1-Linux-X64-1.0.0
enableCrossOsArchive: false
fail-on-cache-miss: false
lookup-only: false
save-always: false
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
Cache not found for input keys: vite-plus-home-v1-Linux-X64-1.0.0
##[end-action id=__self_2.__actions_cache;outcome=success;conclusion=success;duration_ms=212]
##[start-action display=Setup Vite+;id=__self_2.__voidzero-dev_setup-vp]
▸ Run voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: true
sfw: false
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
Resolved Node.js version '^24.13.1' from package.json
Resolved Vite+ version '1.0.0' from package.json
Installing Vite+@1.0.0...
[command]/usr/bin/bash -c set -o pipefail; curl -fsSL --connect-timeout 5 --max-time 15 https://viteplus.dev/install.sh | bash
info: installing vite-plus@1.0.0...
info: Preparing Node.js and pnpm...
info: Installing dependencies...
✓ Dependencies installed.
Setup:
Preparing vite-plus environment.
Created Shims:
/home/runner/.vite-plus/bin/node
/home/runner/.vite-plus/bin/npm
/home/runner/.vite-plus/bin/npx
/home/runner/.vite-plus/bin/pnpm
/home/runner/.vite-plus/bin/pnpx
/home/runner/.vite-plus/bin/pn
/home/runner/.vite-plus/bin/pnx
/home/runner/.vite-plus/bin/yarn
/home/runner/.vite-plus/bin/yarnpkg
/home/runner/.vite-plus/bin/bun
/home/runner/.vite-plus/bin/bunx
/home/runner/.vite-plus/bin/vpx
/home/runner/.vite-plus/bin/vpr
Next Steps:
For Bash, run:
. "/home/runner/.vite-plus/env"
If your ~/.bashrc does not already load Vite+, add this command for interactive non-login Bash sessions.
Login Bash shells must also load the command through their login profile.
Restart an already-running IDE to load its environment. Run `vp env doctor` to verify.
✓ Vite+ setup complete.
Setting up Node.js ^24.13.1 via vp env use...
[command]/home/runner/.vite-plus/bin/vp env use ^24.13.1
Installing Node.js v24.22.2...
Using Node.js v24.22.2 (resolved from ^24.13.1)
Auto-detected lock file: pnpm-lock.yaml
Using lock file: /home/runner/_work/t3code/t3code/pnpm-lock.yaml
Resolving dependency cache directory in: /home/runner/_work/t3code/t3code
Cache hit for restore-key: vite-plus-Linux-x64-pnpm-0262421055f6201385d452bff3f6c813033b90a61526b973fbe0dabdf94ca37f
Received 615747963 of 615747963 (100.0%), 709.2 MBs/sec
Cache Size: ~587 MB (615747963 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/e3932446-82fb-4ce3-a3c5-e6a3fef5fac8/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: vite-plus-Linux-x64-pnpm-0262421055f6201385d452bff3f6c813033b90a61526b973fbe0dabdf94ca37f
▸ Running vp install in /home/runner/_work/t3code/t3code...
[command]/home/runner/.vite-plus/bin/vp install
Scope: all 33 workspace projects
? Verifying lockfile against supply-chain policies (2265 entries)...
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1863
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1863, reused 735, downloaded 0, added 0
Progress: resolved 1863, reused 822, downloaded 412, added 46
Progress: resolved 1863, reused 822, downloaded 760, added 96
Progress: resolved 1863, reused 822, downloaded 997, added 120
Progress: resolved 1863, reused 822, downloaded 1027, added 772
✓ Lockfile passes supply-chain policies (2265 entries in 5.8s)
Progress: resolved 1863, reused 822, downloaded 1028, added 1862
Progress: resolved 1863, reused 822, downloaded 1028, added 1863
Progress: resolved 1863, reused 822, downloaded 1028, added 1863, done
.../esbuild@0.28.2/node_modules/esbuild postinstall$ node install.js
.../tsc-rs@0.7.0/node_modules/tsc-rs postinstall$ node lib/install.js
.../esbuild@0.28.2/node_modules/esbuild postinstall: Done
.../tsc-rs@0.7.0/node_modules/tsc-rs postinstall: Done
.../react-native-enriched-markdown postinstall$ node postinstall.mjs
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] restoring vendored native assets ...
.../node_modules/node-pty install$ node scripts/prebuild.js || node-gyp rebuild
.../esbuild@0.25.12/node_modules/esbuild postinstall$ node install.js
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching runtime v0.26.3 from https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.26.3.tar.gz
.../node_modules/node-pty install: > Checking prebuilds...
.../node_modules/node-pty install: Done
.../node_modules/node-pty postinstall$ node scripts/post-install.js
.../esbuild@0.25.12/node_modules/esbuild postinstall: Done
.../node_modules/node-pty postinstall: > Cleaning release folder...
.../node_modules/node-pty postinstall: > Moving conpty.dll...
.../node_modules/node-pty postinstall: SKIPPED (not Windows)
.../node_modules/node-pty postinstall: Done
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] runtime -> react-native-enriched-markdown/cpp/highlight/vendor/tree-sitter/src
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-json@0.24.8 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-html@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-css@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-markdown@0.3.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-yaml@0.7.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-go@0.23.4 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-java@0.23.5 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-javascript@0.23.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-python@0.23.6 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c@0.23.5 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-rust@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-bash@0.23.3 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-typescript@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-cpp@0.23.4 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-swift@0.7.0 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-php@0.24.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-ruby@0.23.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c-sharp@0.23.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] json -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/json
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] html -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/html
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] css -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/css
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] markdown -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/markdown
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] yaml -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/yaml
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] go -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/go
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] java -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/java
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] javascript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/javascript
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] python -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/python
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] rust -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/rust
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] bash -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/bash
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] typescript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/typescript
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] tsx -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/tsx
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] cpp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/cpp
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] swift -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/swift
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] php -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/php
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] ruby -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/ruby
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c-sharp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c-sharp
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] grammar sources ready.
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done.
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] math disabled via package.json ("enriched-markdown".enableMath = false); skipping RaTeX.
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] postinstall complete.
.../react-native-enriched-markdown postinstall: Done
devDependencies:
+ @coderabbitai/config 1.1.0
+ @effect/tsgo 0.51.1
+ @shadcn/lint 0.1.5
+ @types/node 24.12.4
+ knip 6.34.0
+ tsc-rs 0.7.0
+ typescript 7.0.2
+ vite-plus 1.0.0
. prepare$ effect-tsgo patch && vp config --no-agent
. prepare: Patched typescript at /home/runner/_work/t3code/t3code/node_modules/.pnpm/@typescript+typescript-linux-x64@7.0.2/node_modules/@typescript/typescript-linux-x64/lib/tsc
. prepare: Done
Done in 11.1s using pnpm v11.10.0
Successfully ran vp install
vp v1.0.0
Local vite-plus:
vite-plus v1.0.0
Tools:
vite v8.3.1
rolldown v1.2.11
vitest v5.0.1
oxfmt v0.70.0
oxlint v1.85.0
oxlint-tsgolint v7.0.2003
tsdown v0.23.0
Environment:
Package manager pnpm v11.10.0
Node.js v24.22.2 (.session-node-version)
##[end-action id=__self_2.__voidzero-dev_setup-vp;outcome=success;conclusion=success;duration_ms=17277]
▸ Run vp run --filter @t3tools/desktop ensure:electron
vp run --filter @t3tools/desktop ensure:electron
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
~/apps/desktop$ node scripts/ensure-electron-runtime.mjs ⊘ cache disabled
/home/runner/_work/t3code/t3code/node_modules/.pnpm/electron@44.4.5/node_modules/electron/dist/electron
▸ Run (
(
set +e
vpr typecheck
echo "$?" > "$RUNNER_TEMP/typecheck-status"
) > "$RUNNER_TEMP/typecheck.log" 2>&1 < /dev/null &
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
▸ Run until test -s "$RUNNER_TEMP/apt-status"; do sleep 1; done
until test -s "$RUNNER_TEMP/apt-status"; do sleep 1; done
cat "$RUNNER_TEMP/apt.log"
exit "$(cat "$RUNNER_TEMP/apt-status")"
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
Error: The action 'Finish installing browser secret helper build libraries' has timed out after 5 minutes.
▸ Run until test -s "$RUNNER_TEMP/typecheck-status"; do sleep 1; done
until test -s "$RUNNER_TEMP/typecheck-status"; do sleep 1; done
cat "$RUNNER_TEMP/typecheck.log"
exit "$(cat "$RUNNER_TEMP/typecheck-status")"
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
GITHUB_REPO_NAME: pingdotgg/t3code
~/packages/effect-acp$ tsc-rs --noEmit ⊘ cache disabled
~/packages/effect-codex-app-server$ tsc-rs --noEmit ⊘ cache disabled
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)
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)
src/client.test.ts(58,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)
src/client.test.ts(60,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)
src/client.test.ts(1129,18): suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
src/protocol.test.ts(627,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)
~/oxlint-plugin-t3code$ tsc-rs --noEmit ⊘ cache disabled
~/packages/contracts$ tsc-rs --noEmit ⊘ cache disabled
src/auth.test.ts(18,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)
src/baseSchemas.test.ts(45,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)
~/packages/shared$ tsc-rs --noEmit ⊘ cache disabled
src/nodeSqliteClient.ts(429,31): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/nodeSqliteClient.ts(436,3): suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
src/nodeSqliteClient.ts(437,29): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/nodeSqliteClient.ts(457,13): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/nodeSqliteClient.ts(518,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)
src/symlink.ts(27,9): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
~/apps/marketing$ astro check ⊘ cache disabled
~/packages/source-control-core$ tsc-rs --noEmit ⊘ cache disabled
~/packages/tailscale$ tsc-rs --noEmit ⊘ cache disabled
~/packages/ssh$ tsc-rs --noEmit ⊘ cache disabled
~/packages/provider-core$ tsc-rs --noEmit ⊘ cache disabled
05:46:47 [types] Generated 74ms
05:46:47 [check] Getting diagnostics for Astro files in /home/runner/_work/t3code/t3code/apps/marketing...
src/server/snapshotProbe.test.ts(179,9): suggestion TS377124: `Effect.provideService` provides this inline single-service layer directly. effect(provideLayerSucceedToProvideService)
~/packages/source-control-testing$ tsc-rs --noEmit ⊘ cache disabled
~/packages/source-control-bitbucket$ tsc-rs --noEmit ⊘ cache disabled
~/packages/provider-acp$ tsc-rs --noEmit ⊘ cache disabled
src/server/AcpSessionRuntime.ts(500,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)
src/server/AcpSessionRuntime.ts(510,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)
src/server/AcpSessionRuntime.ts(526,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)
src/server/AcpSessionRuntime.ts(1978,17): suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption)
src/server/AcpSessionRuntime.ts(2026,9): suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen)
src/server/AcpSessionRuntime.ts(2242,9): suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
src/server/AcpSessionRuntime.ts(2610,17): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/server/adapter.ts(4636,21): suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
src/server/adapter.ts(5318,21): suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
src/server/clientTerminals.test.ts(263,32): suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
~/packages/provider-testing$ tsc-rs --noEmit ⊘ cache disabled
~/packages/source-control-gitlab$ tsc-rs --noEmit ⊘ cache disabled
~/packages/source-control-github$ tsc-rs --noEmit ⊘ cache disabled
src/server/GitHubPullRequestApi.ts(1516,13): suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/server/GitHubPullRequestApi.ts(1789,9): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/server/gitHubGraphQlClient.ts(67,9): suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubGraphQlAuth.execute")(function*(_) { ... })`. effect(effectFnOpportunity)
src/server/gitHubGraphQlClient.ts(120,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)
~/packages/source-control-azure-devops$ tsc-rs --noEmit ⊘ cache disabled
~/packages/source-control-gitcafe$ tsc-rs --noEmit ⊘ cache disabled
Result (22 files):
- 0 errors
- 0 warnings
- 0 hints
~/packages/source-control-forgejo$ tsc-rs --noEmit ⊘ cache disabled
src/server/GitCafePullRequestProvider.ts(482,13): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/server/GitCafePullRequestProvider.ts(487,21): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/server/GitCafeSourceControlProvider.ts(201,5): suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
~/packages/provider-grok$ tsc-rs --noEmit ⊘ cache disabled
~/packages/provider-pi$ tsc-rs --noEmit ⊘ cache disabled
src/server/driver.ts(148,9): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/server/xaiAcpExtension.ts(1487,15): suggestion TS377009: The previous Effect does not fail, so this error-handling branch will never run. effect(catchUnfailableEffect)
src/server/xaiAcpExtension.ts(1487,15): suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
src/server/xaiAcpExtension.ts(1569,15): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
~/packages/provider-muse$ tsc-rs --noEmit ⊘ cache disabled
src/server/adapter.ts(1680,31): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/server/adapter.ts(1683,29): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/server/rpc.ts(340,17): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
~/packages/provider-opencode$ tsc-rs --noEmit ⊘ cache disabled
src/server/adapter.ts(1338,35): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/server/adapter.ts(1338,71): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
~/packages/provider-cursor$ tsc-rs --noEmit ⊘ cache disabled
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)
src/server/OpenCodeServerLedger.ts(188,24): suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
src/server/OpenCodeServerLedger.ts(208,9): suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
src/server/OpenCodeServerLedger.ts(228,7): suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
src/server/adapter.test.ts(107,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)
src/server/adapter.ts(1013,33): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
src/server/adapter.ts(1092,33): suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
src/server/adapter.ts(1586,15): suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
src/server/adapter.ts(1586,34): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/server/adapter.ts(3178,43): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
src/server/adapter.ts(3335,47): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
src/server/v2/adapter.ts(1460,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/server/v2/adapter.ts(1460,58): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
~/packages/provider-acp-registry$ tsc-rs --noEmit ⊘ cache disabled
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)
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)
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)
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)
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)
src/server/driver.ts(219,13): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/server/usageLimits.test.ts(74,5): suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
~/packages/client-runtime$ tsc-rs --noEmit ⊘ cache disabled
src/server/AcpRegistryRuntimeCoordinator.ts(154,52): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/server/AcpRegistrySupport.ts(1299,9): suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
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)
src/server/driver.ts(642,53): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/connection/registry.test.ts(1389,15): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/connection/registry.test.ts(1473,15): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/connection/registry.test.ts(1486,23): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/platform/orchestrationCache.test.ts(190,15): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
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)
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)
src/state/fileMetadata.test.ts(438,14): suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
src/state/queryPersistence.ts(35,30): 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)
src/state/queryPersistence.ts(36,11): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/state/server.test.ts(777,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/server.test.ts(779,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/server.test.ts(782,33): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/server.test.ts(784,28): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/server.ts(1097,11): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/state/shell-sync.test.ts(89,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(91,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(184,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(186,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(189,33): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(191,28): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(202,68): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(470,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(473,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(476,33): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(478,28): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(485,21): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(555,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(561,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(564,33): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(566,28): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(573,21): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(694,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(703,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(706,33): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(708,28): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(715,21): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(814,26): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(820,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(823,33): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(825,28): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(832,21): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(911,26): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(913,27): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(916,33): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(918,28): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/shell-sync.test.ts(925,21): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/state/threads-sync.test.ts(1305,29): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
~/apps/mobile$ tsc-rs --noEmit ⊘ cache disabled
~/infra/relay$ tsc-rs --noEmit ⊘ cache disabled
~/apps/web$ tsc-rs --noEmit ⊘ cache disabled
~/scripts$ tsc-rs --noEmit ⊘ cache disabled
~/apps/desktop$ tsc-rs --noEmit ⊘ cache disabled
src/app/DesktopClerk.test.ts(383,27): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/app/DesktopWebLinks.test.ts(29,31): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
~/apps/server$ tsc-rs --noEmit ⊘ cache disabled
scripts/acp-mock-agent.ts(870,16): suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
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)
src/htmlRender/HtmlRender.ts(344,9): suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HtmlRender.measure")(function*(html) { ... }, ...pipeTransformations)`. effect(effectFnOpportunity)
src/mcp/AcpMcpStdioBridge.ts(243,9): 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)
src/mcp/AcpMcpStdioBridge.ts(286,7): suggestion TS377099: `Effect.ignoreCause` expresses ignored failure more directly than `Effect.catchCause` returning `Effect.void`. effect(catchToIgnore)
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)
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)
src/mcp/OrchestratorMcpService.ts(1782,5): suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorMcpService.requestSecret")(function*(scope, input) { ... })`. effect(effectFnOpportunity)
src/mcp/WorktreeMcpService.test.ts(353,3): suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
src/mcp/toolkits/pullRequests/handlers.ts(212,27): suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts(381,69): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts(389,43): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts(394,43): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts(398,39): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
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)
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts(46,17): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts(181,23): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts(318,23): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts(463,25): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts(1127,26): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts(1142,26): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts(1551,37): suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts(1557,28): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts(1580,37): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
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)
src/orchestration-v2/Adapters/CodexAdapterV2.ts(1682,25): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/orchestration-v2/Adapters/CodexAdapterV2.ts(2974,19): suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
src/orchestration-v2/Adapters/CodexAdapterV2.ts(2975,19): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/orchestration-v2/Adapters/CodexAdapterV2.ts(2997,19): suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
src/orchestration-v2/Adapters/CodexAdapterV2.ts(7033,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)
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)
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)
src/orchestration-v2/CheckpointRestoreSafety.test.ts(116,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
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)
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)
src/orchestration-v2/CheckpointRollbackService.test.ts(457,22): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ClaudeAutomaticDelivery.integration.test.ts(141,28): suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
src/orchestration-v2/CommandOutputHub.test.ts(169,5): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/orchestration-v2/CommandReceiptStore.ts(164,29): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/CommandReceiptStore.ts(167,21): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/CommandReceiptStore.ts(168,58): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/orchestration-v2/CommandReceiptStore.ts(183,17): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/CommandReceiptStore.ts(192,25): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/orchestration-v2/EffectOutbox.ts(420,17): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectOutbox.ts(421,39): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/orchestration-v2/EffectWorker.test.ts(107,20): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(264,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(331,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(398,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(399,18): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(463,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(464,18): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(524,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(525,18): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(596,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(597,18): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(715,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.test.ts(743,24): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/EffectWorker.ts(183,17): suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
src/orchestration-v2/FoundationPersistence.test.ts(1983,26): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/FoundationPersistence.test.ts(1988,11): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/FoundationPersistence.test.ts(2038,26): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/FoundationPersistence.test.ts(2040,11): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/FoundationPersistence.test.ts(3040,30): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/FoundationPersistence.test.ts(3257,30): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/OpenCode2OrchestratorV2.live.test.ts(95,20): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/orchestration-v2/Orchestrator.ts(11211,7): suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
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)
src/orchestration-v2/ProjectionControlReads.test.ts(279,11): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ProviderEventIngestor.ts(805,11): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/orchestration-v2/ProviderSessionManager.test.ts(1400,19): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ProviderTurnStartService.test.ts(149,13): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ProviderTurnStartService.test.ts(640,13): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ProviderTurnStartService.testkit.ts(14,20): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ProviderTurnStartService.ts(479,15): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/orchestration-v2/ProviderTurnStartService.ts(1205,7): suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
src/orchestration-v2/PullRequestWatchReactor.ts(423,53): suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
src/orchestration-v2/RunExecutionService.ts(869,17): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/orchestration-v2/RuntimePolicy.test.ts(90,9): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/RuntimeRequestService.test.ts(75,5): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/RuntimeRequestService.test.ts(139,5): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/RuntimeRequestService.test.ts(206,44): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/RuntimeRequestService.test.ts(217,11): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ThreadLaunchService.test.ts(177,33): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ThreadLaunchService.test.ts(206,32): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ThreadManagementService.ts(688,7): suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/orchestration-v2/ThreadManagementService.ts(705,5): suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
src/orchestration-v2/ThreadManagementService.ts(716,9): suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/orchestration-v2/ThreadManagementService.ts(1118,45): suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
src/orchestration-v2/ThreadPullRequestService.test.ts(228,31): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/ThreadPullRequestService.ts(327,17): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/orchestration-v2/ThreadSettlementService.ts(365,11): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/orchestration-v2/ThreadSettlementService.ts(528,11): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/orchestration-v2/ThreadSettlementService.ts(546,7): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/orchestration-v2/ThreadSettlementService.ts(588,9): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
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)
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)
src/orchestration-v2/runtimeLayer.test.ts(112,18): suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/orchestration-v2/runtimeLayer.test.ts(922,11): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
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)
src/preview/ServerBrowser.ts(479,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)
src/preview/ServerBrowser.ts(686,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)
src/preview/ServerBrowser.ts(695,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)
src/preview/ServerBrowser.ts(697,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)
src/preview/ServerBrowser.ts(707,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)
src/preview/ServerBrowser.ts(711,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)
src/preview/ServerBrowser.ts(1180,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)
src/preview/ServerBrowser.ts(1663,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)
src/preview/ServerBrowser.ts(1724,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)
src/preview/ServerBrowser.ts(1727,58): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/preview/ServerBrowser.ts(1733,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)
src/preview/ServerBrowser.ts(1761,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)
src/preview/ServerBrowser.ts(1790,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)
src/preview/ServerBrowser.ts(1850,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)
src/preview/ServerBrowser.ts(1914,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)
src/preview/ServerBrowser.ts(1926,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)
src/preview/ServerBrowser.ts(2166,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)
src/preview/ServerBrowserStream.ts(209,7): suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
src/project/AgentSessionImporter.test.ts(68,13): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/project/ManagedProjectFolders.ts(335,13): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/project/ManagedProjectFolders.ts(337,15): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/project/ProjectSetupScriptRunner.test.ts(76,26): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
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)
src/provider/CodexProvider.ts(492,11): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
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)
src/provider/acp/AcpSessionRuntime.processTree.test.ts(384,13): 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)
src/provider/acp/AcpSessionRuntime.processTree.test.ts(408,9): 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)
src/provider/acp/AcpSessionRuntime.processTree.test.ts(411,9): 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)
src/provider/acp/AcpSessionRuntime.processTree.test.ts(415,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)
src/provider/acp/AcpSessionRuntime.processTree.test.ts(557,13): 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)
src/provider/acp/AcpSessionRuntime.processTree.test.ts(570,9): 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)
src/pullRequest/PullRequestService.ts(2763,7): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/pullRequest/PullRequestService.ts(3122,7): suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
src/relay/AgentAwarenessRelay.test.ts(270,9): suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
src/scheduledTasks/RelayDeliveryProof.ts(47,9): suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("webhook.verifyRelayDelivery")(function*(input) { ... }, ...pipeTransformations)`. effect(effectFnOpportunity)
src/scheduledTasks/ScheduledTaskService.ts(994,33): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/secrets/SecretRequests.test.ts(169,30): suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
src/secrets/SecretRequests.test.ts(361,12): suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
src/secrets/SecretRequests.ts(76,9): suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SecretRequests.answer")(function*(input) { ... })`. effect(effectFnOpportunity)
src/server.ts(467,5): suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
src/serverRuntimeStartup.test.ts(215,25): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/serverSettings.test.ts(495,30): suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
src/storageCleanup.ts(549,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)
src/telemetry/AnalyticsService.ts(287,62): suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen)
src/textGeneration/CodexTextGeneration.ts(90,13): suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
src/usage/UsageService.ts(593,9): suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
src/vcs/GitVcsDriverCore.ts(3748,11): suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
src/workspace/WorkspaceFileSystem.ts(168,15): suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
src/workspace/WorkspaceFileSystem.ts(168,34): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/ws.test.ts(129,45): suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
src/ws.ts(1335,23): suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption)
src/ws.ts(2244,22): suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
src/ws.ts(2253,22): suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
src/ws.ts(2261,22): suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
---
vp run: 0/32 cache hit (0%). (Run `vp run --last-details` for full details)
Post job cleanup.
##[start-action display=Setup Vite+;id=__d2f55627-354e-4003-975e-8561bfd30dd7.__voidzero-dev_setup-vp]
##[end-action id=__d2f55627-354e-4003-975e-8561bfd30dd7.__voidzero-dev_setup-vp;outcome=skipped;conclusion=skipped;duration_ms=0]
##[start-action display=Cache Vite+;id=__d2f55627-354e-4003-975e-8561bfd30dd7.__actions_cache]
##[end-action id=__d2f55627-354e-4003-975e-8561bfd30dd7.__actions_cache;outcome=skipped;conclusion=skipped;duration_ms=0]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/0ef72b4d-8504-404d-8554-12fcc5b0c70a' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
Removing SSH command configuration
[command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
[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' || :"
fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
Warning: The process '/usr/local/bin/git' failed with exit code 128
A job completed hook has been configured by the self-hosted runner administrator
▸ Run '/job_completed.sh'
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 199
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 335
BLACKSMITH_CHECK_RUN_ID: 130349287773
BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck
GITHUB_ACTIONS_CACHE_MODE: write
Docker container cache not activated, skipping hash computation.
No active SSH sessions detected. Proceeding with shutdown immediately.
Cleaning up orphan processes
Terminate orphan process: pid (3613) (bash)