GitHub check

256 KB of 404 KB loaded Download the full log (404 KB)
148 KB of earlier output not loaded
79740Z
 Test Files  103 passed (103)
      Tests  845 passed (845)
   Start at  18:05:25
   Duration  15.86s (import 46%, transform 30%, tests 13%, setup 11%, worker 1%)

     Import  524 modules were evaluated 6591 times ยท 41.74s total, 46% of tracked time
             ~4.20s 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

 โœ“ src/codexArtifactTemplates.test.ts (9 tests) 3ms

~/packages/provider-cursor$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“ src/toolActivity.test.ts (4 tests) 4ms
 โœ“ src/cliArgs.test.ts (8 tests) 6ms
 โœ“ src/relayTracing.test.ts (2 tests) 9ms
 โœ“ src/markdownPipeline.test.ts (3 tests) 55ms
 โœ“ src/filePreview.test.ts (13 tests) 11ms
 โœ“ src/codexFileCitations.test.ts (5 tests) 3ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-cursor

 โœ“ src/searchRanking.test.ts (3 tests) 3ms
 โœ“ src/cliRelease.test.ts (3 tests) 6ms
 โœ“ src/server/azureDevOpsPullRequestJson.test.ts (28 tests) 88ms
 โœ“ src/shared/definition.test.ts (17 tests) 36ms
 โœ“ src/relayAuth.test.ts (2 tests) 12ms
 โœ“ src/connectAuth.test.ts (3 tests) 3ms
 โœ“ src/server/AzureDevOpsCli.test.ts (7 tests) 74ms
 โœ“ src/server/AzureDevOpsSourceControlProvider.test.ts (1 test) 8ms
 โœ“ src/desktopBootstrapToken.test.ts (3 tests) 3ms
 โœ“ src/delimitedPreview.test.ts (8 tests) 710ms
   โœ“ delimited file previews (8)
     โœ“ bounds rows, columns and cell length and reports partial content 705ms
 โœ“ src/server/AzureDevOpsPullRequestCli.test.ts (21 tests) 195ms
 โœ“ src/usageFormat.test.ts (4 tests) 11ms
 โœ“ src/cloneUrl.test.ts (3 tests) 2ms
 โœ“ src/favicon.test.ts (6 tests) 8ms
 โœ“ src/desktopAppControl.test.ts (2 tests) 8ms
 โœ“ src/oauthScope.test.ts (3 tests) 13ms
 โœ“ src/schemaYaml.test.ts (2 tests) 9ms
 โœ“ src/server/AzureDevOpsPullRequestProvider.test.ts (12 tests) 619ms

 Test Files  7 passed (7)
      Tests  100 passed (100)
   Start at  18:05:38
   Duration  3.32s (transform 50%, import 34%, tests 10%, setup 6%)

 โœ“ src/t3McpToolPresentation.test.ts (2 tests) 38ms
 โœ“ src/thirdPartyLicenses.test.ts (2 tests) 8ms

~/infra/relay$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“ src/server/skills.test.ts (5 tests) 75ms
 โœ“ src/threadSearch.test.ts (2 tests) 2ms
 โœ“ src/AgentScope.test.ts (1 test) 7ms
 โœ“ src/relayUrl.test.ts (4 tests) 2ms
 โœ“  react  src/features/settings/SettingsServerControlsRouteScreen.test.tsx (1 test) 30ms
 โœ“ src/video.test.ts (2 tests) 2ms
 โœ“ src/providerAuthReturnUrl.test.ts (5 tests) 4ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/infra/relay

 โœ“ src/terminalLabels.test.ts (2 tests) 5ms
 โœ“  react  src/features/pull-requests/usePullRequestDiff.test.tsx (6 tests) 106ms
 โœ“ src/telemetryId.test.ts (1 test) 2ms
 โœ“ src/changedFileKind.test.ts (5 tests) 5ms
 โœ“ src/relaySigning.test.ts (1 test) 2ms
 โœ“ src/t3ProjectFile.test.ts (2 tests) 4ms
 โœ“ src/relayJwt.test.ts (1 test) 3ms

 Test Files  87 passed (87)
      Tests  991 passed | 2 skipped (993)
   Start at  18:05:32
   Duration  10.73s (import 42%, transform 27%, setup 17%, tests 13%, worker 1%)

     Import  347 modules were evaluated 2578 times ยท 24.33s total, 42% of tracked time
             ~2.16s 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


~/packages/provider-core$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“ src/server/accountUsage.test.ts (9 tests) 661ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-core

 โœ“ src/server/usageLimits.test.ts (9 tests) 61ms
 โœ“ src/server/usageLimits.test.ts (7 tests) 25ms
 โœ“ src/server/textGeneration.test.ts (8 tests) 112ms
 โœ“ src/server/auth.test.ts (10 tests) 164ms
 โœ“  unit  src/lib/modelOptions.test.ts (29 tests) 61ms
 โœ“ src/server/CursorAgentSdk.test.ts (1 test) 14ms
 โœ“  unit  src/lib/threadActivity.test.ts (40 tests) 277ms
 โœ“ src/server/status.test.ts (8 tests) 43ms
 โœ“ src/server/transportFailure.test.ts (10 tests) 11ms
 โœ“ src/server/ModelCatalog.test.ts (4 tests) 13ms
 โœ“ src/server/accountCache.test.ts (2 tests) 2ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-crypto@58.0.7_expo@58.0.14/node_modules/expo-crypto/build/Crypto.js" points to missing source files
 โœ“ src/server/driver.test.ts (2 tests) 160ms
 โœ“ src/server/CursorSdk.test.ts (2 tests) 11ms
 โœ“ src/server/credentialStore.test.ts (5 tests) 83ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo@58.0.14_277a83826bb26ba15256633fefeb0bc2/node_modules/expo/build/Expo.js" points to missing source files
 โœ“ src/server/adapter.test.ts (18 tests) 290ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo@58.0.14_277a83826bb26ba15256633fefeb0bc2/node_modules/expo/build/Expo.fx.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo@58.0.14_277a83826bb26ba15256633fefeb0bc2/node_modules/expo/build/winter/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo@58.0.14_277a83826bb26ba15256633fefeb0bc2/node_modules/expo/build/winter/runtime.js" points to missing source files
 โœ“  unit  src/features/threads/threadListV2.test.ts (62 tests) 75ms
 โฏ  react  src/state/queries.debounce.test.tsx (0 test)
 โœ“  unit  src/state/thread-outbox.test.ts (36 tests) 157ms
 โœ“ src/server/CursorSdkCatalog.test.ts (1 test) 16ms

 Test Files  14 passed (14)
      Tests  90 passed (90)
   Start at  18:05:41
   Duration  3.98s (import 42%, transform 41%, setup 9%, tests 8%)


~/oxlint-plugin-t3code$ vp test run --config ../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“ src/environments/ManagedEndpointProvider.test.ts (31 tests) 128ms
 โœ“ src/server/notification.test.ts (4 tests) 18ms
 โœ“ src/environments/ManagedEndpointReaper.test.ts (17 tests) 69ms
 โœ“ src/server/failure.test.ts (10 tests) 9ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/oxlint-plugin-t3code

 โœ“ src/server/providerAuthFlow.test.ts (17 tests) 157ms
 โœ“ src/server/managedProvider.test.ts (9 tests) 168ms
 โœ“ src/server/snapshotProbe.test.ts (7 tests) 50ms
 โœ“ src/server/attachmentPrompt.test.ts (2 tests) 15ms
 โœ“  unit  src/features/agent-awareness/remoteRegistration.test.ts (15 tests) 891ms
 โœ“  unit  src/lib/composerFiles.test.ts (36 tests) 80ms
 โœ“ src/server/maintenanceResolver.test.ts (52 tests) 331ms
 โœ“  unit  src/features/diffs/nativeReviewDiffHighlighter.test.ts (15 tests) 594ms
   โœ“ highlightNativeReviewDiffVisibleRows (6)
     โœ“ skips collapsed code before the row cap and restores it on expansion 406ms
 โœ“ src/server/mcpSession.test.ts (2 tests) 3ms
stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: false)
[composer-attachments] could not remove local file TypeError: file.delete is not a function
 โœ“ src/server/runtimeInstructions.test.ts (2 tests) 3ms
    at removePersistedComposerAttachmentFile (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/composerImages.ts:209:12)
 โœ“ src/server/instanceEnvironment.test.ts (4 tests) 48ms
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at releaseUnusedComposerAttachmentFiles (/home/runner/_work/t3code/t3code/apps/mobile/src/state/use-composer-drafts.ts:903:5)

Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Paths.js" points to missing source files
 โœ“ src/server/processGroup.test.ts (2 tests) 11ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Directory.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/ExpoFileSystem.js" points to missing source files
 โœ“ src/server/collectStreamText.test.ts (2 tests) 18ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/global.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/EventEmitter.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/NativeModule.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/SharedObject.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/SharedRef.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/setUpJsLogger.fx.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/errors/CodedError.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.js" points to missing source files
stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: true)
[composer-attachments] could not remove local file Error [RolldownError]: Parse failure: Parse failed with 1 error:
Flow is not supported
1: /**
   ^
2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
3:  *
At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
    at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-DyTyzzWG.mjs:164:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
    at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
    at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
    at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:20955:9)
    at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25344:64) {
  cause: undefined,
  __vitest_rollup_error__: {
    plugin: undefined,
    id: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js',
    loc: {
      line: 1,
      column: 0,
      file: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js'
    },
    frame: '1  |  /**\n' +
      '   |  ^\n' +
      '2  |   * Copyright (c) Meta Platforms, Inc. and affiliates.\n' +
      '3  |   *'
  },
  runnerError: Error: RunnerError
      at reviveInvokeError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:547:64)
      at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:562:33)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1202:7)
      at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1219:83)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
      at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/module-evaluator.js:261:4)
      at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1262:59)
      at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1169:73)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: true)
[composer-attachments] could not verify incoming share ownership {
  _tag: 'IncomingShareStorageError',
  operation: 'load',
  shareId: null,
  cause: Error [RolldownError]: Parse failure: Parse failed with 1 error:
  Flow is not supported
  1: /**
     ^
  2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
  3:  *
  At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
      at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-DyTyzzWG.mjs:164:24)
      at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
      at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
      at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
      at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:20955:9)
      at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25344:64) {
    cause: undefined,
    __vitest_rollup_error__: {
      plugin: undefined,
      id: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js',
      loc: [Object],
      frame: '1  |  /**\n' +
        '   |  ^\n' +
        '2  |   * Copyright (c) Meta Platforms, Inc. and affiliates.\n' +
        '3  |   *'
    },
    runnerError: Error: RunnerError
        at reviveInvokeError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:547:64)
        at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:562:33)
        at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
        at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1202:7)
        at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1219:83)
        at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
        at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/module-evaluator.js:261:4)
        at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1262:59)
        at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1169:73)
        at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
  }
}

 โœ“  unit  src/features/sharing/incoming-share-model.test.ts (19 tests) 30ms
stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft read fails
[composer-drafts] failed to hydrate drafts {
 โœ“ src/server/mcpToolPresentation.test.ts (4 tests) 7ms
  _tag: 'ComposerDraftPersistenceError',
  operation: 'read',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: storage unavailable
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-composer-drafts.test.ts:1978:45
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2886:64
 โœ“  unit  src/state/use-thread-outbox-drain.test.ts (23 tests) 85ms
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
      at new Promise (<anonymous>)
      at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
 โœ“  unit  src/lib/attachmentUpload.test.ts (28 tests) 32ms
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
      at new Promise (<anonymous>)
      at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft read fails
[composer-drafts] failed to hydrate drafts {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'read',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: storage unavailable
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-composer-drafts.test.ts:1978:45
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2886:64
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
      at new Promise (<anonymous>)
      at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
      at new Promise (<anonymous>)
      at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft decode fails
[composer-drafts] failed to hydrate drafts {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'decode',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: {
    _tag: 'SchemaError',
    message: 'Expected 1\n  at ["schemaVersion"]'
  }
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft decode fails
[composer-drafts] failed to hydrate drafts {
  _tag: 'ComposerDraftPersistenceError',
 โœ“ src/server/threadTitleContext.test.ts (2 tests) 3ms
  operation: 'decode',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
 โœ“  unit  src/state/use-composer-drafts.test.ts (74 tests) 1153ms
  cause: {
    _tag: 'SchemaError',
    message: 'Expected 1\n  at ["schemaVersion"]'
  }
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox drain delivery cleanup > removes an acknowledged outbox item even when the sign-out archive write fails
[thread-outbox] could not update sign-out snapshot after delivery {
  messageId: 'archive-write-failure',
  error: {
    _tag: 'ComposerDraftPersistenceError',
 โœ“ src/server/textGenerationPrompts.test.ts (1 test) 2ms
    operation: 'write',
    directory: 'composer-drafts',
    fileName: 'drafts.json',
    cause: Error: Draft storage unavailable
        at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:335:37
        at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
        at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
  }
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox drain delivery cleanup > retries only cleanup after an acknowledged send removal fails
[thread-outbox] failed to remove acknowledged queued message {
  environmentId: 'environment-1',
  threadId: 'thread-1',
  messageId: 'message-acknowledged',
  error: {
    _tag: 'ThreadOutboxManagerError',
    operation: 'remove',
    environmentId: 'environment-1',
    threadId: 'thread-1',
    messageId: 'message-acknowledged',
    cause: Error: storage unavailable
        at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:399:55
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
        at new Promise (<anonymous>)
        at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
        at new Promise (<anonymous>)
        at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3904:64
  }
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox delivered creation recovery > retries a failed removal without duplicating recovered draft content
[thread-outbox] could not remove recovered pending task Error: storage unavailable
    at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:557:30
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
    at new Promise (<anonymous>)
    at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3904:64

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox delivered creation recovery > keeps the queue entry when the recovered draft cannot persist
[thread-outbox] could not hand an edited pending task to the composer {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'write',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: disk full
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:583:37
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox recovery rollback > rolls a failed recovery merge back so the retry cannot duplicate the text
[thread-outbox] failed to persist a recovery rollback {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'write',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: disk full
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:733:37
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox recovery rollback > rolls a failed recovery merge back so the retry cannot duplicate the text
[thread-outbox] failed to restore an undeliverable message {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'write',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: disk full
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:733:37
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
}

 โœ“ src/agentActivity/FcmDeliveries.test.ts (29 tests) 140ms
 โœ“ src/server/textGenerationUtils.test.ts (3 tests) 13ms

 Test Files  18 passed (18)
      Tests  134 passed (134)
   Start at  18:05:43
   Duration  4.99s (transform 45%, import 40%, setup 11%, tests 4%)

     Import  182 modules were evaluated 1033 times ยท 9.73s total, 40% of tracked time
             ~320ms 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


~/packages/client-runtime$ vp test run โŠ˜ cache disabled
 โœ“ src/http/Api.test.ts (27 tests) 229ms
 โœ“ src/environments/EnvironmentConnector.test.ts (12 tests) 332ms
 โœ“ src/agentActivity/ApnsDeliveries.test.ts (36 tests) 317ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/client-runtime

 โœ“ src/hooks/HookForwarder.test.ts (17 tests) 522ms
 โœ“  unit  src/features/home/useThreadListActions.test.ts (37 tests) 75ms
 โœ“ src/agentActivity/AgentActivityPublisher.test.ts (10 tests) 35ms
 โœ“  unit  src/features/pull-requests/pullRequestDiffHighlightFiles.test.ts (45 tests) 940ms
   โœ“ loads a complete 100k-line addition with empty-side start 0 beyond the RPC cap 313ms
   โœ“ loads a complete 100k-line addition with empty-side start 1 beyond the RPC cap 519ms
 โœ“  unit  src/state/thread-task-permissions.test.ts (7 tests) 49ms
 โœ“  unit  src/native/workspace-stack-projection.test.ts (24 tests) 17ms
 โœ“ src/environments/EnvironmentLinker.test.ts (4 tests) 87ms
 โœ“ src/agentActivity/ApnsClient.test.ts (6 tests) 226ms
 โœ“  unit  src/state/use-thread-outbox-drain.permissions.test.ts (12 tests) 105ms
 โœ“  unit  src/lib/mobileTheme.test.ts (24 tests) 169ms
 โœ“ src/hooks/HookInboxStore.test.ts (11 tests) 1011ms
   โœ“ HookInboxStore (11)
     โœ“ refuses a request that would pass the byte cap 634ms
 โœ“  unit  src/lib/composerContext.test.ts (16 tests) 255ms
 โœ“ src/agentActivity/FcmClient.test.ts (4 tests) 104ms
 โœ“  unit  src/features/pull-requests/pullRequestList.test.ts (18 tests) 36ms
 โœ“  unit  src/lib/attachmentDownload.test.ts (19 tests) 79ms
 โœ“ src/auth/RelayTokens.test.ts (5 tests) 80ms
 โœ“  unit  src/lib/composerAttachmentUploadQueue.test.ts (11 tests) 59ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.705] INFO (#5): Plan: 1 tasks
[18:05:51.705] INFO (#5): [PublishClientConfig] run [action]
[18:05:51.705] INFO (#5):

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.734] INFO (#47): [PublishClientConfig] running

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
Wrote relay client configuration to /tmp/t3-relay-client-config-PBNybU/client.env
[18:05:51.737] INFO (#47): [PublishClientConfig] ran (3ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.747] INFO (#48): [PublishClientConfig] ran (12ms)
[18:05:51.747] INFO (#5):
[18:05:51.747] INFO (#5): Done: 1 succeeded (42ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.753] INFO (#5): Plan: no resources
[18:05:51.753] INFO (#5):
[18:05:51.753] INFO (#63): [PublishClientConfig] skipped
[18:05:51.753] INFO (#64): [PublishClientConfig] skipped
[18:05:51.753] INFO (#5):
[18:05:51.753] INFO (#5): Done: 0 succeeded, 1 skipped (0ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.775] INFO (#5): Plan: 1 tasks
[18:05:51.775] INFO (#5): [PublishClientConfig] run [action]
[18:05:51.775] INFO (#5):

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.780] INFO (#79): [PublishClientConfig] running

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
Wrote relay client configuration to /tmp/t3-relay-client-config-PBNybU/client.env
[18:05:51.781] INFO (#79): [PublishClientConfig] ran (1ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.782] INFO (#80): [PublishClientConfig] ran (2ms)
[18:05:51.782] INFO (#5):
[18:05:51.782] INFO (#5): Done: 1 succeeded (7ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[18:05:51.851] INFO (#5): Plan: 1 tasks
[18:05:51.851] INFO (#5): [PublishClientConfig] drop [action]
[18:05:51.851] INFO (#5):
[18:05:51.854] INFO (#88): [PublishClientConfig] deleting
[18:05:51.855] INFO (#88): [PublishClientConfig] deleted (1ms)
[18:05:51.855] INFO (#5):
[18:05:51.855] INFO (#5): Done: 1 succeeded (4ms)

 โœ“  unit  src/features/review/nativeReviewDiffAdapter.test.ts (19 tests) 2160ms
   โœ“ buildNativeReviewDiffData row bound (1)
     โœ“ caps each huge file excerpt while preserving full counts and ordinary files 1392ms
   โœ“ buildNativeReviewDiffData word comparison bound (3)
     โœ“ bounds eager word comparisons without truncating a large modified file 498ms
stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[18:05:51.878] INFO (#117): Plan: 1 tasks
[18:05:51.878] INFO (#117): [PublishClientConfig] run [action]
[18:05:51.880] INFO (#117):

stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[18:05:51.881] INFO (#158): [PublishClientConfig] running
[18:05:51.881] INFO (#158): [PublishClientConfig] fail โ€” RelayUrlUnavailableError: The relay worker has no URL yet; deploy again once the worker exists. (0ms)
[18:05:51.882] INFO (#117):
[18:05:51.882] INFO (#117): Failed: 0 succeeded, 1 failed (1ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[18:05:51.889] INFO (#117): Plan: 1 tasks
[18:05:51.889] INFO (#117): [PublishClientConfig] drop [action]
[18:05:51.889] INFO (#117):
[18:05:51.890] INFO (#166): [PublishClientConfig] deleting
[18:05:51.890] INFO (#166): [PublishClientConfig] deleted (0ms)
[18:05:51.891] INFO (#117):
[18:05:51.891] INFO (#117): Done: 1 succeeded (2ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > refuses a value with a line break rather than corrupting the file
[18:05:51.901] INFO (#195): Plan: 1 tasks
[18:05:51.901] INFO (#195): [PublishClientConfig] run [action]
[18:05:51.901] INFO (#195):

stdout | src/clientConfig.test.ts > PublishClientConfig > refuses a value with a line break rather than corrupting the file
[18:05:51.902] INFO (#236): [PublishClientConfig] running
[18:05:51.902] INFO (#236): [PublishClientConfig] fail โ€” EnvValueNotSingleLineError: T3CODE_RELAY_CLIENT_OTLP_TRACES_DATASET contains a line break and cannot be written as one .env assignment. (0ms)
[18:05:51.902] INFO (#195):
[18:05:51.903] INFO (#195): Failed: 0 succeeded, 1 failed (1ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > refuses a value with a line break rather than corrupting the file
[18:05:51.904] INFO (#195): Plan: 1 tasks
[18:05:51.904] INFO (#195): [PublishClientConfig] drop [action]
[18:05:51.904] INFO (#195):
[18:05:51.905] INFO (#244): [PublishClientConfig] deleting
[18:05:51.905] INFO (#244): [PublishClientConfig] deleted (0ms)
[18:05:51.905] INFO (#195):
[18:05:51.905] INFO (#195): Done: 1 succeeded (1ms)

 โœ“ src/clientConfig.test.ts (10 tests) 334ms
 โœ“  unit  src/features/threads/thread-feed-live-follow.test.ts (28 tests) 15ms
 โœ“ src/environments/EnvironmentCredentials.test.ts (3 tests) 51ms
 โœ“ src/auth/DpopProofs.verifyAndConsume.test.ts (4 tests) 77ms
 โœ“  unit  src/features/voice-input/voiceInputSession.test.ts (13 tests) 32ms
 โœ“ src/agentActivity/MobileRegistrations.test.ts (2 tests) 23ms
 โœ“  unit  src/features/updates/app-updates.test.ts (11 tests) 86ms
 โœ“  unit  src/state/composer-attachment-uploads.test.ts (5 tests) 41ms
 โœ“  unit  src/lib/composerContextClipboard.test.ts (7 tests) 99ms
 โœ“  unit  src/connection/environment-cache-store.test.ts (4 tests) 118ms
 โœ“ src/agentActivity/agentActivityPolicy.test.ts (5 tests) 18ms
 โœ“  unit  src/features/review/reviewModel.test.ts (13 tests) 44ms
 โœ“ src/previewTunnelSweep.test.ts (4 tests) 93ms
 โœ“ src/state/server.test.ts (24 tests) 330ms
 โœ“  unit  src/lib/android-workspace-navigation.test.ts (8 tests) 13ms
 โœ“ src/state/runtime.test.ts (23 tests) 300ms
 โœ“  unit  src/state/pending-task-editor-writes.test.ts (5 tests) 11ms
 โœ“  unit  src/features/threads/checkout-new-task-branch.test.ts (11 tests) 5263ms
   โœ“ new-task branch checkout (11)
     โœ“ switches to a free branch and clears its historical worktree path 399ms
     โœ“ does not release the selection while checkout is still pending 452ms
     โœ“ returns checkout failure without selecting the branch or losing dirty files 434ms
     โœ“ reuses an occupied picker worktree when the project root is a symlink 443ms
     โœ“ resolves historical branch metadata to its worktree beyond a long query's first page 511ms
     โœ“ resolves a non-origin remote to the right worktree when the remote name contains slashes 589ms
     โœ“ switches to the selected remote instead of reusing a worktree tracking another remote 992ms
     โœ“ rejects historical worktree reuse when project root is unsafe (nested: true) 441ms
     โœ“ rejects picker worktree reuse when project root is unsafe (nested: false) 412ms
     โœ“ keeps a nested project's cwd when historical metadata names the already-current branch 302ms
 โœ“ src/environments/EnvironmentPublishSignatures.test.ts (3 tests) 69ms
 โœ“ src/connection/supervisor.test.ts (35 tests) 971ms
 โœ“ src/previewStages.test.ts (4 tests) 11ms
 โœ“ src/connection/registry.test.ts (41 tests) 840ms
 โœ“  unit  src/features/threads/threadOrderAvailability.test.ts (7 tests) 638ms
   โœ“ computeThreadMoveAvailability matches the reference planner (7)
     โœ“ agrees across randomized sections (keys, holes, non-writable rows, hidden keys) 633ms
 โœ“ src/rpc/session.test.ts (14 tests) 1257ms
 โœ“ src/agentActivity/DeliveryAttempts.test.ts (3 tests) 32ms
 โœ“ src/agentActivity/ApnsProviderTokens.test.ts (2 tests) 62ms
 โœ“  unit  src/state/use-selected-thread-git-actions.test.ts (11 tests) 11ms
 โœ“ src/state/pullRequests.test.ts (56 tests) 1703ms
   โœ“ returns a successful mutation when source invalidation stalls 1038ms
 โœ“  unit  src/state/thread-outbox-removal.test.ts (5 tests) 27ms
 โœ“ src/agentActivity/LiveActivities.test.ts (2 tests) 53ms
 โœ“  unit  src/features/cloud/linkEnvironment.test.ts (3 tests) 195ms
 โœ“ src/hooks/HeldHooks.test.ts (1 test) 11ms
 โœ“  unit  src/lib/composerImages.test.ts (6 tests) 12ms
 โœ“  unit  src/features/diffs/nativeReviewDiffSource.test.ts (33 tests) 63ms
 โœ“ src/agentActivity/apnsDeliveryJobs.test.ts (1 test) 10ms
 โœ“ src/state/threads-sync.test.ts (37 tests) 982ms
 โœ“  unit  src/features/workspace/workspace-tabs-state.test.ts (16 tests) 24ms
 โœ“  unit  src/features/sharing/incoming-share-inbox.test.ts (10 tests) 34ms
 โœ“ src/operations/commands.test.ts (14 tests) 125ms
 โœ“ src/authorization/layer.test.ts (23 tests) 631ms
 โœ“ src/state/orchestrationV2Projection.test.ts (16 tests) 85ms
 โœ“ src/environments/endpointFailure.test.ts (15 tests) 6ms
 โœ“  unit  src/features/home/homeThreadList.test.ts (4 tests) 22ms
 โœ“ src/deploymentConfig.test.ts (3 tests) 3ms
 โœ“ src/state/shell-sync.test.ts (9 tests) 236ms
 โœ“  unit  src/native/composerEditorRevision.test.ts (17 tests) 13ms
stdout | src/lib/storage.test.ts > mobile connection storage > loads legacy preferences when SQLite is unavailable
[18:05:57.670] WARN (#20): Database unavailable; loading fallback preferences. {
  cause: {
    _tag: 'MobileDatabaseError',
    operation: 'load-preferences',
    cause: Error: database unavailable
        at Object.<anonymous> (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/storage.test.ts:49:33)
        at Object.Mock [as getFirstAsync] (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:430:18)
        at MixedScheduler.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:785:7)
        at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:804:38)
        at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31
  }
}

stdout | src/lib/storage.test.ts > mobile connection storage > falls back to secure storage when SQLite cannot save preferences
[18:05:57.678] WARN (#21): Database unavailable; loading fallback preferences. {
  cause: {
    _tag: 'MobileDatabaseError',
    operation: 'load-preferences',
    cause: Error: database unavailable
        at Object.<anonymous> (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/storage.test.ts:49:33)
        at Object.Mock [as getFirstAsync] (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:430:18)
        at MixedScheduler.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:785:7)
        at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:804:38)
        at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31
  }
}

stdout | src/lib/storage.test.ts > mobile connection storage > falls back to secure storage when SQLite cannot save preferences
[18:05:57.679] WARN (#21): Database unavailable; saving preferences to secure storage. {
  cause: {
    _tag: 'MobileDatabaseError',
    operation: 'save-preferences',
    cause: Error: database unavailable
        at Object.<anonymous> (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/storage.test.ts:59:33)
        at Object.Mock [as runAsync] (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:440:20)
        at MixedScheduler.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:785:7)
        at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:804:38)
        at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
        at AsyncResource.runInAsyncScope (node:async_hooks:226:14)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:396:27)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:808:17
  }
}

 โœ“  unit  src/lib/storage.test.ts (8 tests) 48ms
 โœ“  unit  src/dependency-graph.test.ts (2 tests) 30ms
 โœ“ src/voice-input/controller.test.ts (22 tests) 118ms
 โœ“ src/state/vcs.test.ts (9 tests) 232ms
 โœ“  unit  src/features/workspace/workspace-tab-navigation.test.ts (10 tests) 8ms
 โœ“ src/environments/EnvironmentLinks.test.ts (2 tests) 34ms
 โœ“  unit  src/features/pull-requests/pullRequestDiffPages.test.ts (6 tests) 46ms
 โœ“ src/state/olderSettledThreads.test.ts (13 tests) 128ms
 โœ“ src/connection/onboarding.test.ts (13 tests) 235ms
 โœ“ src/agentActivity/ApnsDeliveryQueue.test.ts (1 test) 20ms
 โœ“  unit  src/features/settings/scheduledTaskDraft.test.ts (12 tests) 27ms
 โœ“  unit  src/lib/layout.test.ts (15 tests) 8ms
 โœ“ src/environments/CloudflareApiPause.test.ts (1 test) 6ms
 โœ“ src/state/entities.test.ts (16 tests) 51ms
 โœ“ src/environments/ManagedEndpointAllocations.test.ts (1 test) 11ms

 Test Files  32 passed (32)
      Tests  276 passed (276)
   Start at  18:05:42
   Duration  16.62s (import 79%, transform 11%, setup 5%, tests 4%)

 โœ“ src/state/environmentHttpAuth.test.ts (32 tests) 367ms
 โœ“ src/state/vcsAction.test.ts (9 tests) 78ms
stdout | src/state/preferences.test.ts > mobile preferences state > falls back to empty preferences when secure storage cannot be read
[18:05:59.422] WARN (#35): Could not load mobile preferences. {
  _tag: 'MobilePreferencesLoadError',
  cause: Error: secure storage unavailable
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/preferences.test.ts:180:20
      at Generator.next (<anonymous>)
      at ~effect/Effect/successCont (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:979:28)
      at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:991:25)
      at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
      at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
      at Module.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31)
      at Array.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@effect+vitest@4.0.5_patch_hash=2731c9c3761c595f25ddc625a7d61ca376b389d5b3049ecb837c894_729be65b0f3c6bde0309e4457c6d9256/node_modules/@effect/vitest/dist/internal/internal.js:26:31)
}

 โœ“  unit  src/state/preferences.test.ts (3 tests) 59ms

~/packages/provider-muse$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“  unit  src/lib/mediaActions.test.ts (10 tests) 16ms
 โœ“ src/state/threadCommands.test.ts (22 tests) 130ms
 โœ“  unit  src/features/projects/AddProjectScreen.test.ts (3 tests) 9ms
 โœ“ src/threadPullRequests.test.ts (26 tests) 29ms
 โœ“  unit  src/state/session.test.ts (4 tests) 20ms
 โœ“  unit  src/features/threads/thread-provider-instance.test.ts (3 tests) 27ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-muse

 โœ“ rules/no-real-time-wait-in-tests.test.ts (16 tests) 13492ms
   โœ“ t3code/no-real-time-wait-in-tests (15)
     โœ“ allows TestClock-driven sleeps and timeout safety nets (1)
       โœ“ passes 965ms
     โœ“ ignores sleeps inside strings and child-process script templates (1)
       โœ“ passes 1028ms
     โœ“ ignores shared helpers in files that drive the TestClock (1)
       โœ“ passes 782ms
     โœ“ ignores bare setTimeout callbacks outside promise executors (1)
       โœ“ passes 707ms
     โœ“ reports Effect.sleep under it.live (1)
       โœ“ reports the rule diagnostic 974ms
     โœ“ reports retry schedules under curried testers (1)
       โœ“ reports the rule diagnostic 813ms
     โœ“ reports Effect.delay under plain it (1)
       โœ“ reports the rule diagnostic 870ms
     โœ“ reports it.effect inside an excludeTestServices layer as a real-clock wait (1)
       โœ“ reports the rule diagnostic 773ms
     โœ“ reports it.effect sleeps in files that never adjust the TestClock (1)
       โœ“ reports the rule diagnostic 915ms
     โœ“ reports polling helpers even when the file drives the TestClock (1)
       โœ“ reports the rule diagnostic 976ms
     โœ“ reports promise-wrapped setTimeout in vitest tests (1)
       โœ“ reports the rule diagnostic 954ms
     โœ“ reports promise-wrapped setTimeout under it.effect as a mixed clock (1)
       โœ“ reports the rule diagnostic 814ms
     โœ“ reports TestClock sleeps when TestClock.adjust appears only in a comment (1)
       โœ“ reports the rule diagnostic 487ms
     โœ“ reports timers hidden in module-level helpers (1)
       โœ“ reports the rule diagnostic 845ms
     โœ“ reports awaited timers/promises sleeps (1)
       โœ“ reports the rule diagnostic 951ms
   โœ“ ignores non-test files (1)
     โœ“ passes 604ms
 โœ“ src/state/threads-atoms.test.ts (4 tests) 213ms
 โœ“  unit  src/features/workspace/workspace-detail-selection.test.ts (9 tests) 33ms
 โœ“ src/relay/managedRelay.test.ts (7 tests) 134ms
 โœ“  unit  src/features/cloud/dpop.test.ts (5 tests) 403ms
 โœ“ src/connection/routes.test.ts (19 tests) 56ms
 โœ“  unit  src/features/agent-awareness/liveActivityPreferences.test.ts (3 tests) 45ms
 โœ“  unit  src/features/settings/settings-scoped-server.test.ts (5 tests) 18ms
 โœ“  unit  src/features/pull-requests/pullRequestStack.test.ts (8 tests) 8ms
 โœ“ rules/no-test-timeout-or-unreasoned-skip.test.ts (16 tests) 14265ms
   โœ“ t3code/no-test-timeout-or-unreasoned-skip (13)
     โœ“ allows tests without overrides, conditional skips, and waitFor timeouts (1)
       โœ“ passes 993ms
     โœ“ allows a skip with a quarantine issue or a GitHub issue URL (1)
       โœ“ passes 1196ms
     โœ“ reports a numeric timeout on it.effect (1)
       โœ“ reports the rule diagnostic 863ms
     โœ“ reports a timeout through .each and .skipIf chains (1)
       โœ“ reports the rule diagnostic 778ms
     โœ“ reports retry options, options-first timeouts, and hook timeouts (1)
       โœ“ reports the rule diagnostic 869ms
     โœ“ reports vi.setConfig timeouts (1)
       โœ“ reports the rule diagnostic 821ms
     โœ“ reports a skip whose comment has no issue (1)
       โœ“ reports the rule diagnostic 641ms
     โœ“ reports todo, only, and the x/f aliases (1)
       โœ“ reports the rule diagnostic 815ms
     โœ“ flags an options-object timeout when the callback is a reference (1)
       โœ“ reports the rule diagnostic 973ms
     โœ“ allows a computed skip option, which is a platform gate like skipIf (1)
       โœ“ passes 846ms
     โœ“ flags the suite alias and option-object skips (1)
       โœ“ reports the rule diagnostic 1086ms
     โœ“ flags a skip option without a quarantine issue (1)
       โœ“ reports the rule diagnostic 1050ms
     โœ“ flags a bracket-access skip without a quarantine issue (1)
       โœ“ reports the rule diagnostic 1046ms
   โœ“ still flags an option-object skip in a live file (1)
     โœ“ reports the rule diagnostic 603ms
   โœ“ allows timeouts in opt-in live provider suites (1)
     โœ“ passes 885ms
   โœ“ ignores non-test files (1)
     โœ“ passes 758ms
 โœ“ src/relay/discovery.test.ts (7 tests) 183ms
 โœ“ src/server/sdk.test.ts (12 tests) 258ms
 โœ“ src/server/itemPresentation.test.ts (6 tests) 10ms
 โœ“ rules/no-polling-loop-in-tests.test.ts (16 tests) 14361ms
   โœ“ t3code/no-polling-loop-in-tests (15)
     โœ“ allows a fixed-count flush followed by unrelated error handling (1)
       โœ“ passes 805ms
     โœ“ allows a fixed-N flush with a literal bound (1)
       โœ“ passes 654ms
     โœ“ allows a fixed-N while flush with a counter bound (1)
       โœ“ passes 794ms
     โœ“ allows a fixed-N do-while flush against a named bound (1)
       โœ“ passes 1210ms
     โœ“ allows a loop that takes from a queue (1)
       โœ“ passes 637ms
     โœ“ ignores waits inside nested callbacks (1)
       โœ“ passes 824ms
     โœ“ reports a budgeted yieldNow poll that dies after the loop (1)
       โœ“ reports the rule diagnostic 986ms
     โœ“ reports a while loop spinning on a predicate (1)
       โœ“ reports the rule diagnostic 859ms
     โœ“ reports a while loop bounded by a length predicate (1)
       โœ“ reports the rule diagnostic 837ms
     โœ“ reports a comparison against an identifier the loop never advances (1)
       โœ“ reports the rule diagnostic 1038ms
     โœ“ reports a for loop bounded by a length predicate (1)
       โœ“ reports the rule diagnostic 991ms
     โœ“ reports a sleep poll with a counter bound and an early return (1)
       โœ“ reports the rule diagnostic 1313ms
     โœ“ reports a microtask poll keyed on the loop condition (1)
       โœ“ reports the rule diagnostic 834ms
     โœ“ reports an awaited setTimeout poll (1)
       โœ“ reports the rule diagnostic 683ms
     โœ“ reports an awaited Promise.resolve poll that breaks (1)
       โœ“ reports the rule diagnostic 882ms
   โœ“ ignores non-test files (1)
     โœ“ passes 976ms
 โœ“ src/rpc/client.test.ts (8 tests) 100ms
 โœ“  unit  src/features/threads/new-task-project-selection.test.ts (9 tests) 4ms
 โœ“ src/server/usageLimits.test.ts (4 tests) 8ms
 โœ“  unit  src/features/threads/thread-route-state.test.ts (5 tests) 18ms
 โœ“ src/state/threadShell.test.ts (9 tests) 128ms
 โœ“ src/state/projectGrouping.test.ts (20 tests) 28ms
 โœ“  unit  src/features/review/reviewCommentSelection.test.ts (6 tests) 4ms
 โœ“ src/device/stream.test.ts (14 tests) 122ms
 โœ“ src/platform/storageDocument.test.ts (13 tests) 28ms
 โœ“  unit  src/widgets/subscriptionUsageSnapshot.test.ts (5 tests) 69ms
 โœ“  unit  src/features/settings/environment-maintenance.test.ts (7 tests) 59ms
 โœ“  unit  src/features/threads/thread-settings-sheet-state.test.ts (5 tests) 20ms
 โœ“ src/server/protocol.test.ts (1 test) 9ms
 โœ“ src/sourceControlClients.test.ts (35 tests) 23ms
 โœ“  unit  src/lib/markdownHtml.test.ts (8 tests) 117ms
 โœ“  unit  src/features/voice-input/lazyVoiceRecorder.test.ts (3 tests) 28ms
 โœ“  unit  src/lib/protectedData.test.ts (3 tests) 355ms
   โœ“ protected storage startup (3)
     โœ“ keeps a locked background launch usable after activation without rebuilding its runtime 343ms
 โœ“ src/state/fileMetadata.test.ts (11 tests) 243ms
 โœ“  unit  src/state/remote-environment-projections.test.ts (1 test) 17ms
 โœ“  unit  src/lib/reserved-regions.test.ts (7 tests) 4ms
 โœ“ src/state/commandPermissions.test.ts (14 tests) 119ms
 โœ“ src/state/threadExecution.test.ts (11 tests) 14ms
 โœ“ src/server/modelCatalog.test.ts (1 test) 2ms
 โœ“ src/state/threadRelationships.test.ts (11 tests) 11ms
 โœ“ src/connection/resolver.test.ts (6 tests) 72ms
 โœ“ src/state/threadWorkflows.test.ts (21 tests) 20ms
 โœ“  unit  src/state/edit-pending-thread-message.test.ts (4 tests) 12ms
 โœ“ src/server/usage.test.ts (12 tests) 93ms
 โœ“  unit  src/features/threads/pending-thread-feed.test.ts (6 tests) 6ms
 โœ“ src/server/maintenance.test.ts (3 tests) 125ms
 โœ“ src/server/textGeneration.test.ts (8 tests) 157ms
 โœ“  unit  src/state/use-thread-pr.test.ts (7 tests) 9ms
 โœ“  unit  src/features/usage/UsageLimitsSection.test.ts (2 tests) 5ms
 โœ“ src/state/threadHistoryMerge.test.ts (7 tests) 18ms
 โœ“ src/mcpApps/host.test.ts (9 tests) 32ms
 โœ“ src/authorization/remote.test.ts (8 tests) 236ms
 โœ“  unit  src/lib/pdfPreview.test.ts (12 tests) 14ms
 โœ“ src/server/status.test.ts (3 tests) 414ms
 โœ“  unit  src/features/agent-awareness/notificationNavigation.test.ts (6 tests) 27ms
 โœ“  unit  src/features/workspace/android-workspace-navigation-colors.test.ts (9 tests) 55ms
 โœ“ src/connection/outdatedHostUpdate.test.ts (3 tests) 36ms
 โœ“ src/server/adapter.test.ts (39 tests) 923ms

 Test Files  10 passed (10)
      Tests  89 passed (89)
   Start at  18:06:00
   Duration  5.03s (transform 52%, import 32%, tests 8%, setup 8%)

 โœ“ src/state/threadDetail.test.ts (14 tests) 68ms
 โœ“  unit  src/state/assets.test.ts (4 tests) 6ms

~/packages/effect-acp$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“  unit  src/state/thread-order.test.ts (4 tests) 35ms
 โœ“ rules/prefer-effect-fn.test.ts (23 tests) 18401ms
   โœ“ t3code/prefer-effect-fn (23)
     โœ“ allows inline programs and layer construction (1)
       โœ“ passes 753ms
     โœ“ allows named functions and deliberate untraced functions (1)
       โœ“ passes 567ms
     โœ“ allows inline combinator callbacks (1)
       โœ“ passes 708ms
     โœ“ allows inline option and error callbacks (1)
       โœ“ passes 629ms
     โœ“ allows reference default-value callbacks (1)
       โœ“ passes 1069ms
     โœ“ reports service members named onSome (1)
       โœ“ reports the rule diagnostic 1225ms
     โœ“ reports service members named onNone (1)
       โœ“ reports the rule diagnostic 1035ms
     โœ“ reports service members named onSuccess (1)
       โœ“ reports the rule diagnostic 690ms
     โœ“ reports service members named onFailure (1)
       โœ“ reports the rule diagnostic 493ms
     โœ“ reports service members named defaultValue (1)
       โœ“ reports the rule diagnostic 706ms
     โœ“ does not mistake other namespaces or shadowed locals for Effect (1)
       โœ“ passes 1197ms
     โœ“ leaves functions with synchronous setup for manual review (1)
       โœ“ passes 1099ms
     โœ“ reports a named arrow wrapper (1)
       โœ“ reports the rule diagnostic 513ms
     โœ“ reports a block-bodied wrapper (1)
       โœ“ reports the rule diagnostic 675ms
     โœ“ reports a declaration with pipe transforms (1)
       โœ“ reports the rule diagnostic 1068ms
     โœ“ reports a function expression (1)
       โœ“ reports the rule diagnostic 1080ms
     โœ“ reports service members (1)
       โœ“ reports the rule diagnostic 855ms
     โœ“ reports class fields (1)
       โœ“ reports the rule diagnostic 483ms
     โœ“ recognizes namespace aliases (1)
       โœ“ reports the rule diagnostic 605ms
     โœ“ recognizes bare-package Effect imports (1)
       โœ“ reports the rule diagnostic 828ms
     โœ“ recognizes a direct gen import (1)
       โœ“ reports the rule diagnostic 811ms
     โœ“ reports class methods (1)
       โœ“ reports the rule diagnostic 680ms
     โœ“ allows getters that expose an effect value (1)
       โœ“ passes 592ms
 โœ“ src/state/threadSort.test.ts (21 tests) 254ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/effect-acp

 โœ“ src/state/shellReducer.test.ts (14 tests) 29ms
 โœ“  unit  src/features/pull-requests/pullRequestDiffComments.test.ts (5 tests) 15ms
 โœ“  unit  src/features/threads/threadQueueControlPresentation.test.ts (8 tests) 16ms
 โœ“ src/state/threadSnoozed.test.ts (20 tests) 61ms
stdout | src/state/serverUsage.test.ts > keeps the cached usage summary when the awaited refresh fails
[18:06:06.228] WARN (#49): Could not refresh slow usage sources. {
  errorType: 'error',
  errorName: 'UsageReadError',
  errorTag: 'UsageReadError',
  stack: '    at /home/runner/_work/t3code/t3code/packages/client-runtime/src/state/serverUsage.test.ts:289:21\n' +
    '    at Generator.next (<anonymous>)\n' +
    '    at ~effect/Effect/successCont (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:979:28)\n' +
    '    at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:991:25)\n' +
    '    at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)\n' +
    '    at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)\n' +
    '    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9\n' +
    '    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19\n' +
    '    at Module.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31)\n' +
    '    at Array.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@effect+vitest@4.0.5_patch_hash=2731c9c3761c595f25ddc625a7d61ca376b389d5b3049ecb837c894_729be65b0f3c6bde0309e4457c6d9256/node_modules/@effect/vitest/dist/internal/internal.js:26:31)'
}

 โœ“ src/state/serverUsage.test.ts (2 tests) 150ms
 โœ“  unit  src/features/connection/environmentSections.test.ts (3 tests) 8ms
 โœ“  unit  src/state/attachments.test.ts (2 tests) 14ms
 โœ“ rules/require-disposable-render.test.ts (22 tests) 19334ms
   โœ“ t3code/require-disposable-render (22)
     โœ“ allows the disposable helper (1)
       โœ“ passes 581ms
     โœ“ rejects react-dom/client (1)
       โœ“ reports the rule diagnostic 933ms
     โœ“ rejects act from react (1)
       โœ“ reports the rule diagnostic 732ms
     โœ“ rejects a renamed act from react (1)
       โœ“ reports the rule diagnostic 895ms
     โœ“ rejects setting the act environment (1)
       โœ“ reports the rule diagnostic 816ms
     โœ“ rejects setting the act environment by computed key (1)
       โœ“ reports the rule diagnostic 876ms
     โœ“ rejects stubbing the act environment (1)
       โœ“ reports the rule diagnostic 805ms
     โœ“ rejects userEvent wrapped in act from react (1)
       โœ“ reports the rule diagnostic 897ms
     โœ“ rejects userEvent wrapped in the render helper's act (1)
       โœ“ reports the rule diagnostic 1029ms
     โœ“ rejects userEvent wrapped in a renamed render helper act (1)
       โœ“ reports the rule diagnostic 874ms
     โœ“ rejects a renamed userEvent wrapped in act (1)
       โœ“ reports the rule diagnostic 1097ms
     โœ“ rejects a locator click wrapped in act (1)
       โœ“ reports the rule diagnostic 1008ms
     โœ“ rejects React.act from a namespace import (1)
       โœ“ reports the rule diagnostic 743ms
     โœ“ rejects userEvent wrapped in React.act (1)
       โœ“ reports the rule diagnostic 1061ms
     โœ“ allows act around a DOM click and userEvent in a function act only defines (1)
       โœ“ passes 799ms
     โœ“ rejects lifecycle hooks through a test runner namespace (1)
       โœ“ reports the rule diagnostic 973ms
     โœ“ rejects importing lifecycle hooks from the test runner (1)
       โœ“ reports the rule diagnostic 1011ms
     โœ“ rejects afterEach (1)
       โœ“ reports the rule diagnostic 1066ms
     โœ“ rejects beforeAll (1)
       โœ“ reports the rule diagnostic 671ms
     โœ“ allows lifecycle hooks outside browser tests (1)
       โœ“ passes 761ms
     โœ“ allows importing lifecycle hooks outside browser tests (1)
       โœ“ passes 879ms
     โœ“ still rejects react-dom/client in unit tests (1)
       โœ“ reports the rule diagnostic 772ms
 โœ“ src/state/projectCommands.test.ts (4 tests) 202ms
 โœ“ rules/no-mobile-uniwind-theme-escape-hatches.test.ts (24 tests) 19542ms
   โœ“ t3code/no-mobile-uniwind-theme-escape-hatches (24)
     โœ“ allows semantic mobile theme classes (1)
       โœ“ passes 846ms
     โœ“ allows unrelated functions with legacy hook names (1)
       โœ“ passes 518ms
     โœ“ allows unrelated imports with legacy hook names (1)
       โœ“ passes 1165ms
     โœ“ allows erased type-only theme imports (1)
       โœ“ passes 732ms
     โœ“ allows appearance words in ordinary copy (1)
       โœ“ passes 1077ms
     โœ“ does not conflate shadowed Uniwind namespaces (1)
       โœ“ passes 802ms
     โœ“ allows reviewed native interop boundaries (1)
       โœ“ passes 919ms
     โœ“ still reports appearance variants in reviewed interop boundaries (1)
       โœ“ reports the rule diagnostic 537ms
     โœ“ reports new React theme subscriptions (1)
       โœ“ reports the rule diagnostic 901ms
     โœ“ reports the retired theme color hook (1)
       โœ“ reports the rule diagnostic 876ms
     โœ“ reports guarded hooks imported with TypeScript extensions (1)
       โœ“ reports the rule diagnostic 756ms
     โœ“ reports unreviewed native interop subscriptions (1)
       โœ“ reports the rule diagnostic 944ms
     โœ“ reports appearance variants in string literals (1)
       โœ“ reports the rule diagnostic 780ms
     โœ“ reports appearance variants in template literals (1)
       โœ“ reports the rule diagnostic 837ms
     โœ“ reports escaped appearance variants in template literals (1)
       โœ“ reports the rule diagnostic 763ms
     โœ“ reports appearance variants through nested class-map indirection (1)
       โœ“ reports the rule diagnostic 732ms
     โœ“ reports appearance variants passed to class builders (1)
       โœ“ reports the rule diagnostic 750ms
     โœ“ reports negative and important appearance variants (1)
       โœ“ reports the rule diagnostic 751ms
     โœ“ reports namespace CSS variable subscriptions (1)
       โœ“ reports the rule diagnostic 616ms
     โœ“ reports destructured namespace CSS variable subscriptions (1)
       โœ“ reports the rule diagnostic 1007ms
     โœ“ reports aliased namespace CSS variable subscriptions (1)
       โœ“ reports the rule diagnostic 705ms
     โœ“ reports object-rest namespace CSS variable subscriptions (1)
       โœ“ reports the rule diagnostic 817ms
     โœ“ reports namespace access to the retired theme hook (1)
       โœ“ reports the rule diagnostic 655ms
     โœ“ reports destructured namespace access to the retired theme hook (1)
       โœ“ reports the rule diagnostic 1002ms
 โœ“  unit  src/state/pending-thread-creation.test.ts (4 tests) 9ms
 โœ“  unit  src/lib/projectFaviconRequests.test.ts (4 tests) 9ms
 โœ“ src/operations/commands.performance.test.ts (1 test) 201ms
 โœ“ src/state/threadFamilies.test.ts (4 tests) 122ms
 โœ“ src/_internal/stdio.test.ts (1 test) 22ms
 โœ“ src/state/threadInbox.test.ts (22 tests) 46ms
 โœ“ src/schema.test.ts (2 tests) 11ms
 โœ“  unit  src/features/diffs/nativeReviewDiffTrace.test.ts (3 tests) 43ms
 โœ“ src/errors.test.ts (6 tests) 60ms
 โœ“  unit  src/state/workspace-connection-atoms.test.ts (1 test) 24ms
 โœ“  unit  src/features/shortcuts/appShortcuts.test.ts (7 tests) 20ms
 โœ“ src/agent.test.ts (6 tests) 154ms
 โœ“ src/platform/shellCacheEncoding.test.ts (5 tests) 249ms
 โœ“ src/state/terminalSession.test.ts (9 tests) 41ms
 โœ“ src/state/threadRequests.test.ts (10 tests) 20ms
 โœ“  unit  src/lib/markdownMedia.test.ts (12 tests) 9ms
 โœ“  unit  src/lib/atomic-file.test.ts (4 tests) 17ms
 โœ“ src/state/threadSearch.test.ts (10 tests) 69ms
 โœ“  unit  src/lib/composerChipPresentation.test.ts (3 tests) 216ms
 โœ“ src/state/subagentRuntime.test.ts (11 tests) 29ms
 โœ“  unit  src/features/pull-requests/pullRequestFileFilters.test.ts (4 tests) 20ms
 โœ“  unit  src/features/terminal/useTerminalGridSync.test.ts (1 test) 32ms
 โœ“  unit  src/features/threads/new-task-context-presentation.test.ts (9 tests) 7ms
 โœ“  unit  src/lib/localAttachmentPreview.test.ts (4 tests) 25ms
 โœ“ src/state/usage.test.ts (8 tests) 27ms
 โœ“ src/state/boundedThreadSnapshotHttp.test.ts (6 tests) 171ms
 โœ“  unit  src/lib/enrichedLinkPresentation.test.ts (5 tests) 12ms
 โœ“ src/work-log/commandLabel.test.ts (61 tests) 105ms
 โœ“ src/protocol.test.ts (21 tests) 1814ms
   โœ“ effect-acp protocol (21)
     โœ“ propagates the real child exit code when the input stream ends 781ms
     โœ“ does not emit a second process-exit error after a decode failure 828ms
 โœ“ src/projectFaviconCache.test.ts (8 tests) 233ms
 โœ“  unit  src/features/pull-requests/pullRequestNavigation.test.ts (4 tests) 17ms
 โœ“  unit  src/lib/copyTextWithHaptic.test.ts (5 tests) 57ms
 โœ“ src/changeRequestLinks.test.ts (11 tests) 9ms
 โœ“ src/work-log/presentation.test.ts (18 tests) 26ms
 โœ“  unit  src/features/pull-requests/pullRequestDiffDebug.test.ts (3 tests) 24ms
 โœ“  unit  src/persistence/mobile-database.test.ts (3 tests) 9ms
 โœ“ src/relay/managedRelayState.test.ts (4 tests) 64ms
 โœ“  unit  src/features/terminal/useTerminalLifecycle.test.ts (3 tests) 44ms
 โœ“ src/device/duoControl.test.ts (12 tests) 46ms
 โœ“ src/pullRequestEditing.test.ts (13 tests) 19ms
 โœ“  unit  src/connection/storage.test.ts (3 tests) 20ms
 โœ“  unit  src/lib/videoThumbnails.test.ts (2 tests) 54ms
 โœ“  unit  src/persistence/mobile-storage.test.ts (3 tests) 17ms
 โœ“ src/device/duoViewer.test.ts (2 tests) 26ms
 โœ“  unit  src/features/workspace/navigation-tab-order.test.ts (6 tests) 8ms
 โœ“ src/pullRequestQuery.test.ts (17 tests) 19ms
 โœ“ src/handoff.test.ts (15 tests) 18ms
 โœ“ src/state/threadSubagents.test.ts (7 tests) 31ms
 โœ“  unit  src/connection/background-activity.test.ts (3 tests) 34ms
 โœ“ src/pullRequestLinkInput.test.ts (17 tests) 49ms
 โœ“ src/pullRequestMarkdown.test.ts (17 tests) 16ms
 โœ“  unit  src/state/workspaceModel.test.ts (2 tests) 13ms
 โœ“ src/connection/diagnosis.test.ts (7 tests) 5ms
 โœ“  unit  src/features/threads/fileChipMenu.test.ts (9 tests) 16ms
 โœ“  unit  src/lib/composerAttachmentFiles.test.ts (12 tests) 12ms
 โœ“  unit  src/features/threads/use-composer-command-menu.test.ts (3 tests) 3ms
 โœ“ src/state/presentation.test.ts (3 tests) 16ms
 โœ“ src/connection/presentation.test.ts (4 tests) 10ms
 โœ“  unit  src/features/threads/thread-settings-options.test.ts (4 tests) 13ms
 โœ“ src/state/itemSupport.test.ts (2 tests) 15ms
 โœ“  unit  src/connection/migration.test.ts (2 tests) 20ms
 โœ“ src/preview/serverBrowserStream.test.ts (5 tests) 15ms
 โœ“  unit  src/lib/microphonePriority.test.ts (4 tests) 29ms
 โœ“  unit  src/features/settings/autoSettleSettingsSync.test.ts (3 tests) 3ms
 โœ“  unit  src/features/pull-requests/pullRequestStatus.test.ts (4 tests) 15ms
 โœ“ rules/require-suppression-reason.test.ts (13 tests) 10052ms
   โœ“ t3code/require-suppression-reason (13)
     โœ“ allows a directive with a -- reason (1)
       โœ“ passes 620ms
     โœ“ allows a directive explained by the comment above (1)
       โœ“ passes 852ms
     โœ“ allows stacked directives under one explanation (1)
       โœ“ passes 933ms
     โœ“ allows a TypeScript directive followed by its reason (1)
       โœ“ passes 722ms
     โœ“ allows a directive in a JSX comment with a reason (1)
       โœ“ passes 592ms
     โœ“ ignores enable directives (1)
       โœ“ passes 1071ms
     โœ“ reports a lint directive without a reason (1)
       โœ“ reports the rule diagnostic 699ms
     โœ“ reports a file-level directive without a reason (1)
       โœ“ reports the rule diagnostic 725ms
     โœ“ reports a TypeScript directive without a reason (1)
       โœ“ reports the rule diagnostic 689ms
     โœ“ does not count a comment separated by a blank line (1)
       โœ“ reports the rule diagnostic 709ms
     โœ“ allows an empty comment line between the reason and the directive (1)
       โœ“ passes 851ms
     โœ“ does not count an empty comment above (1)
       โœ“ reports the rule diagnostic 719ms
     โœ“ does not count a trailing comment on the code line above (1)
       โœ“ reports the rule diagnostic 838ms
 โœ“ src/device/phoneViewer.test.ts (1 test) 78ms
 โœ“  unit  src/features/home/workspace-connection-status.test.ts (3 tests) 18ms
 โœ“ src/promptLinks.test.ts (4 tests) 8ms
 โœ“ src/state/projectEntities.test.ts (2 tests) 20ms
 โœ“ src/device/avcConfig.test.ts (8 tests) 26ms
 โœ“  unit  src/features/terminal/terminalMenu.test.ts (5 tests) 37ms
 โœ“  unit  src/lib/projectFaviconDatabaseCache.test.ts (3 tests) 7ms
 โœ“ rules/no-test-in-loop.test.ts (8 tests) 5847ms
   โœ“ t3code/no-test-in-loop (7)
     โœ“ allows it.each and it.effect.each (1)
       โœ“ passes 607ms
     โœ“ allows loops inside a test body (1)
       โœ“ passes 860ms
     โœ“ ignores node:test files, which have no .each (1)
       โœ“ passes 619ms
     โœ“ reports it inside a for...of loop (1)
       โœ“ reports the rule diagnostic 723ms
     โœ“ reports it.effect inside a for loop nested in describe (1)
       โœ“ reports the rule diagnostic 625ms
     โœ“ reports test inside a for...in loop (1)
       โœ“ reports the rule diagnostic 826ms
     โœ“ reports a describe inside a loop once, not the tests inside it (1)
       โœ“ reports the rule diagnostic 775ms
   โœ“ ignores non-test files (1)
     โœ“ passes 785ms
 โœ“  unit  src/lib/markdownLinks.test.ts (8 tests) 21ms
 โœ“ src/providerSkills.test.ts (6 tests) 3ms
 โœ“ src/state/threadFeedback.test.ts (4 tests) 9ms
 โœ“ src/platform/orchestrationCache.test.ts (3 tests) 65ms
 โœ“  unit  src/features/pull-requests/pullRequestAgentTasks.test.ts (3 tests) 10ms
 โœ“  unit  src/features/devices/threadDevicePreviews.test.ts (2 tests) 2ms
 โœ“  unit  src/native/voiceTranscription.ios.test.ts (1 test) 52ms
 โœ“  unit  src/lib/projectIcon.test.ts (5 tests) 4ms
 โœ“ src/device/phoneScene.test.ts (8 tests) 213ms
 โœ“  unit  src/features/terminal/terminalInput.test.ts (7 tests) 4ms
 โœ“ src/reviewGuideTour.test.ts (7 tests) 17ms
 โœ“ src/threadPullRequestCompatibility.test.ts (10 tests) 13ms
 โœ“ src/state/usageProgress.test.ts (4 tests) 16ms
 โœ“ src/operations/projects.test.ts (6 tests) 10ms
 โœ“  unit  src/features/terminal/terminalPaste.test.ts (2 tests) 7ms
 โœ“ src/device/duoScene.test.ts (2 tests) 28ms
 โœ“ src/device/model.test.ts (4 tests) 6ms
 โœ“ src/device/phoneInteraction.test.ts (4 tests) 13ms
 โœ“  unit  src/features/threads/worktree-setup-state.test.ts (4 tests) 7ms
 โœ“ src/state/attachments.test.ts (3 tests) 11ms
 โœ“  unit  src/state/queries.filesystem.test.ts (1 test) 3ms
 โœ“ rules/no-frame-waits-in-browser-tests.test.ts (16 tests) 12763ms
   โœ“ t3code/no-frame-waits-in-browser-tests (16)
     โœ“ allows retrying assertions and the full fake timer set (1)
       โœ“ passes 655ms
     โœ“ allows requestAnimationFrame inside mocks (1)
       โœ“ passes 853ms
     โœ“ allows timers outside a promise executor and other listeners (1)
       โœ“ passes 946ms
     โœ“ rejects a nextFrame helper (1)
       โœ“ reports the rule diagnostic 1044ms
     โœ“ rejects requestAnimationFrame as the executor (1)
       โœ“ reports the rule diagnostic 1021ms
     โœ“ rejects window.requestAnimationFrame (1)
       โœ“ reports the rule diagnostic 967ms
     โœ“ allows a pass-through frame executor inside a mock implementation (1)
       โœ“ passes 943ms
     โœ“ rejects setTimeout passed straight through as the promise executor (1)
       โœ“ reports the rule diagnostic 579ms
     โœ“ rejects setTimeout inside a promise executor (1)
       โœ“ reports the rule diagnostic 538ms
     โœ“ rejects setInterval inside a promise executor (1)
       โœ“ reports the rule diagnostic 720ms
     โœ“ rejects transitionend listeners (1)
       โœ“ reports the rule diagnostic 820ms
     โœ“ rejects animationend listeners (1)
       โœ“ reports the rule diagnostic 755ms
     โœ“ rejects vi.useFakeTimers (1)
       โœ“ reports the rule diagnostic 698ms
     โœ“ rejects a partial fakeTimers set (1)
       โœ“ reports the rule diagnostic 581ms
     โœ“ rejects a partial vi.useFakeTimers set (1)
       โœ“ reports the rule diagnostic 687ms
     โœ“ ignores files that are not browser tests (1)
       โœ“ passes 920ms
 โœ“  unit  src/lib/appLinking.test.ts (17 tests) 15ms
 โœ“  unit  src/features/terminal/terminalLaunchContext.test.ts (3 tests) 3ms
 โœ“  unit  src/state/thread-provider-switching.test.ts (4 tests) 14ms
 โœ“ src/t3ToolSummary.test.ts (3 tests) 6ms
 โœ“ src/state/filesystem.test.ts (8 tests) 10ms
 โœ“  unit  src/lib/device-type.test.ts (3 tests) 3ms
 โœ“  unit  src/features/terminal/useTerminalSurfaceBuffer.test.ts (2 tests) 35ms
 โœ“ src/connection/errors.test.ts (5 tests) 25ms
 โœ“  unit  src/state/queued-run-edit.test.ts (3 tests) 15ms
 โœ“ rules/no-raw-mcp-registration.test.ts (20 tests) 14487ms
   โœ“ t3code/no-raw-mcp-registration (20)
     โœ“ allows the rest of effect/ai and type-only McpServer imports (1)
       โœ“ passes 761ms
     โœ“ reports importing McpServer from effect/ai (1)
       โœ“ reports the rule diagnostic 1082ms
     โœ“ reports importing McpServer under another name (1)
       โœ“ reports the rule diagnostic 775ms
     โœ“ reports a namespace import of effect/ai (1)
       โœ“ reports the rule diagnostic 707ms
     โœ“ reports importing the McpServer module directly (1)
       โœ“ reports the rule diagnostic 763ms
     โœ“ reports re-exporting McpServer (1)
       โœ“ reports the rule diagnostic 974ms
     โœ“ reports re-exporting all of effect/ai (1)
       โœ“ reports the rule diagnostic 744ms
     โœ“ reports a dynamic import of the McpServer module (1)
       โœ“ reports the rule diagnostic 1034ms
     โœ“ reports a dynamic import written as a template (1)
       โœ“ reports the rule diagnostic 539ms
     โœ“ reports McpServer.toolkit (1)
       โœ“ reports the rule diagnostic 463ms
     โœ“ reports McpServer.resource and McpServer.prompt (1)
       โœ“ reports the rule diagnostic 782ms
     โœ“ reports addTool on the McpServer service (1)
       โœ“ reports the rule diagnostic 841ms
     โœ“ reports a registration method read without calling it (1)
       โœ“ reports the rule diagnostic 616ms
     โœ“ reports a registration function taken by destructuring (1)
       โœ“ reports the rule diagnostic 600ms
     โœ“ reports a registration method taken by destructuring (1)
       โœ“ reports the rule diagnostic 907ms
     โœ“ lets tests import McpServer to build a server (1)
       โœ“ passes 580ms
     โœ“ reports a registration in a test (1)
       โœ“ reports the rule diagnostic 532ms
     โœ“ reports a test importing McpServer under another name (1)
       โœ“ reports the rule diagnostic 548ms
     โœ“ reports a test importing effect/ai as a namespace (1)
       โœ“ reports the rule diagnostic 646ms
     โœ“ reports a test importing the McpServer module directly (1)
       โœ“ reports the rule diagnostic 556ms
 โœ“  unit  src/lib/projectThreadStartTurn.test.ts (3 tests) 13ms
 โœ“ src/state/sharedSettings.test.ts (9 tests) 21ms
 โœ“  unit  src/features/threads/thread-route-hydration.test.ts (3 tests) 5ms
 โœ“  unit  src/lib/highlights.test.ts (3 tests) 7ms
 โœ“ src/mediaSource.test.ts (8 tests) 12ms
 โœ“ src/state/turnItemPresentation.test.ts (2 tests) 15ms
 โœ“ src/connection/compatibility.test.ts (4 tests) 11ms
 โœ“ src/work-log/toolPresentation.test.ts (4 tests) 11ms
 โœ“  unit  src/features/files/filePath.test.ts (7 tests) 25ms
 โœ“ src/state/providerInstanceDisplay.test.ts (10 tests) 5ms
 โœ“  unit  src/features/settings/settings-search.test.ts (11 tests) 12ms
 โœ“ src/device/streamFrames.test.ts (1 test) 17ms
 โœ“ src/pullRequestChecks.test.ts (3 tests) 8ms
 โœ“  unit  src/features/pull-requests/pullRequestActions.test.ts (3 tests) 26ms
 โœ“ src/device/modelScene.test.ts (2 tests) 7ms
 โœ“  unit  src/features/settings/scheduled-task-editor-state.test.ts (3 tests) 7ms
 โœ“  unit  src/features/keyboard/commandPaletteItems.test.ts (2 tests) 13ms
 โœ“ src/state/queryPersistence.test.ts (3 tests) 35ms
 โœ“ src/state/gitActions.test.ts (3 tests) 18ms
 โœ“  unit  src/features/layout/deferred-navigation.test.ts (3 tests) 3ms
 โœ“ src/pullRequestReactions.test.ts (3 tests) 20ms
 โœ“ src/state/serverConfigProjection.test.ts (2 tests) 4ms
 โœ“  unit  src/features/home/thread-dismissal.test.ts (3 tests) 8ms
 โœ“  unit  src/features/cloud/CloudAuthProvider.test.ts (1 test) 3ms
 โœ“ src/device/deviceMotion.test.ts (2 tests) 27ms
 โœ“  unit  src/features/cloud/managedRelayLayer.test.ts (1 test) 169ms
 โœ“ src/client.test.ts (27 tests) 9946ms
   โœ“ effect-acp client (20)
     โœ“ transforms fragmented stdout before parsing and preserves UTF-8 925ms
     โœ“ preserves stdout transform errors without logging rejected input 840ms
     โœ“ reports idle child termination and rejects later requests and notifications 895ms
     โœ“ initializes, prompts, receives updates, and handles permission requests 1238ms
     โœ“ returns structured invalid params without exposing values from typed extension request payloads 989ms
     โœ“ preserves ACP v2 structured diff semantics 849ms
     โœ“ does not turn unsupported ACP v2 auth methods into agent login 753ms
     โœ“ preserves registry env-var authentication extensions 972ms
     โœ“ replays buffered notifications to handlers registered after they arrive 605ms
     โœ“ routes MCP-over-ACP connect, message, notification, and disconnect callbacks 827ms
     โœ“ preserves future content and session-update variants 835ms

 Test Files  6 passed (6)
      Tests  63 passed (63)
   Start at  18:06:05
   Duration  11.84s (tests 61%, transform 17%, import 16%, setup 5%)

 โœ“ src/userMessage.test.ts (4 tests) 11ms

~/packages/provider-acp$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“ src/state/customSnooze.test.ts (11 tests) 11ms
 โœ“ src/state/auth.test.ts (2 tests) 3ms
 โœ“  unit  src/features/devices/device-stream-document.test.ts (11 tests) 5ms
 โœ“  unit  src/features/sharing/incoming-share-presentation.test.ts (2 tests) 3ms
 โœ“ src/threadReference.test.ts (5 tests) 10ms
 โœ“  unit  src/features/threads/provider-catalog-refresh.test.ts (2 tests) 16ms
 โœ“  unit  src/features/diagnostics/crash-log-model.test.ts (2 tests) 6ms
 โœ“ src/errors/safeLog.test.ts (2 tests) 3ms
 โœ“  unit  src/features/pull-requests/pullRequestActivityFilter.test.ts (1 test) 2ms
 โœ“ src/state/usageAccess.test.ts (8 tests) 3ms
 โœ“  unit  src/features/pull-requests/pullRequestEnvironmentFallback.test.ts (3 tests) 3ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-acp

 โœ“ src/filePreview.test.ts (3 tests) 128ms
 โœ“  unit  scripts/generate-uniwind-themes.test.ts (1 test) 45ms
 โœ“ src/work-log/itemDetail.test.ts (2 tests) 3ms
 โœ“  unit  src/features/observability/tracing.test.ts (1 test) 38ms
 โœ“  unit  src/lib/nativeTheme.test.ts (12 tests) 87ms
 โœ“  unit  src/lib/markdownTableBreaks.test.ts (5 tests) 60ms
 โœ“ src/markdownImages.test.ts (12 tests) 4ms
 โœ“ src/server/stderr.test.ts (2 tests) 9ms
 โœ“ src/errors/transport.test.ts (3 tests) 8ms
 โœ“ src/state/threadHistoryController.test.ts (1 test) 18ms
 โœ“  unit  src/lib/assetImageSource.test.ts (3 tests) 21ms
 โœ“ src/secretRequest.test.ts (3 tests) 13ms
 โœ“ src/mediaReference.test.ts (7 tests) 3ms
 โœ“ src/relay/errorPresentation.test.ts (3 tests) 3ms
 โœ“ src/server/sessionConfig.test.ts (6 tests) 13ms
 โœ“ src/server/clientPolicy.test.ts (13 tests) 45ms
 โœ“ rules/no-manual-effect-runtime-in-tests.test.ts (17 tests) 12236ms
   โœ“ t3code/no-manual-effect-runtime-in-tests (14)
     โœ“ allows @effect/vitest effect tests (1)
       โœ“ passes 861ms
     โœ“ reports Effect.runCallback (1)
       โœ“ reports the rule diagnostic 638ms
     โœ“ reports Effect.runCallbackWith (1)
       โœ“ reports the rule diagnostic 739ms
     โœ“ reports Effect.runFork (1)
       โœ“ reports the rule diagnostic 689ms
     โœ“ reports Effect.runForkWith (1)
       โœ“ reports the rule diagnostic 601ms
     โœ“ reports Effect.runPromise (1)
       โœ“ reports the rule diagnostic 721ms
     โœ“ reports Effect.runPromiseExit (1)
       โœ“ reports the rule diagnostic 663ms
     โœ“ reports Effect.runPromiseExitWith (1)
       โœ“ reports the rule diagnostic 610ms
     โœ“ reports Effect.runPromiseWith (1)
       โœ“ reports the rule diagnostic 765ms
     โœ“ reports Effect.runSync (1)
       โœ“ reports the rule diagnostic 717ms
     โœ“ reports Effect.runSyncExit (1)
       โœ“ reports the rule diagnostic 536ms
     โœ“ reports Effect.runSyncExitWith (1)
       โœ“ reports the rule diagnostic 940ms
     โœ“ reports Effect.runSyncWith (1)
       โœ“ reports the rule diagnostic 815ms
     โœ“ reports ManagedRuntime.make (1)
       โœ“ reports the rule diagnostic 821ms
   โœ“ allows production runtime boundaries (1)
     โœ“ passes 637ms
   โœ“ t3code/no-manual-effect-runtime-in-tests with maxOccurrences (2)
     โœ“ allows occurrences up to the ceiling (1)
       โœ“ passes 631ms
     โœ“ reports occurrences beyond the ceiling (1)
       โœ“ reports the rule diagnostic 791ms
 โœ“ src/state/assets.test.ts (1 test) 20ms
 โœ“ src/device/duoSnap.test.ts (1 test) 17ms
 โœ“ rules/no-wall-clock-in-tests.test.ts (8 tests) 6010ms
   โœ“ t3code/no-wall-clock-in-tests (7)
     โœ“ ignores a computed member with a variable key (1)
       โœ“ passes 645ms
     โœ“ allows fixed dates and readings that seed mocks (1)
       โœ“ passes 966ms
     โœ“ reports elapsed-time measurement (1)
       โœ“ reports the rule diagnostic 572ms
     โœ“ reports Date.now fixtures (1)
       โœ“ reports the rule diagnostic 700ms
     โœ“ reports new Date() with no arguments (1)
       โœ“ reports the rule diagnostic 602ms
     โœ“ reports process.hrtime and process.hrtime.bigint (1)
       โœ“ reports the rule diagnostic 532ms
     โœ“ reports a reading outside the mock's arguments (1)
       โœ“ reports the rule diagnostic 1072ms
   โœ“ ignores non-test files (1)
     โœ“ passes 891ms
 โœ“ src/server/mcpOverAcpBridge.test.ts (3 tests) 72ms
 โœ“ src/device/androidFoldScene.test.ts (1 test) 88ms
 โœ“ src/composerThreadItems.test.ts (1 test) 25ms
 โœ“  unit  src/features/pull-requests/pullRequestAutolinks.test.ts (4 tests) 24ms
 โœ“ src/state/commandOutput.test.ts (1 test) 4ms
 โœ“  unit  src/features/sharing/incoming-share-storage.test.ts (1 test) 10ms
 โœ“ src/device/renderScheduler.test.ts (1 test) 14ms
 โœ“ src/work-log/scrollAnchor.test.ts (1 test) 2ms
 โœ“  unit  src/lib/markdownMediaSource.test.ts (3 tests) 26ms
 โœ“ src/errors/errorTrace.test.ts (2 tests) 2ms
 โœ“ src/environment/endpoint.test.ts (1 test) 8ms
 โœ“ rules/no-inline-schema-compile.test.ts (6 tests) 4956ms
   โœ“ t3code/no-inline-schema-compile (6)
     โœ“ allows schema compilers hoisted to module scope (1)
       โœ“ passes 907ms
     โœ“ allows factory helpers that return a precompiled decoder (1)
       โœ“ passes 1027ms
     โœ“ allows schema construction helpers that use encode transformations (1)
       โœ“ passes 770ms
     โœ“ allows dynamic schema parameters that cannot be hoisted to module scope (1)
       โœ“ passes 820ms
     โœ“ reports schema compilers inside function bodies (1)
       โœ“ reports the rule diagnostic 913ms
     โœ“ reports inline schema literals as high confidence findings (1)
       โœ“ reports the rule diagnostic 499ms
 โœ“ src/server/runtimeModel.test.ts (47 tests) 696ms
   โœ“ AcpRuntimeModel (29)
     โœ“ keeps the newest 16 MiB of ACP terminal output at a UTF-8 boundary 353ms
 โœ“  unit  src/lib/connection.test.ts (1 test) 3ms
stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > kills long-running commands and rejects released terminal handles
[18:06:20.286] WARN (#53): ACP client terminal operation failed {
  operation: 'terminal/output',
  detail: "ACP terminal/output received an unknown terminal ID 't3-term-1'."
}

 โœ“ rules/no-unscoped-has.test.ts (42 tests) 33415ms
   โœ“ t3code/no-unscoped-has (24)
     โœ“ allows :has() on the element itself (1)
       โœ“ passes 1107ms
     โœ“ allows :has() anchored to an attribute (1)
       โœ“ passes 689ms
     โœ“ allows :has() inside :not() on the element itself (1)
       โœ“ passes 888ms
     โœ“ allows built-in has-* variants (1)
       โœ“ passes 799ms
     โœ“ allows a sibling selector without :has() (1)
       โœ“ passes 980ms
     โœ“ ignores prose mentioning :has() (1)
       โœ“ passes 1087ms
     โœ“ ignores :has() inside an arbitrary value (1)
       โœ“ passes 984ms
     โœ“ allows a negated :has() on the element itself (1)
       โœ“ passes 1076ms
     โœ“ allows :has() on a group or peer element (1)
       โœ“ passes 961ms
     โœ“ allows a selector list whose own branch is anchored (1)
       โœ“ passes 1151ms
     โœ“ ignores :has() text in quoted attribute values (1)
       โœ“ passes 864ms
     โœ“ allows a selector without & on the element itself (1)
       โœ“ passes 792ms
     โœ“ reports a sibling :has() with nothing anchoring it (1)
       โœ“ reports the rule diagnostic 636ms
     โœ“ reports a descendant :has() with nothing anchoring it (1)
       โœ“ reports the rule diagnostic 619ms
     โœ“ reports a universal :has() ancestor (1)
       โœ“ reports the rule diagnostic 444ms
     โœ“ reports :has() whose only anchor is negated (1)
       โœ“ reports the rule diagnostic 1059ms
     โœ“ reports uppercase :HAS() (1)
       โœ“ reports the rule diagnostic 842ms
     โœ“ reports a selector-list branch borrowing another branch's anchor (1)
       โœ“ reports the rule diagnostic 657ms
     โœ“ reports an unanchored branch inside :is() (1)
       โœ“ reports the rule diagnostic 590ms
     โœ“ reports an unanchored :has() inside a named group variant (1)
       โœ“ reports the rule diagnostic 564ms
     โœ“ reports a :has() on an ancestor of a selector without & (1)
       โœ“ reports the rule diagnostic 549ms
     โœ“ reports a :has() on an ancestor of a group (1)
       โœ“ reports the rule diagnostic 466ms
     โœ“ reports an in-* ancestor :has() (1)
       โœ“ reports the rule diagnostic 702ms
     โœ“ reports :has() anchored to the document root (1)
       โœ“ reports the rule diagnostic 911ms
   โœ“ t3code/no-outset-state-indicators (18)
     โœ“ valid: inset state rings (1)
       โœ“ inset state rings (1)
         โœ“ passes 923ms
     โœ“ valid: an unconditional inset (1)
       โœ“ an unconditional inset (1)
         โœ“ passes 1013ms
     โœ“ valid: an inset in a sibling composer argument (1)
       โœ“ an inset in a sibling composer argument (1)
         โœ“ passes 921ms
     โœ“ valid: an inset in a nested conditional composer (1)
       โœ“ an inset in a nested conditional composer (1)
         โœ“ passes 818ms
     โœ“ valid: outlines covered by the inward default (1)
       โœ“ outlines covered by the inward default (1)
         โœ“ passes 878ms
     โœ“ valid: wider outlines with a matching inward offset (1)
       โœ“ wider outlines with a matching inward offset (1)
         โœ“ passes 496ms
     โœ“ valid: arbitrary pixel outlines with a matching inward offset (1)
       โœ“ arbitrary pixel outlines with a matching inward offset (1)
         โœ“ passes 815ms
     โœ“ valid: arbitrary outline colors (1)
       โœ“ arbitrary outline colors (1)
         โœ“ passes 463ms
     โœ“ valid: decorative rings without a state (1)
       โœ“ decorative rings without a state (1)
         โœ“ passes 876ms
     โœ“ valid: prose (1)
       โœ“ prose (1)
         โœ“ passes 735ms
     โœ“ invalid: state rings without an inset (1)
       โœ“ state rings without an inset (1)
         โœ“ reports the rule diagnostic 750ms
     โœ“ invalid: an inset from another state (1)
       โœ“ an inset from another state (1)
         โœ“ reports the rule diagnostic 530ms
     โœ“ invalid: an inset from another conditional branch (1)
       โœ“ an inset from another conditional branch (1)
         โœ“ reports the rule diagnostic 478ms
     โœ“ invalid: an inset passed to another function (1)
       โœ“ an inset passed to another function (1)
         โœ“ reports the rule diagnostic 732ms
     โœ“ invalid: arbitrary state ring widths (1)
       โœ“ arbitrary state ring widths (1)
         โœ“ reports the rule diagnostic 634ms
     โœ“ invalid: positive outline offsets (1)
       โœ“ positive outline offsets (1)
         โœ“ reports the rule diagnostic 766ms
     โœ“ invalid: arbitrary outline offsets (1)
       โœ“ arbitrary outline offsets (1)
         โœ“ reports the rule diagnostic 969ms
     โœ“ invalid: wide outlines without an inward offset (1)
       โœ“ wide outlines without an inward offset (1)
         โœ“ reports the rule diagnostic 1138ms
 โœ“ src/state/archivedThreads.test.ts (1 test) 12ms

 Test Files  131 passed (131)
      Tests  1300 passed (1300)
   Start at  18:05:48
   Duration  31.65s (import 50%, transform 31%, setup 11%, tests 8%)

     Import  525 modules were evaluated 10302 times ยท 92.19s total, 50% of tracked time
             ~10.60s 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

 โœ“  unit  src/state/asset-url-state.test.ts (3 tests) 17ms
stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > reserves terminal capacity across concurrent creates
[18:06:20.626] WARN (#122): ACP client terminal operation failed {
  operation: 'terminal/create',
  detail: 'ACP terminal/create exceeded the limit of 16 concurrent terminals.'
}


~/packages/source-control-core$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“  unit  src/features/connection/pairing.test.ts (5 tests) 3ms
 โœ“  unit  src/features/home/swipe-row-activation.test.ts (3 tests) 28ms
 โœ“  unit  src/lib/wideMarkdownBlocks.test.ts (2 tests) 6ms
 โœ“  unit  src/features/pull-requests/botBadgeImages.test.ts (1 test) 2ms
 โœ“  unit  src/lib/markdownInlineFileLinks.test.ts (4 tests) 26ms
 โœ“  unit  src/features/settings/SettingsRouteScreen.logic.test.ts (2 tests) 5ms
 โœ“  unit  src/features/usage/usageEnvironmentSelection.test.ts (4 tests) 2ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-core

 โœ“  unit  src/lib/serialized-async-queue.test.ts (2 tests) 3ms
 โœ“  unit  scripts/generate-highlights.test.ts (1 test) 49ms
 โœ“  unit  src/lib/openExternalUrl.test.ts (1 test) 18ms
 โœ“  unit  src/features/pull-requests/pullRequestDescription.test.ts (1 test) 46ms
 โœ“  unit  src/features/threads/composerSendPresentation.test.ts (2 tests) 3ms
 โœ“ src/server/mergeMessage.test.ts (11 tests) 19ms
 โœ“ src/server/pullRequestChecks.test.ts (16 tests) 19ms
 โœ“ rules/no-hermes-unsupported-apis.test.ts (22 tests) 15658ms
   โœ“ t3code/no-hermes-unsupported-apis (22)
     โœ“ allows in-place sort on a copy (1)
       โœ“ passes 862ms
     โœ“ allows in-place reverse on a copy (1)
       โœ“ passes 604ms
     โœ“ allows other ES2023 methods Hermes ships (1)
       โœ“ passes 820ms
     โœ“ ignores property reads that are not calls (1)
       โœ“ passes 420ms
     โœ“ reports toSorted (1)
       โœ“ reports the rule diagnostic 759ms
     โœ“ reports toReversed in a chain (1)
       โœ“ reports the rule diagnostic 876ms
     โœ“ reports toSpliced via computed access with a copy-then-splice remediation (1)
       โœ“ reports the rule diagnostic 951ms
     โœ“ reports a static template-literal property name (1)
       โœ“ reports the rule diagnostic 832ms
     โœ“ ignores a template-literal property with substitutions (1)
       โœ“ passes 819ms
     โœ“ allows supported Intl constructors (1)
       โœ“ passes 560ms
     โœ“ allows feature detection (1)
       โœ“ passes 624ms
     โœ“ allows unrelated Segmenter constructors (1)
       โœ“ passes 634ms
     โœ“ ignores dynamic computed names (1)
       โœ“ passes 714ms
     โœ“ reports new Intl.Segmenter(undefined, { granularity: 'grapheme' }) (1)
       โœ“ reports the rule diagnostic 962ms
     โœ“ reports new Intl['Segmenter']() (1)
       โœ“ reports the rule diagnostic 566ms
     โœ“ reports new Intl[`Segmenter`]() (1)
       โœ“ reports the rule diagnostic 826ms
     โœ“ reports new globalThis.Intl.Segmenter() (1)
       โœ“ reports the rule diagnostic 763ms
     โœ“ reports new globalThis['Intl']['Segmenter']() (1)
       โœ“ reports the rule diagnostic 674ms
     โœ“ reports new global.Intl.Segmenter() (1)
       โœ“ reports the rule diagnostic 534ms
     โœ“ reports new window.Intl.Segmenter() (1)
       โœ“ reports the rule diagnostic 493ms
     โœ“ reports Intl.Segmenter() (1)
       โœ“ reports the rule diagnostic 652ms
     โœ“ reports Intl.Segmenter?.() (1)
       โœ“ reports the rule diagnostic 664ms
 โœ“ src/server/SourceControlProvider.test.ts (1 test) 13ms
 โœ“ src/server/nativeLogging.test.ts (3 tests) 32ms
 โœ“  unit  src/features/sharing/incoming-share-native.test.ts (2 tests) 3ms
 โœ“ src/server/diffFileRevisions.test.ts (15 tests) 9ms
 โœ“  unit  src/features/pull-requests/pullRequestDescriptionContent.test.ts (1 test) 12ms
 โœ“  unit  src/features/threads/threadContentPresentation.test.ts (2 tests) 3ms
 โœ“  unit  src/features/cloud/managedRelayTokenStore.test.ts (1 test) 12ms
 โœ“  unit  src/features/threads/subagent-card-presentation.test.ts (1 test) 5ms
 โœ“  unit  src/features/pull-requests/pullRequestReviewDrafts.test.ts (1 test) 2ms
 โœ“  unit  src/state/thread-composer-error.test.ts (1 test) 2ms
 โœ“  unit  src/features/threads/customSnoozeDate.test.ts (2 tests) 5ms
 โœ“  unit  src/lib/filePreviewGallery.test.ts (1 test) 17ms
 โœ“ src/server/SourceControlRateLimit.test.ts (6 tests) 15ms

 Test Files  5 passed (5)
      Tests  49 passed (49)
   Start at  18:06:21
   Duration  1.66s (transform 43%, import 28%, setup 26%, tests 3%, worker 1%)


~/packages/effect-codex-app-server$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“  unit  src/state/queries.test.ts (1 test) 27ms
 โœ“  unit  src/features/cloud/publicConfig.test.ts (1 test) 5ms
 โœ“  unit  src/features/pull-requests/pullRequestMediaSource.test.ts (1 test) 18ms
 โœ“  unit  src/features/browser/previewPromptText.test.ts (3 tests) 5ms
 โœ“  unit  src/features/prompt-links/prompt-link-model.test.ts (1 test) 5ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/effect-codex-app-server

 โœ“ rules/no-global-process-runtime.test.ts (9 tests) 6829ms
   โœ“ t3code/no-global-process-runtime (9)
     โœ“ allows injected host process references (1)
       โœ“ passes 659ms
     โœ“ allows unrelated process members (1)
       โœ“ passes 591ms
     โœ“ allows unrelated node os imports (1)
       โœ“ passes 818ms
     โœ“ reports direct platform reads (1)
       โœ“ reports the rule diagnostic 792ms
     โœ“ reports direct architecture reads (1)
       โœ“ reports the rule diagnostic 1168ms
     โœ“ reports globalThis process platform reads (1)
       โœ“ reports the rule diagnostic 805ms
     โœ“ reports node os namespace platform reads (1)
       โœ“ reports the rule diagnostic 696ms
     โœ“ reports renamed node os architecture imports (1)
       โœ“ reports the rule diagnostic 619ms
     โœ“ reports default node os platform reads (1)
       โœ“ reports the rule diagnostic 657ms
 โœ“  unit  src/lib/nativeComposerTheme.test.ts (1 test) 10ms
 โœ“  unit  src/lib/mobileThemeRuntime.test.ts (1 test) 7ms
 โœ“  unit  src/features/projects/AddProjectScreen.logic.test.ts (1 test) 4ms
 โœ“  unit  src/lib/http-response.test.ts (1 test) 18ms
 โœ“ rules/namespace-node-imports.test.ts (5 tests) 2755ms
   โœ“ t3code/namespace-node-imports (5)
     โœ“ allows canonical Node namespaces (1)
       โœ“ passes 650ms
     โœ“ does not apply to non-Node packages (1)
       โœ“ passes 541ms
     โœ“ reports named imports (1)
       โœ“ reports the rule diagnostic 539ms
     โœ“ reports default imports (1)
       โœ“ reports the rule diagnostic 402ms
     โœ“ reports non-canonical namespace aliases (1)
       โœ“ reports the rule diagnostic 585ms
 โœ“ src/_internal/stdio.test.ts (1 test) 6ms
 โœ“  unit  src/features/threads/projectThreadCreationValidation.test.ts (2 tests) 2ms
 โœ“  unit  src/lib/filePreview.test.ts (4 tests) 3ms
 โœ“  unit  src/lib/foreground-handoff.test.ts (1 test) 2ms
 โœ“ src/_internal/shared.test.ts (4 tests) 30ms
 โœ“ rules/no-rpc-permission-bypass.test.ts (16 tests) 11037ms
   โœ“ blocks direct session calls (1)
     โœ“ reports the rule diagnostic 869ms
   โœ“ blocks extracting the raw client (1)
     โœ“ reports the rule diagnostic 691ms
   โœ“ blocks replacing the permission guard (1)
     โœ“ reports the rule diagnostic 784ms
   โœ“ blocks namespace guard access (1)
     โœ“ reports the rule diagnostic 703ms
   โœ“ blocks raw protocol imports (1)
     โœ“ reports the rule diagnostic 605ms
   โœ“ allows typed requests (1)
     โœ“ passes 716ms
   โœ“ allows the transport boundary (1)
     โœ“ passes 723ms
   โœ“ blocks guard imports through the barrel (1)
     โœ“ reports the rule diagnostic 508ms
   โœ“ blocks explicit index imports (1)
     โœ“ reports the rule diagnostic 724ms
   โœ“ blocks raw session access in subscription callbacks (1)
     โœ“ reports the rule diagnostic 940ms
   โœ“ blocks raw client destructuring (1)
     โœ“ reports the rule diagnostic 653ms
   โœ“ allows public typed RPC helpers (1)
     โœ“ passes 550ms
   โœ“ raw client allowance does not permit installing the guard (1)
     โœ“ reports the rule diagnostic 685ms
   โœ“ permits guard installation when configured (1)
     โœ“ passes 627ms
   โœ“ guard installation allowance does not permit raw clients (1)
     โœ“ reports the rule diagnostic 565ms
   โœ“ guard installation allowance does not permit raw protocol imports (1)
     โœ“ reports the rule diagnostic 652ms
 โœ“  unit  src/lib/appearancePreferences.test.ts (1 test) 2ms
 โœ“  unit  src/features/threads/threadMessageJump.test.ts (1 test) 11ms
 โœ“  unit  src/features/settings/lib/legal-document-url.test.ts (2 tests) 5ms
 โœ“  unit  src/features/keyboard/hardwareKeyboardCommands.test.ts (2 tests) 4ms
stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > bounds unreleased terminal handles without invalidating existing ids
[18:06:24.661] WARN (#192): ACP client terminal operation failed {
  operation: 'terminal/create',
  detail: 'ACP terminal/create exceeded the limit of 64 unreleased terminals.'
}

 โœ“ src/protocol.test.ts (17 tests) 87ms
 โœ“ src/schema.test.ts (4 tests) 10ms
stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > rejects terminal handles from a different ACP session
[18:06:24.894] WARN (#482): ACP client terminal operation failed {
  operation: 'terminal/output',
  detail: "ACP terminal/output received an unknown terminal ID 't3-term-1'."
}
[18:06:24.894] WARN (#483): ACP client terminal operation failed {
  operation: 'terminal/wait_for_exit',
  detail: "ACP terminal/wait_for_exit received an unknown terminal ID 't3-term-1'."
}
[18:06:24.894] WARN (#484): ACP client terminal operation failed {
  operation: 'terminal/kill',
  detail: "ACP terminal/kill received an unknown terminal ID 't3-term-1'."
}
[18:06:24.895] WARN (#485): ACP client terminal operation failed {
  operation: 'terminal/release',
  detail: "ACP terminal/release received an unknown terminal ID 't3-term-1'."
}

 โœ“ src/server/clientTerminals.test.ts (13 tests) 5013ms
   โœ“ AcpClientTerminals (12)
     โœ“ bounds unreleased terminal handles without invalidating existing ids 4019ms

 Test Files  7 passed (7)
      Tests  87 passed (87)
   Start at  18:06:18
   Duration  6.62s (tests 41%, transform 31%, import 20%, setup 7%)

 โœ“ rules/prefer-catch-tags.test.ts (6 tests) 2701ms
   โœ“ t3code/prefer-catch-tags (6)
     โœ“ allows Effect.catchTags (1)
       โœ“ passes 675ms
     โœ“ ignores catchTag on other modules (1)
       โœ“ passes 546ms
     โœ“ ignores a local that shadows the namespace (1)
       โœ“ passes 458ms
     โœ“ reports Effect.catchTag (1)
       โœ“ reports the rule diagnostic 368ms
     โœ“ reports catchTag through an aliased namespace (1)
       โœ“ reports the rule diagnostic 318ms
     โœ“ reports a named catchTag import (1)
       โœ“ reports the rule diagnostic 316ms

~/packages/source-control-forgejo$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“ src/client.test.ts (2 tests) 223ms

 Test Files  5 passed (5)
      Tests  28 passed (28)
   Start at  18:06:23
   Duration  1.87s (transform 53%, import 27%, setup 13%, tests 7%)


~/packages/source-control-gitcafe$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-forgejo


 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-gitcafe

 โœ“ src/server/forgejoPullRequestJson.test.ts (5 tests) 7ms
 โœ“ rules/require-registered-list-scroll.test.ts (4 tests) 1570ms
   โœ“ t3code/require-registered-list-scroll (4)
     โœ“ allows a list that renders through a registered scroll view (1)
       โœ“ passes 465ms
     โœ“ allows a keyboard-aware list with its scroll view component (1)
       โœ“ passes 336ms
     โœ“ reports a list given the other list's scroll prop (1)
       โœ“ reports the rule diagnostic 373ms
     โœ“ reports a list with the default scroll view (1)
       โœ“ reports the rule diagnostic 378ms
 โœ“ rules/no-mobile-pull-request-glyph-literals.test.ts (10 tests) 5857ms
   โœ“ t3code/no-mobile-pull-request-glyph-literals (10)
     โœ“ allows glyphs picked from the module (1)
       โœ“ passes 878ms
     โœ“ allows unrelated symbols and copy that mentions pull requests (1)
       โœ“ passes 631ms
     โœ“ reports a pull request glyph in a JSX attribute (1)
       โœ“ reports the rule diagnostic 648ms
     โœ“ reports state glyphs chosen inline (1)
       โœ“ reports the rule diagnostic 550ms
     โœ“ reports glyphs in platform symbol objects (1)
       โœ“ reports the rule diagnostic 617ms
     โœ“ reports an Android-only pull request glyph (1)
       โœ“ reports the rule diagnostic 621ms
     โœ“ allows merge as an ordinary string outside an android symbol slot (1)
       โœ“ passes 415ms
     โœ“ allows merge in an android key outside a platform symbol object (1)
       โœ“ passes 497ms
     โœ“ reports an Android-only pull request glyph written as a template literal (1)
       โœ“ reports the rule diagnostic 366ms
     โœ“ reports glyphs in template literals (1)
       โœ“ reports the rule diagnostic 606ms
 โœ“ src/server/gitCafeHosts.test.ts (7 tests) 27ms
 โœ“ rules/no-native-title-tooltip.test.ts (11 tests) 5904ms
   โœ“ t3code/no-native-title-tooltip (11)
     โœ“ allows intrinsic elements without a title attribute (1)
       โœ“ passes 938ms
     โœ“ allows title props on custom components (1)
       โœ“ passes 575ms
     โœ“ allows title on member expression components (1)
       โœ“ passes 636ms
     โœ“ allows title as an accessible name on embedded content (1)
       โœ“ passes 504ms
     โœ“ allows the svg title child element (1)
       โœ“ passes 710ms
     โœ“ allows document.title assignments (1)
       โœ“ passes 413ms
     โœ“ reports title on a truncating span (1)
       โœ“ reports the rule diagnostic 395ms
     โœ“ reports title on a button (1)
       โœ“ reports the rule diagnostic 359ms
     โœ“ reports title on a paragraph (1)
       โœ“ reports the rule diagnostic 450ms
     โœ“ reports title on a code element (1)
       โœ“ reports the rule diagnostic 452ms
     โœ“ reports title on an anchor (1)
       โœ“ reports the rule diagnostic 441ms
 โœ“ rules/no-ambiguous-detail-navigation.test.ts (3 tests) 1486ms
   โœ“ t3code/no-ambiguous-detail-navigation (3)
     โœ“ allows selections, explicit pushes, and other routes (1)
       โœ“ passes 648ms
     โœ“ reports navigating to a thread (1)
       โœ“ reports the rule diagnostic 459ms
     โœ“ reports a navigate action to a pull request (1)
       โœ“ reports the rule diagnostic 334ms
 โœ“ src/shared/definition.test.ts (10 tests) 5ms
 โœ“ src/server/forgejoPullRequests.test.ts (1 test) 15ms
 โœ“ src/server/gitCafePullRequestJson.test.ts (25 tests) 17ms
 โœ“ src/shared/definition.test.ts (7 tests) 14ms
 โœ“ src/server/ForgejoPullRequestProvider.test.ts (1 test) 16ms
 โœ“ src/server/GitCafeCredentials.test.ts (4 tests) 17ms
 โœ“ rules/no-manual-memo.test.ts (14 tests) 6762ms
   โœ“ t3code/no-manual-memo (11)
     โœ“ allows plain derived values (1)
       โœ“ passes 718ms
     โœ“ allows useStableCallback (1)
       โœ“ passes 522ms
     โœ“ allows other React members (1)
       โœ“ passes 619ms
     โœ“ allows other directives (1)
       โœ“ passes 632ms
     โœ“ reports a "use memo" directive (1)
       โœ“ reports the rule diagnostic 694ms
     โœ“ reports useMemo (1)
       โœ“ reports the rule diagnostic 445ms
     โœ“ reports useCallback (1)
       โœ“ reports the rule diagnostic 373ms
     โœ“ reports React.useMemo (1)
       โœ“ reports the rule diagnostic 328ms
     โœ“ reports "use no memo" (1)
       โœ“ reports the rule diagnostic 348ms
     โœ“ reports a module-level "use no forget" (1)
       โœ“ reports the rule diagnostic 547ms
     โœ“ allows the same text as a string value (1)
       โœ“ passes 445ms
   โœ“ t3code/no-manual-memo with allowMemoHooks (3)
     โœ“ allows useMemo (1)
       โœ“ passes 363ms
     โœ“ allows useCallback (1)
       โœ“ passes 329ms
     โœ“ still reports "use no memo" (1)
       โœ“ reports the rule diagnostic 360ms
 โœ“ src/server/GitCafeSourceControlProvider.test.ts (8 tests) 33ms
 โœ“ src/server/ForgejoSourceControlProvider.test.ts (31 tests) 174ms
 โœ“ rules/no-hookless-use-function.test.ts (9 tests) 3878ms
   โœ“ t3code/no-hookless-use-function (9)
     โœ“ allows a hook that calls useState (1)
       โœ“ passes 463ms
     โœ“ allows a hook that only calls use() (1)
       โœ“ passes 446ms
     โœ“ allows a hook that calls a member hook (1)
       โœ“ passes 431ms
     โœ“ allows a plain function (1)
       โœ“ passes 480ms
     โœ“ allows names that only start with use (1)
       โœ“ passes 663ms
     โœ“ reports a hook-less function declaration (1)
       โœ“ reports the rule diagnostic 367ms
     โœ“ reports a hook-less arrow returning a closure (1)
       โœ“ reports the rule diagnostic 381ms
     โœ“ reports a hook-less function expression (1)
       โœ“ reports the rule diagnostic 321ms
     โœ“ reports a hook call that only happens inside a nested callback (1)
       โœ“ reports the rule diagnostic 308ms
 โœ“ src/server/GitCafePullRequestProvider.test.ts (64 tests) 175ms
 โœ“ src/server/ForgejoCheckout.test.ts (1 test) 322ms
   โœ“ checks out fj pull refs and preserves existing branches and dirty files until forced 320ms

 Test Files  6 passed (6)
      Tests  49 passed (49)
   Start at  18:06:25
   Duration  2.38s (transform 52%, import 37%, setup 6%, tests 5%)


 Test Files  6 passed (6)
      Tests  115 passed (115)
   Start at  18:06:25
   Duration  2.20s (transform 52%, import 34%, setup 11%, tests 3%)


~/infra/task-cache$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled

~/packages/source-control-gitlab$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled
 โœ“ rules/no-em-dash-copy.test.ts (5 tests) 1561ms
   โœ“ t3code/no-em-dash-copy (5)
     โœ“ allows em dashes in comments and regex literals (1)
       โœ“ passes 446ms
     โœ“ allows hyphens and en dashes (1)
       โœ“ passes 311ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/infra/task-cache


 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-gitlab

 โœ“ src/nativeHook.test.ts (4 tests) 137ms
 โœ“ src/Savings.test.ts (1 test) 8ms
 โœ“ src/telemetry.test.ts (5 tests) 66ms
 โœ“ src/telemetryAuth.test.ts (1 test) 103ms
 โœ“ src/Cache.test.ts (6 tests) 130ms
 โœ“ src/Admission.test.ts (2 tests) 10ms
 โœ“ src/developerAuth.test.ts (2 tests) 36ms
 โœ“ rules/no-dom-test-environment.test.ts (12 tests) 4273ms
   โœ“ t3code/no-dom-test-environment (12)
     โœ“ allows browser tests (1)
       โœ“ passes 470ms
     โœ“ allows similarly named packages (1)
       โœ“ passes 344ms
     โœ“ rejects line pragmas (1)
       โœ“ reports the rule diagnostic 396ms
     โœ“ rejects block pragmas for any environment (1)
       โœ“ reports the rule diagnostic 497ms
     โœ“ rejects jsdom imports (1)
       โœ“ reports the rule diagnostic 444ms
     โœ“ rejects CommonJS imports (1)
       โœ“ reports the rule diagnostic 320ms
     โœ“ rejects TypeScript require imports (1)
       โœ“ reports the rule diagnostic 425ms

 Test Files  27 passed (27)
      Tests  373 passed (373)
   Start at  18:05:46
   Duration  42.76s (tests 96%, import 3%, setup 1%)


~/packages/provider-pi$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-pi

 โœ“ src/server/gitLabMergeRequestJson.test.ts (29 tests) 24ms
 โœ“ src/server/GitLabPullRequestCli.test.ts (42 tests) 69ms
 โœ“ src/server/GitLabCli.test.ts (5 tests) 22ms
 โœ“ src/server/GitLabPullRequestCli.legacy.test.ts (14 tests) 29ms
 โœ“ src/server/GitLabPullRequestProvider.test.ts (7 tests) 35ms
 โœ“ src/server/GitLabSourceControlProvider.test.ts (12 tests) 36ms
 โœ“ src/WriterRegistry.test.ts (10 tests) 1141ms
   โœ“ rejects reserved writer names without modifying credential stores 1049ms
 โœ“ src/server/mcpExtensionSource.test.ts (24 tests) 164ms
 โœ“ src/shared/definition.test.ts (6 tests) 4ms
 โœ“ src/server/GitLabSourceControlProvider.git.test.ts (3 tests) 426ms
   โœ“ ignores unavailable or non-regular GitLab default templates 348ms
 โœ“ src/server/gitLabDiscovery.test.ts (3 tests) 7ms
 โœ“ src/server/GitLabPullRequestProvider.rateLimit.test.ts (1 test) 8ms

 Test Files  10 passed (10)
      Tests  122 passed (122)
   Start at  18:06:27
   Duration  2.08s (transform 50%, import 37%, setup 6%, tests 6%)


~/packages/contracts$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/contracts

 โœ“ src/server/commands.test.ts (1 test) 2ms
 โœ“ src/server/mcpInjection.test.ts (3 tests) 10ms
 โœ“ src/auth.test.ts (27 tests) 9ms
 โœ“ src/pullRequest.test.ts (5 tests) 6ms
 โœ“ src/composerContext.test.ts (8 tests) 57ms
 โœ“ src/project.test.ts (6 tests) 18ms
 โœ“ src/server/status.test.ts (6 tests) 42ms
 โœ“ src/server/textGeneration.test.ts (1 test) 25ms
 โœ“ src/baseSchemas.test.ts (9 tests) 13ms
 โœ“ src/server.test.ts (7 tests) 21ms
 โœ“ src/settings.test.ts (24 tests) 45ms
 โœ“ src/server/driver.test.ts (5 tests) 80ms
 โœ“ src/modelSelection.test.ts (4 tests) 9ms
 โœ“ src/device.test.ts (3 tests) 5ms
 โœ“ src/orchestratorMcp.test.ts (1 test) 5ms
 โœ“ src/chatAttachment.test.ts (3 tests) 8ms
 โœ“ src/orchestrationV2IdTable.test.ts (3 tests) 5ms
 โœ“ src/git.test.ts (3 tests) 6ms
 โœ“ src/scheduledTask.test.ts (7 tests) 8ms
 โœ“ src/acpRegistry.test.ts (2 tests) 4ms
 โœ“ src/provider.test.ts (3 tests) 16ms
 โœ“ src/terminal.test.ts (2 tests) 9ms
 โœ“ src/orchestrationV2.test.ts (12 tests) 31ms
 โœ“ src/threadMetadataMcp.test.ts (2 tests) 5ms
 โœ“ src/environment.test.ts (1 test) 5ms
 โœ“ src/keybindings.test.ts (2 tests) 11ms
 โœ“ src/preview.test.ts (2 tests) 5ms
 โœ“ src/rpc.test.ts (2 tests) 3ms
 โœ“ src/filesystem.test.ts (2 tests) 5ms
 โœ“ src/threadPullRequest.test.ts (1 test) 9ms
 โœ“ src/browserProfile.test.ts (2 tests) 2ms
 โœ“ src/relay.test.ts (1 test) 4ms
 โœ“ src/guestShare.test.ts (1 test) 3ms
 โœ“ src/providerSetup.test.ts (1 test) 4ms

 Test Files  29 passed (29)
      Tests  146 passed (146)
   Start at  18:06:30
   Duration  1.64s (import 43%, transform 32%, setup 20%, tests 4%, worker 1%)

    Isolate  29 workers spawned ยท ~84ms startup each (spawn + environment, per file)
             at least ~262ms faster with isolate: false โ€” reuses workers across files instead of one per file


~/packages/tailscale$ vp test run --config ../../vite.config.ts --dir . โŠ˜ cache disabled

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/tailscale

 โœ“ src/runHook.test.ts (6 tests) 3911ms
   โœ“ uses one machine hook across fresh worktrees without modifying Vite+ 3396ms

 Test Files  9 passed (9)
      Tests  37 passed (37)
   Start at  18:06:27
   Duration  4.24s (tests 72%, setup 10%, import 9%, transform 9%, worker 1%)


 โœ“ src/server/adapter.test.ts (87 tests) 1460ms
   โœ“ PiAdapterV2 (85)
     โœ“ delivers realistic MCP screenshots through the bridge, JSONL transport, and adapter 470ms

 Test Files  7 passed (7)
      Tests  127 passed (127)
   Start at  18:06:29
   Duration  3.06s (transform 50%, import 26%, tests 17%, setup 6%)


 โœ“ src/tailscale.test.ts (7 tests) 13ms

 Test Files  1 passed (1)
      Tests  7 passed (7)
   Start at  18:06:32
   Duration  246ms (import 41%, transform 28%, setup 23%, tests 7%, worker 1%)


 โœ“  unit  src/reactCompilerCoverage.test.ts (945 tests) 51531ms
   โœ“ React Compiler coverage (945)
     โœ“ Metro's transformer applies the compiler 3388ms
     โœ“ compiles src/components/ComposerAttachmentStrip.tsx 351ms
     โœ“ compiles src/components/ComposerContextAttachment.tsx 534ms
     โœ“ compiles src/components/ComposerContextSheet.tsx 612ms
     โœ“ compiles src/components/ComposerEditor.tsx 540ms
     โœ“ compiles src/components/ComposerToolbar.tsx 338ms
     โœ“ compiles src/components/FilePreviewModal.tsx 344ms
     โœ“ compiles src/features/archive/ArchivedThreadsScreen.tsx 667ms
     โœ“ compiles src/features/browser/BrowserPreviewRouteScreen.tsx 433ms
     โœ“ compiles src/features/browser/BrowserTabMenu.tsx 306ms
     โœ“ compiles src/features/browser/PreviewStreamWebView.tsx 792ms
     โœ“ compiles src/features/connection/CloudEnvironmentRows.tsx 322ms
     โœ“ compiles src/features/devices/DevicePreviewRouteScreen.tsx 599ms
     โœ“ compiles src/features/files/AttachmentFileScreen.tsx 378ms
     โœ“ compiles src/features/files/ThreadFilesRouteScreen.tsx 614ms
     โœ“ compiles src/features/home/HomeRouteScreen.tsx 391ms
     โœ“ compiles src/features/home/HomeScreen.tsx 895ms
     โœ“ compiles src/features/home/thread-swipe-actions.tsx 851ms
     โœ“ compiles src/features/home/useThreadListActions.ts 431ms
     โœ“ compiles src/features/keyboard/CommandPalette.tsx 633ms
     โœ“ compiles src/features/layout/AdaptiveWorkspaceLayout.tsx 1087ms
     โœ“ compiles src/features/projects/AddProjectScreen.tsx 363ms
     โœ“ compiles src/features/pull-requests/PullRequestRouteScreen.tsx 792ms
     โœ“ compiles src/features/threads/NewTaskDraftScreen.tsx 434ms
     โœ“ compiles src/features/threads/ThreadComposer.tsx 559ms
     โœ“ compiles src/features/threads/ThreadDetailScreen.tsx 1061ms
     โœ“ compiles src/features/threads/ThreadFeed.tsx 867ms
     โœ“ compiles src/features/threads/new-task-flow-provider.tsx 457ms
     โœ“ compiles src/features/threads/thread-list-v2-items.tsx 341ms
     โœ“ compiles src/features/threads/thread-work-log.tsx 396ms
     โœ“ caches the thread feed derivation 865ms

โŽฏโŽฏโŽฏโŽฏโŽฏโŽฏ Failed Suites 1 โŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏ

 FAIL   react  src/state/queries.debounce.test.tsx [ src/state/queries.debounce.test.tsx ]
ReferenceError: __DEV__ is not defined
 โฏ Object.<anonymous> ../../node_modules/.pnpm/expo@58.0.14_277a83826bb26ba15256633fefeb0bc2/node_modules/expo/build/async-require/async-require/setup.ts:5:1

โŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏโŽฏ[1/1]โŽฏ


 Test Files  1 failed | 206 passed (207)
      Tests  2413 passed (2413)
   Start at  18:05:37
   Duration  71.16s (import 39%, transform 24%, tests 24%, setup 9%, environment 3%)


---
vp run: 27/28 successful. (Run `vp run --last-details` for full details)
Error: Process completed with exit code 1.
Post job cleanup.
##[start-action display=Cache full pnpm store;id=__2c6b5a09-b13e-4d71-98f2-2f9263c221ee.__actions_cache]
##[end-action id=__2c6b5a09-b13e-4d71-98f2-2f9263c221ee.__actions_cache;outcome=skipped;conclusion=skipped;duration_ms=0]
##[start-action display=Cache Vite+;id=__2c6b5a09-b13e-4d71-98f2-2f9263c221ee.vp_cache]
##[end-action id=__2c6b5a09-b13e-4d71-98f2-2f9263c221ee.vp_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/540a884f-001b-4b9b-b7a6-098bd88cf654' 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: 146
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 602
  BLACKSMITH_CHECK_RUN_ID: 121247521442
  BLACKSMITH_JOB_DISPLAY_NAME: Test
  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