GitHub check
Whole log, 88 KB
Current runner version: '2.338.2'
Runner name: 'blacksmith-4vcpu-ubuntu-2404-by2zxqxnmwg3ki34'
Runner group name: 'blacksmith scale sets - blacksmith-4vcpu-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)
Download action repository 'actions/cache@v6' (SHA:55cc8345863c7cc4c66a329aec7e433d2d1c52a9)
Download action repository 'actions/upload-artifact@v7' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9)
Setting BLACKSMITH_ACTIONS_RESULTS_URL to https://results-receiver.actions.githubusercontent.com/
Complete job name: Test Server 3
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: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
BLACKSMITH_CHECK_RUN_ID: 130354063145
BLACKSMITH_JOB_DISPLAY_NAME: Test Server 3
GITHUB_ACTIONS_CACHE_MODE: write
Logging daemon started (blacksmithd for logs)
Results daemon started (blacksmithd for results)
Background adoption and SSH setup started (PID: 2966)
----------------------------------------
View this job: https://app.blacksmith.sh/pingdotgg/runs/42969073216/jobs/130354063145
SSH Access (using your GitHub SSH key):
ssh -p 64001 runner@blacksmith-4vcpu-ubuntu-2404-by2zxqxnmwg3ki34.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-4vcpu-ubuntu-2404-by2zxqxnmwg3ki34
Host: production-152.236.41.11-x8664
Host Agent PID: 3278424
Host Agent Git SHA: db010f00b
Host CPU Manufacturer: AuthenticAMD
Blacksmith Host Generation: gen 2
Petname: production-hardy-chigger-df04fd0f
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:
fetch-depth: 2
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-tags: false
show-progress: true
lfs: false
submodules: false
set-safe-directory: true
allow-unsafe-pr-checkout: false
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
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/f8349b3c-496b-4673-8a58-ef2d1c46ddaf' 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-27b7aac2-a9c8-4ec9-b7a0-485f9d2500ec.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-27b7aac2-a9c8-4ec9-b7a0-485f9d2500ec.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git/worktrees/*.path /home/runner/_work/_temp/git-credentials-27b7aac2-a9c8-4ec9-b7a0-485f9d2500ec.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-27b7aac2-a9c8-4ec9-b7a0-485f9d2500ec.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-27b7aac2-a9c8-4ec9-b7a0-485f9d2500ec.config
▸ Fetching the repository
[command]/usr/local/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --filter=blob:none --depth=2 origin +072e726d03acbe84f45ac37bd36edb86b1bca683:refs/remotes/pull/23547/merge
From https://github.com/pingdotgg/t3code
* [new ref] 072e726d03acbe84f45ac37bd36edb86b1bca683 -> pull/23547/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/23547/merge
Updating files: 55% (3895/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/23547/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 072e726 Merge 58eb305768e059c1e43a78ae3b1bc0d66d91f806 into f021c92cc97ceadef2a4d311df336aee77f31e3d
[command]/usr/local/bin/git log -1 --format=%H
072e726d03acbe84f45ac37bd36edb86b1bca683
Prepare all required actions
▸ Run ./.github/actions/ci-changes
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Run set -uo pipefail;id=changes.detect]
▸ Run set -uo pipefail
set -uo pipefail
decide() {
node .github/scripts/ci-changes.cjs "$@" | tee -a "$GITHUB_OUTPUT"
exit "${PIPESTATUS[0]}"
}
fail_open() {
echo "$* Running every job."
decide
}
# Reads the change from git rather than the REST API: every job that
# runs this shares the repository's 1,000 requests/hour GITHUB_TOKEN quota.
if [[ "$EVENT_NAME" == pull_request ]]; then
# A pull request checks out GitHub's merge commit with fetch-depth: 2,
# so its first parent is the base branch and the diff is the PR's change.
base=HEAD^1
mode=()
else
base=$BEFORE_SHA
git fetch --quiet --no-tags --depth=1 --filter=blob:none origin "$base" \
|| fail_open "Could not fetch ${base}."
# main keeps a full run as the backstop for anything the gate misses.
mode=(--full)
fi
# --no-renames lists a rename as its old and new path: renaming a file out
# of a package changes that package just like editing it. It also keeps
# git from fetching file contents to score renames.
git diff --name-only --no-renames "$base" HEAD > "$RUNNER_TEMP/changed-paths" \
|| fail_open "Could not diff against ${base}."
decide --paths "$RUNNER_TEMP/changed-paths" "${mode[@]}"
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
EVENT_NAME: pull_request
BEFORE_SHA: f8dadbc5f683cfad29828db7f9ab651b1228ceb6
Runs everything: apps/swift-ios/Core/HTTP.swift
Runs everything: apps/swift-ios/Tests/CoreTests/DualOrchestrationClientTests.swift
Affected packages: @t3tools/client-runtime, @t3tools/contracts, @t3tools/desktop, @t3tools/marketing, @t3tools/mobile, @t3tools/oxlint-plugin-t3code, @t3tools/provider-acp, @t3tools/provider-acp-registry, @t3tools/provider-core, @t3tools/provider-cursor, @t3tools/provider-grok, @t3tools/provider-muse, @t3tools/provider-opencode, @t3tools/provider-pi, @t3tools/provider-testing, @t3tools/scripts, @t3tools/shared, @t3tools/source-control-azure-devops, @t3tools/source-control-bitbucket, @t3tools/source-control-core, @t3tools/source-control-forgejo, @t3tools/source-control-gitcafe, @t3tools/source-control-github, @t3tools/source-control-gitlab, @t3tools/source-control-testing, @t3tools/ssh, @t3tools/tailscale, @t3tools/web, effect-acp, effect-codex-app-server, t3, t3code-relay
typecheck=true
build=true
test=true
test_packages=
test_web=true
test_server=true
rust=true
release_smoke=true
mobile_native=false
##[end-action id=changes.detect;outcome=success;conclusion=success;duration_ms=65]
Prepare all required actions
Getting action download info
Download action repository 'voidzero-dev/setup-vp@v1' (SHA:250f29ce396baf5e8f24498e17c0dfdebabc26eb)
▸ Run ./.github/actions/setup-ci-deps
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Resolve Vite+ version;id=__self.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: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self.vp;outcome=success;conclusion=success;duration_ms=9]
##[start-action display=Cache Vite+;id=__self.__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: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: vite-plus-home-v1-Linux-X64-1.0.0
Received 152753869 of 152753869 (100.0%), 732.0 MBs/sec
Cache Size: ~146 MB (152753869 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/8ba91682-ad45-49ed-9396-235cd341cd66/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: vite-plus-home-v1-Linux-X64-1.0.0
##[end-action id=__self.__actions_cache;outcome=success;conclusion=success;duration_ms=1092]
##[start-action display=Setup Vite+;id=__self.__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: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
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
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: vite-plus-Linux-x64-pnpm-78f7d32542c05546ba7da82ad9a6d01be2f96e9eb68b360c82091eccd9f17544
Received 775946240 of 1252048769 (62.0%), 733.4 MBs/sec
Received 1252048769 of 1252048769 (100.0%), 658.2 MBs/sec
Cache Size: ~1194 MB (1252048769 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/e27872c6-8095-4975-b7a5-93a9a640de5a/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-78f7d32542c05546ba7da82ad9a6d01be2f96e9eb68b360c82091eccd9f17544
▸ 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 760, downloaded 0, added 0
Progress: resolved 1863, reused 1208, downloaded 0, added 0
Progress: resolved 1863, reused 1775, downloaded 0, added 0
Progress: resolved 1863, reused 1850, downloaded 0, added 912
✓ Lockfile passes supply-chain policies (2265 entries in 4.7s)
Progress: resolved 1863, reused 1850, downloaded 0, added 1862
Progress: resolved 1863, reused 1850, downloaded 0, added 1863
Progress: resolved 1863, reused 1850, downloaded 0, added 1863, 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 9.9s 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.__voidzero-dev_setup-vp;outcome=success;conclusion=success;duration_ms=20147]
▸ Run echo "version=$(node -p "require('./apps/server/node_modules/playwright-core/package.json').version")" >> "$GITHUB_OUTPUT"
echo "version=$(node -p "require('./apps/server/node_modules/playwright-core/package.json').version")" >> "$GITHUB_OUTPUT"
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
▸ Run actions/cache@v6
with:
path: ~/.cache/ms-playwright
key: playwright-chromium-shell-Linux-X64-1.60.0
enableCrossOsArchive: false
fail-on-cache-miss: false
lookup-only: false
save-always: false
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: playwright-chromium-shell-Linux-X64-1.60.0
Received 106539107 of 106539107 (100.0%), 643.1 MBs/sec
Cache Size: ~102 MB (106539107 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/1910519e-f890-4d8b-9cd3-65af04153145/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: playwright-chromium-shell-Linux-X64-1.60.0
▸ Run browser=$(find "$HOME/.cache/ms-playwright" -name chrome-headless-shell -type f -print -quit)
browser=$(find "$HOME/.cache/ms-playwright" -name chrome-headless-shell -type f -print -quit)
test -n "$browser"
if ldd "$browser" | grep '=> not found'; then
node apps/server/node_modules/playwright-core/cli.js install-deps chromium
fi
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
▸ Run vp run --filter t3 test --shard 3/8
vp run --filter t3 test --shard 3/8
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
T3CODE_TRANSFER_BUDGET_REPORT_PATH: /home/runner/_work/_temp/t3code-transfer-budget.md
T3CODE_TRANSFER_BUDGET_RESULT_PATH: /home/runner/_work/_temp/thread-transfer-result.json
~/apps/server$ vp test run --shard 3/8 ⊘ cache disabled
RUN v5.0.1 /home/runner/_work/t3code/t3code/apps/server
✓ src/git/GitManager.test.ts (170 tests) 48480ms
✓ GitManager (170)
✓ passive worktree status streams do not start remote refreshes 412ms
✓ turn-end refresh finds a new PR and keeps known PRs cached 366ms
✓ finds a fork PR for a branch pushed without an upstream 705ms
✓ prefers an exact fork ref but does not guess between equal refs 477ms
✓ branch PR lookup shares the status cache for the same repository identity 381ms
✓ branch PR lookup rechecks open PRs every minute and settled answers less often 376ms
✓ creates feature branch, commits, and pushes with featureBranch option 322ms
✓ pushes and creates PR from a no-upstream branch when local commits are ahead of base 326ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote git@github.com:pingdotgg/codething-mvp.…, GH_REPO null, gh-resolved null) 373ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote git@github.com:pingdotgg/codething-mvp.…, GH_REPO https://github.com/pingdotgg/codething-…, gh-resolved null) 324ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote https://gitlab.example.com:8443/pingdot…, GH_REPO null, gh-resolved null) 310ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote https://github.example.com:8443/pingdot…, GH_REPO null, gh-resolved acme/demo) 422ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote https://github.example.com:8443/pingdot…, GH_REPO base, gh-resolved acme/demo) 361ms
✓ creates fork PRs with the owner head when gh's default repository is not the only remote 390ms
✓ creates the PR with head contributor:dev when GH_REPO is acme/demo, gh-resolved is null and the only remote is contributor/demo 356ms
✓ creates the PR with head contributor:dev when GH_REPO is ghe.example.com/contributor/demo, gh-resolved is null and the only remote is contributor/demo 362ms
✓ creates the PR with head dev when GH_REPO is github.com/Contributor/demo, gh-resolved is null and the only remote is contributor/demo 342ms
✓ creates the PR with head dev when GH_REPO is https://github.com/contributor/demo?tab…, gh-resolved is null and the only remote is contributor/demo 371ms
✓ creates the PR with head dev when GH_REPO is contributor/demo, gh-resolved is acme/demo and the only remote is contributor/demo 381ms
✓ creates the PR with head contributor:dev when GH_REPO is acme/demo, gh-resolved is base and the only remote is contributor/demo 362ms
✓ creates the PR with head contributor:dev when GH_REPO is junk/extra/contributor/demo, gh-resolved is acme/demo and the only remote is contributor/demo 364ms
✓ creates the PR with head contributor:dev when GH_REPO is base, gh-resolved is acme/demo and the only remote is contributor/demo 379ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is https://github.example.com:9443/contrib… and gh-resolved is null 389ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is github.example.com/contributor/demo and gh-resolved is null 384ms
✓ creates the PR with head dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is github.example.com:8443/contributor/demo and gh-resolved is null 394ms
✓ creates the PR with head dev when the only remote is https://github.example.com/contributor/…, GH_REPO is github.example.com:443/contributor/demo and gh-resolved is null 432ms
✓ creates the PR with head dev when the only remote is ssh://git@github.example.com:2222/contr…, GH_REPO is github.example.com/contributor/demo and gh-resolved is null 467ms
✓ creates the PR with head dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is null and gh-resolved is acme/demo 449ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com/contributor/…, GH_REPO is null and gh-resolved is acme/demo 392ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com:443/contribu…, GH_REPO is null and gh-resolved is acme/demo 437ms
✓ creates the PR with head contributor:dev when the only remote is git@github.com:contributor/demo.git, GH_REPO is null and gh-resolved is acme/demo 345ms
✓ creates the PR with head contributor:dev when the only remote is ssh://git@github.example.com:2222/contr…, GH_REPO is null and gh-resolved is acme/demo 372ms
✓ still treats a fork remote as cross-repository with an upstream remote but no origin 459ms
✓ returns the correct existing PR when a slash remote checks out to a synthetic local alias 463ms
✓ picks the fork PR among same-named branches from other repositories 364ms
✓ stops probing head selectors after finding an existing PR 462ms
✓ does not reuse a cross-repo PR when GitHub omits head identity metadata 609ms
✓ creates PR when one does not already exist 421ms
✓ creates a PR against the default branch with a legacy commit base setting 519ms
✓ creates a PR against the default branch with a legacy short-commit base setting 449ms
✓ creates a PR against the default branch with a legacy tag base setting 500ms
✓ creates a PR against the default branch with a legacy revision base setting 418ms
✓ preserves the configured PR target branch release/v2 375ms
✓ preserves the configured PR target branch refs/heads/release/v2 456ms
✓ preserves the configured PR target branch origin/release/v2 413ms
✓ preserves the configured PR target branch deadbeef 458ms
✓ preserves the configured PR target branch remote-only 641ms
✓ generates PR content from branch changes when the remote base advances 733ms
✓ creates a new PR instead of reusing an unrelated fork PR with the same head branch 580ms
✓ creates cross-repo PRs with the fork owner selector and default base branch 481ms
✓ surfaces missing gh binary errors 325ms
✓ surfaces gh auth errors with guidance 370ms
✓ restores same-repository upstream tracking after local PR checkout without a remote ref 313ms
✓ prepares pull request threads in worktree mode on the PR head branch 451ms
✓ prepares a worktree from the head branch when the host has no pull ref 751ms
✓ launches setup when creating a new PR worktree 461ms
✓ preserves fork upstream tracking when preparing a worktree PR thread 431ms
✓ refreshes a reused PR worktree onto the updated pull request head 395ms
✓ runs the setup script when a reused PR worktree moves onto the new head 359ms
✓ leaves the setup script alone when a reused PR worktree is already on the head 352ms
✓ resets a clean reused PR worktree onto a force-pushed pull request head 389ms
✓ keeps a reused PR worktree that carries its own commit off the rewritten head 465ms
✓ keeps a dirty reused PR worktree off the rewritten pull request head 498ms
✓ reuses an existing PR worktree with 0 preceding matching branches (fork: false) 369ms
✓ reuses an existing PR worktree with 110 preceding matching branches (fork: false) 967ms
✓ reuses an existing PR worktree with 0 preceding matching branches (fork: true) 358ms
✓ reuses an existing PR worktree with 110 preceding matching branches (fork: true) 828ms
✓ refreshes a reused PR worktree that has no upstream from the pull request ref 599ms
✓ preserves an unrelated local branch and upstream that share the fork head name 331ms
✓ does not block fork PR worktree prep when the fork head branch collides with root main 417ms
✓ does not overwrite an existing local main branch when preparing a fork PR worktree 403ms
✓ reuses an existing PR worktree and restores fork upstream tracking 429ms
✓ does not fail PR worktree prep when setup terminal startup fails 414ms
✓ create_pr preserves dirty work on an already pushed branch 406ms
✓ src/orchestration-v2/RunExecutionService.test.ts (54 tests) 87ms
stdout | src/usage/UsageService.test.ts > UsageService > reports saved usage of a removed directory only for windows it reaches
[06:01:40.445] ERROR (#1899): Error [AssertionError]: expected [] to deeply equal [ { day: '2026-08-01', …(10) } ]
at /home/runner/_work/t3code/t3code/apps/server/src/usage/UsageService.test.ts:1751:14 {
actual: [],
expected: [
{
day: '2026-08-01',
provider: 'claude',
model: 'claude-fable-5',
sourcePath: '/tmp/usage-service-test-T8UPcZ/claude/projects',
totals: [Object],
costUsd: 0,
cacheSavingsUsd: 0,
costSource: 'unpriced',
records: 1,
unpricedRecords: 1,
sessions: 1
}
],
showDiff: true,
operator: 'deepStrictEqual',
[cause]: undefined
}
❯ src/usage/UsageService.test.ts (40 tests | 1 failed) 783ms
❯ UsageService (40)
✓ reads Pi per-model usage and auxiliary costs once across forks and repeated entries 59ms
✓ reports missing Pi history and skips malformed records without losing valid usage 16ms
✓ discovers Pi history in its default home and directory overrides 28ms
✓ reads shared managed default and disabled extra account history once 12ms
✓ omits Cursor account usage when no file login is saved 25ms
✓ keeps Cursor credential errors visible when a saved login cannot be read 12ms
✓ answers Cursor from its cache while one shared refresh runs 19ms
✓ caches Cursor's whole retention and then refetches only the newest edge 15ms
✓ reports a failed Cursor refresh from its cache without refreshing 17ms
✓ restores the Cursor account cache after a restart 14ms
✓ does not read the macOS Cursor Keychain before account usage is enabled 6ms
✓ ignores stale Cursor file logins when the active credential store differs 29ms
✓ includes OpenCode history but does not substitute desktop usage for an unavailable Cursor account 11ms
✓ counts aliased OpenCode and Antigravity directories once 8ms
✓ reads configured and disabled accounts once across shared and aliased homes 18ms
✓ uses explicit account settings before environment and default homes, then refreshes them 13ms
✓ uses inherited home variables when explicit default accounts have no home settings 7ms
✓ reports unreadable transcripts as partial and recovers once they can be read 10ms
✓ reprices unchanged transcripts when custom prices are added, edited, or removed 15ms
✓ counts appended usage on a rescan of a grown transcript 9ms
✓ keeps large-record totals and costs exact through append, dedupe, restart and cleanup 154ms
✓ upgrades a v4 cache: reprices live Codex tiers, keeps deleted rollouts, leaves v4 intact 13ms
✓ preserves saved tokens, costs and sessions after transcript cleanup and restart 31ms
✓ credits the same copy of a duplicate after its transcripts are deleted 66ms
✓ keeps a newer cached read when a slower scan of another window finishes later 22ms
✓ keeps the later read when a scan that read earlier finishes first 24ms
× reports saved usage of a removed directory only for windows it reaches 16ms
✓ does not share an in-flight scan after custom prices change 8ms
✓ shares one scan between concurrent identical requests 7ms
✓ refetches a rate table inside its TTL only when the client asks 8ms
✓ preserves cached estimates when both pricing downloads fail and recovers 11ms
✓ recovers pricing through the GitHub API after a network failure 10ms
✓ recovers pricing through the GitHub API after a http failure 10ms
✓ recovers pricing through the GitHub API after a invalidJson failure 23ms
✓ recovers pricing through the GitHub API after a empty failure 12ms
✓ tries the GitHub API after the primary pricing request times out 4ms
✓ keeps pricing unavailable when neither download has usable rates 3ms
✓ throttles failed pricing loads from completion with cached rates: false 5ms
✓ throttles failed pricing loads from completion with cached rates: true 6ms
✓ does not orphan an in-flight scan when its first caller is interrupted 6ms
✓ src/cloud/ManagedEndpointRuntime.test.ts (32 tests) 102ms
✓ src/orchestration-v2/PullRequestSyncReactor.test.ts (20 tests) 74ms
✓ src/orchestration-v2/ThreadManagementService.test.ts (38 tests) 1096ms
✓ src/orchestration-v2/ThreadFind.test.ts (24 tests) 1455ms
✓ src/device/DeviceService.test.ts (33 tests) 100ms
✓ src/orchestration-v2/EffectWorker.test.ts (16 tests) 30ms
✓ src/provider/antigravityAuthSupport.test.ts (33 tests) 275ms
✓ src/mcp/toolkits/pullRequests/handlers.test.ts (24 tests) 54ms
✓ src/resourceTelemetry/ResourceTelemetry.test.ts (8 tests) 47ms
✓ src/mcp/OrchestratorMcpService.activity.test.ts (5 tests) 17ms
✓ src/provider/Drivers/CodexDriver.test.ts (14 tests) 91ms
✓ src/orchestration-v2/ShellStream.test.ts (24 tests) 17ms
✓ src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts (6 tests) 1754ms
✓ AcpRegistryAdapterV2 (6)
✓ offers client terminals to Devin only and client fs to no registry agent 567ms
✓ opens a real ACP child process resolved from registry configuration 1043ms
✓ src/provider/acp/AntigravityProtocol.test.ts (37 tests) 12ms
✓ src/cli/project.test.ts (14 tests) 1483ms
stdout | src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts > restart recovery records one continuation per active thread and is idempotent
[06:02:04.448] INFO (#1): Migrations ran successfully {
migrations: [
'1_OrchestrationEvents',
'2_OrchestrationCommandReceipts',
'3_CheckpointDiffBlobs',
'4_ProviderSessionRuntime',
'5_Projections',
'6_ProjectionThreadSessionRuntimeModeColumns',
'7_ProjectionThreadMessageAttachments',
'8_ProjectionThreadActivitySequence',
'9_ProviderSessionRuntimeMode',
'10_ProjectionThreadsRuntimeMode',
'11_OrchestrationThreadCreatedRuntimeMode',
'12_ProjectionThreadsInteractionMode',
'13_ProjectionThreadProposedPlans',
'14_ProjectionThreadProposedPlanImplementation',
'15_ProjectionTurnsSourceProposedPlan',
'16_CanonicalizeModelSelections',
'17_ProjectionThreadsArchivedAt',
'18_ProjectionThreadsArchivedAtIndex',
'19_ProjectionSnapshotLookupIndexes',
'20_AuthAccessManagement',
'21_AuthSessionClientMetadata',
'22_AuthSessionLastConnectedAt',
'23_ProjectionThreadShellSummary',
'24_BackfillProjectionThreadShellSummary',
'25_CleanupInvalidProjectionPendingApprovals',
'26_CanonicalizeModelSelectionOptions',
'27_ProviderSessionRuntimeInstanceId',
'28_ProjectionThreadSessionInstanceId',
'29_ProjectionThreadDetailOrderingIndexes',
'30_ProjectionThreadShellArchiveIndexes',
'31_AuthAuthorizationScopes',
'32_AuthPairingProofKeyThumbprint',
'33_ProjectionThreadsSettled',
'34_ProjectionThreadsSnoozed',
'35_ProjectionThreadTitleRegeneration',
'36_ProjectionThreadsPinned',
'37_ProjectionTurnsKeysetIndex',
'38_ProjectionThreadsPinOrderKey',
'39_ProjectionProjectsDefaultThreadEnvMode',
'40_ProjectionProjectFaviconPath',
'41_AuthSessionClientConnection',
'42_ProjectionThreadLinkedPullRequest',
'43_ProjectionThreadsUnsettledAt',
'44_ClearAutomaticProjectModelDefaults',
'45_ProjectionProjectsAutoPull',
'46_RepairAutomaticSettlementTimestamps',
'47_ProjectionProjectIcon',
'48_ProjectionThreadBranchPullRequest',
'49_ProjectionThreadsActiveOrderKey',
'50_ProjectionThreadPullRequests',
'51_ProjectionThreadMessageContext',
'52_ProjectionThreadTitleState',
'53_PullRequestFilesViewed',
'54_ProjectionThreadsAutoSettleDisabledAt',
'55_OrchestrationV2',
'56_RemoveRedundantProjectionIndexes',
'57_ScheduledTaskWebhooks',
'58_WebhookRelayDeliveries',
'59_McpAppModelContext',
'60_ThreadSnapshotWindowIndexes',
'61_PullRequestReviewGuides',
'62_ThreadFailureLookupIndex',
'63_DropUnusedV1Projections',
'64_CanonicalizeThreadPullRequestLinks'
]
}
stdout | src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts > restart recovery records one continuation per active thread and is idempotent
[06:02:04.864] INFO (#1): Migrations ran successfully {
migrations: [
'1_OrchestrationEvents',
'2_OrchestrationCommandReceipts',
'3_CheckpointDiffBlobs',
'4_ProviderSessionRuntime',
'5_Projections',
'6_ProjectionThreadSessionRuntimeModeColumns',
'7_ProjectionThreadMessageAttachments',
'8_ProjectionThreadActivitySequence',
'9_ProviderSessionRuntimeMode',
'10_ProjectionThreadsRuntimeMode',
'11_OrchestrationThreadCreatedRuntimeMode',
'12_ProjectionThreadsInteractionMode',
'13_ProjectionThreadProposedPlans',
'14_ProjectionThreadProposedPlanImplementation',
'15_ProjectionTurnsSourceProposedPlan',
'16_CanonicalizeModelSelections',
'17_ProjectionThreadsArchivedAt',
'18_ProjectionThreadsArchivedAtIndex',
'19_ProjectionSnapshotLookupIndexes',
'20_AuthAccessManagement',
'21_AuthSessionClientMetadata',
'22_AuthSessionLastConnectedAt',
'23_ProjectionThreadShellSummary',
'24_BackfillProjectionThreadShellSummary',
'25_CleanupInvalidProjectionPendingApprovals',
'26_CanonicalizeModelSelectionOptions',
'27_ProviderSessionRuntimeInstanceId',
'28_ProjectionThreadSessionInstanceId',
'29_ProjectionThreadDetailOrderingIndexes',
'30_ProjectionThreadShellArchiveIndexes',
'31_AuthAuthorizationScopes',
'32_AuthPairingProofKeyThumbprint',
'33_ProjectionThreadsSettled',
'34_ProjectionThreadsSnoozed',
'35_ProjectionThreadTitleRegeneration',
'36_ProjectionThreadsPinned',
'37_ProjectionTurnsKeysetIndex',
'38_ProjectionThreadsPinOrderKey',
'39_ProjectionProjectsDefaultThreadEnvMode',
'40_ProjectionProjectFaviconPath',
'41_AuthSessionClientConnection',
'42_ProjectionThreadLinkedPullRequest',
'43_ProjectionThreadsUnsettledAt',
'44_ClearAutomaticProjectModelDefaults',
'45_ProjectionProjectsAutoPull',
'46_RepairAutomaticSettlementTimestamps',
'47_ProjectionProjectIcon',
'48_ProjectionThreadBranchPullRequest',
'49_ProjectionThreadsActiveOrderKey',
'50_ProjectionThreadPullRequests',
'51_ProjectionThreadMessageContext',
'52_ProjectionThreadTitleState',
'53_PullRequestFilesViewed',
'54_ProjectionThreadsAutoSettleDisabledAt',
'55_OrchestrationV2',
'56_RemoveRedundantProjectionIndexes',
'57_ScheduledTaskWebhooks',
'58_WebhookRelayDeliveries',
'59_McpAppModelContext',
'60_ThreadSnapshotWindowIndexes',
'61_PullRequestReviewGuides',
'62_ThreadFailureLookupIndex',
'63_DropUnusedV1Projections',
'64_CanonicalizeThreadPullRequestLinks'
]
}
stdout | src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts > restart recovery records one continuation per active thread and is idempotent
provider runtime recovery (ms)
N A seed cand select prepare prep/A shutdown boot-after crash-recover recover/A recover-2
500 20 301.3 35 0.9 14.8 0.74 63.4 4.9 51.1 2.55 5.1
✓ src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts (2 tests | 1 skipped) 775ms
✓ restart recovery records one continuation per active thread and is idempotent 774ms
✓ src/review/ReviewService.test.ts (8 tests) 585ms
✓ src/orchestration-v2/ProviderTurnControlService.test.ts (1 test) 6ms
✓ src/scheduledTasks/ScheduledTaskService.test.ts (3 tests) 123ms
✓ src/orchestration-v2/pullRequestWatch.test.ts (15 tests) 5ms
✓ src/attachmentStore.test.ts (16 tests) 9ms
✓ src/preview/ServerBrowserContexts.test.ts (10 tests) 12ms
✓ src/cli/service.test.ts (19 tests) 45ms
✓ src/diagnostics/ProcessDiagnostics.test.ts (4 tests) 16ms
✓ src/usage/usageAggregation.test.ts (18 tests) 18ms
✓ src/vcs/VcsDriverRegistry.test.ts (6 tests) 31ms
✓ src/orchestration-v2/ProjectCommands.test.ts (15 tests) 8ms
✓ src/mcp/toolkits/worktree/registration.test.ts (1 test) 99ms
✓ src/orchestration-v2/toolOutputImageBytes.test.ts (10 tests) 15ms
✓ src/process/agentScope.test.ts (8 tests) 52ms
✓ src/environment/DirectEndpoints.test.ts (9 tests) 25ms
✓ src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts (1 test) 32ms
✓ src/provider/OpenCode2Client.events.test.ts (4 tests) 63ms
✓ src/device/deviceToolMaintenance.test.ts (8 tests) 343ms
✓ src/project/ProjectSetupScriptRunner.test.ts (1 test) 12ms
✓ src/persistence/Sqlite.test.ts (6 tests) 564ms
✓ waits out a concurrent writer instead of failing with SQLITE_BUSY 406ms
✓ src/preview/PreviewBrowserHost.test.ts (5 tests) 12ms
✓ src/auth/EnvironmentAuthPolicy.test.ts (7 tests) 28ms
✓ src/provider/CodexAuthCallback.test.ts (3 tests) 32ms
✓ src/resourceTelemetry/DesktopTelemetryReceiver.test.ts (6 tests) 8ms
✓ src/outboundHttp.test.ts (2 tests | 1 skipped) 34ms
✓ src/telemetry/DelegatedTaskAnalytics.test.ts (1 test) 6ms
stdout | src/cloud/http.test.ts > connect routes > answers CloudLinkInternalError with HTTP 500
[06:02:23.785] ERROR (#28): Could not answer cloud health request. {
cause: Error: disk full
at /home/runner/_work/t3code/t3code/apps/server/src/cloud/http.test.ts:75:16
at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:2763:52
at runWithSuite (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:3248:8)
at Object.collect (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:2763:22)
at Object.collect (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:2768:51)
at processTicksAndRejections (node:internal/process/task_queues:104:5)
at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:3449:26
at collectTests (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:3422:3)
at startTests (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:4156:17)
at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/base.Cc3oda2V.js:90:6
}
stdout | src/cloud/http.test.ts > connect routes > answers ServerAuthCloudMintPublicKeyMissingError with HTTP 500
[06:02:23.789] ERROR (#40): Cloud mint public key is not installed for this environment. { cause: { _tag: 'ServerAuthCloudMintPublicKeyMissingError' } }
✓ src/cloud/http.test.ts (4 tests) 22ms
✓ src/utils/subscribeBeforeSnapshot.test.ts (2 tests) 11ms
✓ src/provider/Drivers/ClaudeSkillDispatch.test.ts (8 tests) 6ms
✓ src/preview/DesktopBrowserChannel.test.ts (1 test) 409ms
✓ receives desktop messages and exits while the parent keeps both input pipes open 408ms
✓ src/launcherWatch.test.ts (4 tests) 11ms
✓ src/orchestration-v2/ProjectStore.test.ts (1 test) 52ms
✓ src/orchestration-v2/ProviderTurnTokenUsage.test.ts (1 test) 2ms
✓ src/cli/consoleStdin.test.ts (2 tests) 2ms
✓ src/cloud/servicePreflight.test.ts (3 tests) 2ms
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
FAIL src/usage/UsageService.test.ts > UsageService > reports saved usage of a removed directory only for windows it reaches
AssertionError: expected [] to deeply equal [ { day: '2026-08-01', …(10) } ]
- Expected
+ Received
- [
- {
- "cacheSavingsUsd": 0,
- "costSource": "unpriced",
- "costUsd": 0,
- "day": "2026-08-01",
- "model": "claude-fable-5",
- "provider": "claude",
- "records": 1,
- "sessions": 1,
- "sourcePath": "/tmp/usage-service-test-T8UPcZ/claude/projects",
- "totals": {
- "cacheCreationTokens": 0,
- "cachedInputTokens": 0,
- "outputTokens": 5,
- "reasoningTokens": 0,
- "uncachedInputTokens": 10,
- },
- "unpricedRecords": 1,
- },
- ]
+ []
❯ src/usage/UsageService.test.ts:1751:14
1749|
1750| const reached = yield* service.readSummary(WINDOW);
1751| assert.deepStrictEqual(reached.buckets, first.buckets);
| ^
1752| assert.strictEqual(reached.sources[0]?.status, "ok");
1753|
❯ IteratorImpl.~effect/Effect/successCont ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28
❯ ExitPrimitive.~effect/Effect/evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30
❯ FiberImpl.runLoop ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41
Test Files 1 failed | 53 passed (54)
Tests 1 failed | 804 passed | 2 skipped (807)
Start at 06:00:44
Duration 101.53s (tests 61%, import 29%, transform 8%, setup 2%)
Import 1176 modules were evaluated 13318 times · 28.26s total, 29% of tracked time
~25.77s faster with isolate: false — shared modules are evaluated once per worker instead of once per file
learn more: https://vitest.dev/guide/improving-performance#test-isolation
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27
❯ Array.<anonymous> ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17
❯ doneUnsafe ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/Deferred.ts:1707:17
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
Error: AssertionError: expected [] to deeply equal [ { day: '2026-08-01', …(10) } ]
- Expected
+ Received
- [
- {
- "cacheSavingsUsd": 0,
- "costSource": "unpriced",
- "costUsd": 0,
- "day": "2026-08-01",
- "model": "claude-fable-5",
- "provider": "claude",
- "records": 1,
- "sessions": 1,
- "sourcePath": "/tmp/usage-service-test-T8UPcZ/claude/projects",
- "totals": {
- "cacheCreationTokens": 0,
- "cachedInputTokens": 0,
- "outputTokens": 5,
- "reasoningTokens": 0,
- "uncachedInputTokens": 10,
- },
- "unpricedRecords": 1,
- },
- ]
+ []
❯ src/usage/UsageService.test.ts:1751:14
❯ IteratorImpl.~effect/Effect/successCont ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28
❯ ExitPrimitive.~effect/Effect/evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30
❯ FiberImpl.runLoop ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27
❯ Array.<anonymous> ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17
❯ doneUnsafe ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/Deferred.ts:1707:17
Error: Process completed with exit code 1.
▸ Run if test -f "/home/runner/_work/_temp/thread-transfer-result.json"; then
if test -f "/home/runner/_work/_temp/thread-transfer-result.json"; then
echo "present=true" >> "$GITHUB_OUTPUT"
else
echo "present=false" >> "$GITHUB_OUTPUT"
fi
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
GITHUB_REPO_NAME: pingdotgg/t3code
Post job cleanup.
##[start-action display=Setup Vite+;id=__a8a888af-f7e5-4caa-bc4b-45b894d7b94e.__voidzero-dev_setup-vp]
##[end-action id=__a8a888af-f7e5-4caa-bc4b-45b894d7b94e.__voidzero-dev_setup-vp;outcome=skipped;conclusion=skipped;duration_ms=0]
##[start-action display=Cache Vite+;id=__a8a888af-f7e5-4caa-bc4b-45b894d7b94e.__actions_cache]
##[end-action id=__a8a888af-f7e5-4caa-bc4b-45b894d7b94e.__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/5eccd3cd-715b-48e8-86cf-e3c3ef1fcfae' 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: 219
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 710
BLACKSMITH_CHECK_RUN_ID: 130354063145
BLACKSMITH_JOB_DISPLAY_NAME: Test Server 3
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