[PR #11205] feat: enable turborepo caching for test workflow #13697

Open
opened 2026-02-16 18:18:32 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/anomalyco/opencode/pull/11205

State: open
Merged: No


Summary

  • Added GitHub Cache for directory in test workflow
  • Added task to turbo.json with
  • Changed Windows test command to use • Packages in scope: //, @opencode-ai/app, @opencode-ai/console-app, @opencode-ai/console-core, @opencode-ai/console-function, @opencode-ai/console-mail, @opencode-ai/console-resource, @opencode-ai/desktop, @opencode-ai/enterprise, @opencode-ai/function, @opencode-ai/plugin, @opencode-ai/script, @opencode-ai/sdk, @opencode-ai/slack, @opencode-ai/ui, @opencode-ai/util, @opencode-ai/web, opencode
    • Running @opencode-ai/app#test:e2e:local in 18 packages
    • Remote caching disabled
    @opencode-ai/sdk:build: cache hit, replaying logs e69e446b5576fba0
    @opencode-ai/sdk:build:
    @opencode-ai/sdk:build: $ ./script/build.ts
    @opencode-ai/sdk:build: $ bun run --conditions=browser ./src/index.ts generate
    @opencode-ai/sdk:build: [baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: npm i baseline-browser-mapping@latest -D
    @opencode-ai/sdk:build: [@hey-api/sdk] instance is deprecated. Use operations: { strategy: "single", containerName: "OpencodeClient", methods: "instance" } instead.
    @opencode-ai/sdk:build: @hey-api/openapi-ts v0.90.10
    @opencode-ai/sdk:build:
    @opencode-ai/sdk:build: [Job 1]  Generating from 1 input:
    @opencode-ai/sdk:build: [Job 1]  [1] ./openapi.json
    @opencode-ai/sdk:build: [Job 1]  Done! Your output is in /home/thdxr/dev/projects/sst/opencode/packages/sdk/js/src/v2/gen
    @opencode-ai/sdk:build: src/gen/client.gen.ts 26ms (unchanged)
    @opencode-ai/sdk:build: src/gen/client/client.gen.ts 21ms (unchanged)
    @opencode-ai/sdk:build: src/gen/client/index.ts 2ms (unchanged)
    @opencode-ai/sdk:build: src/gen/client/types.gen.ts 13ms (unchanged)
    @opencode-ai/sdk:build: src/gen/client/utils.gen.ts 28ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/auth.gen.ts 3ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/bodySerializer.gen.ts 5ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/params.gen.ts 7ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/pathSerializer.gen.ts 10ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/queryKeySerializer.gen.ts 5ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/serverSentEvents.gen.ts 9ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/types.gen.ts 3ms (unchanged)
    @opencode-ai/sdk:build: src/gen/core/utils.gen.ts 4ms (unchanged)
    @opencode-ai/sdk:build: src/gen/sdk.gen.ts 41ms (unchanged)
    @opencode-ai/sdk:build: src/gen/types.gen.ts 65ms (unchanged)
    @opencode-ai/sdk:build: src/v2/client.ts 31ms (unchanged)
    @opencode-ai/sdk:build: src/v2/gen/client.gen.ts 4ms
    @opencode-ai/sdk:build: src/v2/gen/client/client.gen.ts 24ms
    @opencode-ai/sdk:build: src/v2/gen/client/index.ts 2ms
    @opencode-ai/sdk:build: src/v2/gen/client/types.gen.ts 11ms
    @opencode-ai/sdk:build: src/v2/gen/client/utils.gen.ts 30ms
    @opencode-ai/sdk:build: src/v2/gen/core/auth.gen.ts 3ms
    @opencode-ai/sdk:build: src/v2/gen/core/bodySerializer.gen.ts 5ms
    @opencode-ai/sdk:build: src/v2/gen/core/params.gen.ts 7ms
    @opencode-ai/sdk:build: src/v2/gen/core/pathSerializer.gen.ts 10ms
    @opencode-ai/sdk:build: src/v2/gen/core/queryKeySerializer.gen.ts 5ms
    @opencode-ai/sdk:build: src/v2/gen/core/serverSentEvents.gen.ts 9ms
    @opencode-ai/sdk:build: src/v2/gen/core/types.gen.ts 3ms
    @opencode-ai/sdk:build: src/v2/gen/core/utils.gen.ts 4ms
    @opencode-ai/sdk:build: src/v2/gen/sdk.gen.ts 100ms
    @opencode-ai/sdk:build: src/v2/gen/types.gen.ts 84ms
    @opencode-ai/sdk:build: src/v2/index.ts 3ms (unchanged)
    @opencode-ai/sdk:build: src/v2/server.ts 9ms (unchanged)
    @opencode-ai/app:test:e2e:local: cache miss, executing dd1e9fa78256eb62
    @opencode-ai/app:test:e2e:local: $ bun script/e2e-local.ts
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +314ms service=default directory=/home/thdxr/dev/projects/sst/opencode creating instance
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=project directory=/home/thdxr/dev/projects/sst/opencode fromDirectory
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +5ms service=storage index=0 running migration
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=storage index=1 running migration
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=default directory=/home/thdxr/dev/projects/sst/opencode bootstrapping
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +7ms service=config path=/tmp/opencode-e2e-onagzT/config/opencode/config.json loading
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=config path=/tmp/opencode-e2e-onagzT/config/opencode/opencode.json loading
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=config path=/tmp/opencode-e2e-onagzT/config/opencode/opencode.jsonc loading
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","add","@opencode-ai/plugin@latest","--exact"] cwd=/tmp/opencode-e2e-onagzT/config/opencode running
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +289ms service=bun code=0 stdout=bun add v1.3.5 (1e86cebd)
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: installed @opencode-ai/plugin@1.1.42
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: 3 packages installed [282.00ms]
    @opencode-ai/app:test:e2e:local: stderr=Resolving dependencies
    @opencode-ai/app:test:e2e:local: Resolved, downloaded and extracted [12]
    @opencode-ai/app:test:e2e:local: Saved lockfile
    @opencode-ai/app:test:e2e:local: done
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","install"] cwd=/tmp/opencode-e2e-onagzT/config/opencode running
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +4ms service=bun code=0 stdout=bun install v1.3.5 (1e86cebd)
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Checked 3 installs across 4 packages (no changes) [1.00ms]
    @opencode-ai/app:test:e2e:local: stderr= done
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=config path=/home/thdxr/dev/projects/sst/opencode/.opencode/opencode.jsonc loading
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +4ms service=config path=/home/thdxr/dev/projects/sst/opencode/.opencode/opencode.json loading
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","add","@opencode-ai/plugin@latest","--exact"] cwd=/home/thdxr/dev/projects/sst/opencode/.opencode running
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +7ms service=plugin name=CodexAuthPlugin loading internal plugin
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=plugin name=CopilotAuthPlugin loading internal plugin
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=* subscribing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=session.updated subscribing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=message.updated subscribing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=message.part.updated subscribing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=format init
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=file.edited subscribing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=lsp serverIds=deno, typescript, vue, eslint, oxlint, biome, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, fsharp, sourcekit-lsp, rust, clangd, svelte, astro, jdtls, kotlin-ls, yaml-ls, lua-ls, php intelephense, prisma, dart, ocaml-lsp, bash, terraform, texlab, dockerfile, gleam, clojure-lsp, nixd, tinymist, haskell-language-server enabled LSP servers
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=scheduler id=snapshot.cleanup run
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=scheduler id=tool.truncation.cleanup run
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=command.executed subscribing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=session id=ses_3f44fb2b7ffegFUyP9DD8OcZrd slug=proud-star version=local projectID=4b0ea68d7af9a6031a7ffda7ad66e0cb83315750 directory=/home/thdxr/dev/projects/sst/opencode title=E2E Session time={"created":1769722629448,"updated":1769722629448} created
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=bus type=session.created publishing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=session.updated publishing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=bun code=0 stdout=bun add v1.3.5 (1e86cebd)
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: installed @opencode-ai/plugin@1.1.42
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [2.00ms] done
    @opencode-ai/app:test:e2e:local: stderr=Saved lockfile
    @opencode-ai/app:test:e2e:local: done
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","install"] cwd=/home/thdxr/dev/projects/sst/opencode/.opencode running
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=vcs branch=feat/turborepo-caching initialized
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=file.watcher.updated subscribing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +3ms service=bus type=message.updated publishing
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +4ms service=bun code=0 stdout=bun install v1.3.5 (1e86cebd)
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Checked 3 installs across 4 packages (no changes) [1.00ms]
    @opencode-ai/app:test:e2e:local: stderr= done
    @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=message.part.updated publishing
    @opencode-ai/app:test:e2e:local: opencode server listening on http://127.0.0.1:34663
    @opencode-ai/app:test:e2e:local: $ playwright test
    @opencode-ai/app:test:e2e:local: [WebServer] $ vite --host "0.0.0.0" --port "40099"
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [WebServer] [baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: npm i baseline-browser-mapping@latest -D
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Running 22 tests using 12 workers
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [1/22] [chromium] › e2e/file-tree.spec.ts:3:6 › file tree can expand folders and open a file
    @opencode-ai/app:test:e2e:local: [2/22] [chromium] › e2e/home.spec.ts:11:1 › server picker dialog opens from home
    @opencode-ai/app:test:e2e:local: [3/22] [chromium] › e2e/navigation.spec.ts:4:1 › project route redirects to /session
    @opencode-ai/app:test:e2e:local: [4/22] [chromium] › e2e/file-open.spec.ts:4:1 › can open a file tab from the search palette
    @opencode-ai/app:test:e2e:local: [5/22] [chromium] › e2e/context.spec.ts:4:1 › context panel can be opened from the prompt
    @opencode-ai/app:test:e2e:local: [6/22] [chromium] › e2e/models-visibility.spec.ts:4:1 › hiding a model removes it from the model picker
    @opencode-ai/app:test:e2e:local:  1) [chromium] › e2e/home.spec.ts:11:1 › server picker dialog opens from home ─────────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  2) [chromium] › e2e/navigation.spec.ts:4:1 › project route redirects to /session ─────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [7/22] [chromium] › e2e/model-picker.spec.ts:4:1 › smoke model selection updates prompt footer
    @opencode-ai/app:test:e2e:local: [8/22] [chromium] › e2e/file-viewer.spec.ts:4:1 › smoke file viewer renders real file content
    @opencode-ai/app:test:e2e:local: [9/22] [chromium] › e2e/prompt-mention.spec.ts:4:1 › smoke @mention inserts file pill token
    @opencode-ai/app:test:e2e:local:  3) [chromium] › e2e/file-open.spec.ts:4:1 › can open a file tab from the search palette ──────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [10/22] [chromium] › e2e/palette.spec.ts:4:1 › search palette opens and closes
    @opencode-ai/app:test:e2e:local:  4) [chromium] › e2e/context.spec.ts:4:1 › context panel can be opened from the prompt ────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [11/22] [chromium] › e2e/prompt.spec.ts:9:1 › can send a prompt and receive a reply
    @opencode-ai/app:test:e2e:local:  5) [chromium] › e2e/models-visibility.spec.ts:4:1 › hiding a model removes it from the model picker
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [12/22] [chromium] › e2e/home.spec.ts:4:1 › home renders and shows core entrypoints
    @opencode-ai/app:test:e2e:local: [13/22] [chromium] › e2e/prompt-slash-open.spec.ts:4:1 › smoke /open opens file picker dialog
    @opencode-ai/app:test:e2e:local:  6) [chromium] › e2e/file-viewer.spec.ts:4:1 › smoke file viewer renders real file content ────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  7) [chromium] › e2e/model-picker.spec.ts:4:1 › smoke model selection updates prompt footer ───────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  8) [chromium] › e2e/prompt-mention.spec.ts:4:1 › smoke @mention inserts file pill token ──────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  9) [chromium] › e2e/palette.spec.ts:4:1 › search palette opens and closes ────────────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  10) [chromium] › e2e/home.spec.ts:4:1 › home renders and shows core entrypoints ──────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  11) [chromium] › e2e/prompt.spec.ts:9:1 › can send a prompt and receive a reply ──────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  12) [chromium] › e2e/prompt-slash-open.spec.ts:4:1 › smoke /open opens file picker dialog ────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [14/22] [chromium] › e2e/server-default.spec.ts:6:1 › can set a default server on web
    @opencode-ai/app:test:e2e:local: [15/22] [chromium] › e2e/session.spec.ts:4:1 › can open an existing session and type into the prompt
    @opencode-ai/app:test:e2e:local:  13) [chromium] › e2e/server-default.spec.ts:6:1 › can set a default server on web ────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [16/22] [chromium] › e2e/sidebar-session-links.spec.ts:30:1 › sidebar session links navigate to the selected session
    @opencode-ai/app:test:e2e:local:  14) [chromium] › e2e/session.spec.ts:4:1 › can open an existing session and type into the prompt ─
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [17/22] [chromium] › e2e/settings-providers.spec.ts:4:1 › smoke providers settings opens provider selector
    @opencode-ai/app:test:e2e:local:  15) [chromium] › e2e/sidebar-session-links.spec.ts:30:1 › sidebar session links navigate to the selected session
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [18/22] [chromium] › e2e/sidebar.spec.ts:4:1 › sidebar can be collapsed and expanded
    @opencode-ai/app:test:e2e:local:  16) [chromium] › e2e/settings-providers.spec.ts:4:1 › smoke providers settings opens provider selector
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [19/22] [chromium] › e2e/terminal.spec.ts:4:1 › terminal panel can be toggled
    @opencode-ai/app:test:e2e:local: [20/22] [chromium] › e2e/settings.spec.ts:4:1 › smoke settings dialog opens, switches tabs, closes
    @opencode-ai/app:test:e2e:local:  17) [chromium] › e2e/sidebar.spec.ts:4:1 › sidebar can be collapsed and expanded ─────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: [21/22] [chromium] › e2e/titlebar-history.spec.ts:4:1 › titlebar back/forward navigates between sessions
    @opencode-ai/app:test:e2e:local: [22/22] [chromium] › e2e/terminal-init.spec.ts:4:1 › smoke terminal mounts and can create a second tab
    @opencode-ai/app:test:e2e:local:  18) [chromium] › e2e/terminal.spec.ts:4:1 › terminal panel can be toggled ────────────────────────
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  19) [chromium] › e2e/settings.spec.ts:4:1 › smoke settings dialog opens, switches tabs, closes ───
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  20) [chromium] › e2e/titlebar-history.spec.ts:4:1 › titlebar back/forward navigates between sessions
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  21) [chromium] › e2e/terminal-init.spec.ts:4:1 › smoke terminal mounts and can create a second tab
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell
    @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗
    @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ npx playwright install ║
    @opencode-ai/app:test:e2e:local: ║ ║
    @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║
    @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:
    @opencode-ai/app:test:e2e:local:  21 failed
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/context.spec.ts:4:1 › context panel can be opened from the prompt ─────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/file-open.spec.ts:4:1 › can open a file tab from the search palette ───────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/file-viewer.spec.ts:4:1 › smoke file viewer renders real file content ─────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/home.spec.ts:4:1 › home renders and shows core entrypoints ────────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/home.spec.ts:11:1 › server picker dialog opens from home ──────────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/model-picker.spec.ts:4:1 › smoke model selection updates prompt footer ────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/models-visibility.spec.ts:4:1 › hiding a model removes it from the model picker
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/navigation.spec.ts:4:1 › project route redirects to /session ──────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/palette.spec.ts:4:1 › search palette opens and closes ─────────────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/prompt-mention.spec.ts:4:1 › smoke @mention inserts file pill token ───────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/prompt-slash-open.spec.ts:4:1 › smoke /open opens file picker dialog ──────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/prompt.spec.ts:9:1 › can send a prompt and receive a reply ────────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/server-default.spec.ts:6:1 › can set a default server on web ──────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/session.spec.ts:4:1 › can open an existing session and type into the prompt ───
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/settings-providers.spec.ts:4:1 › smoke providers settings opens provider selector
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/settings.spec.ts:4:1 › smoke settings dialog opens, switches tabs, closes ─────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/sidebar-session-links.spec.ts:30:1 › sidebar session links navigate to the selected session
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/sidebar.spec.ts:4:1 › sidebar can be collapsed and expanded ───────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/terminal-init.spec.ts:4:1 › smoke terminal mounts and can create a second tab ─
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/terminal.spec.ts:4:1 › terminal panel can be toggled ──────────────────────────
    @opencode-ai/app:test:e2e:local: [chromium] › e2e/titlebar-history.spec.ts:4:1 › titlebar back/forward navigates between sessions
    @opencode-ai/app:test:e2e:local: 1 skipped
    @opencode-ai/app:test:e2e:local: error: script "test:e2e" exited with code 1
    @opencode-ai/app:test:e2e:local: error: script "test:e2e:local" exited with code 1

Tasks: 1 successful, 2 total
Cached: 1 cached, 2 total
Time: 4.103s
Failed: @opencode-ai/app#test:e2e:local instead of direct script execution

**Original Pull Request:** https://github.com/anomalyco/opencode/pull/11205 **State:** open **Merged:** No --- ## Summary - Added GitHub Cache for directory in test workflow - Added task to turbo.json with - Changed Windows test command to use • Packages in scope: //, @opencode-ai/app, @opencode-ai/console-app, @opencode-ai/console-core, @opencode-ai/console-function, @opencode-ai/console-mail, @opencode-ai/console-resource, @opencode-ai/desktop, @opencode-ai/enterprise, @opencode-ai/function, @opencode-ai/plugin, @opencode-ai/script, @opencode-ai/sdk, @opencode-ai/slack, @opencode-ai/ui, @opencode-ai/util, @opencode-ai/web, opencode • Running @opencode-ai/app#test:e2e:local in 18 packages • Remote caching disabled @opencode-ai/sdk:build: cache hit, replaying logs e69e446b5576fba0 @opencode-ai/sdk:build: @opencode-ai/sdk:build: $ ./script/build.ts @opencode-ai/sdk:build: $ bun run --conditions=browser ./src/index.ts generate @opencode-ai/sdk:build: [baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D` @opencode-ai/sdk:build: [@hey-api/sdk] `instance` is deprecated. Use `operations: { strategy: "single", containerName: "OpencodeClient", methods: "instance" }` instead. @opencode-ai/sdk:build: @hey-api/openapi-ts v0.90.10 @opencode-ai/sdk:build: @opencode-ai/sdk:build: [Job 1] ⏳ Generating from 1 input: @opencode-ai/sdk:build: [Job 1]  [1] ./openapi.json @opencode-ai/sdk:build: [Job 1] ✅ Done! Your output is in /home/thdxr/dev/projects/sst/opencode/packages/sdk/js/src/v2/gen @opencode-ai/sdk:build: src/gen/client.gen.ts 26ms (unchanged) @opencode-ai/sdk:build: src/gen/client/client.gen.ts 21ms (unchanged) @opencode-ai/sdk:build: src/gen/client/index.ts 2ms (unchanged) @opencode-ai/sdk:build: src/gen/client/types.gen.ts 13ms (unchanged) @opencode-ai/sdk:build: src/gen/client/utils.gen.ts 28ms (unchanged) @opencode-ai/sdk:build: src/gen/core/auth.gen.ts 3ms (unchanged) @opencode-ai/sdk:build: src/gen/core/bodySerializer.gen.ts 5ms (unchanged) @opencode-ai/sdk:build: src/gen/core/params.gen.ts 7ms (unchanged) @opencode-ai/sdk:build: src/gen/core/pathSerializer.gen.ts 10ms (unchanged) @opencode-ai/sdk:build: src/gen/core/queryKeySerializer.gen.ts 5ms (unchanged) @opencode-ai/sdk:build: src/gen/core/serverSentEvents.gen.ts 9ms (unchanged) @opencode-ai/sdk:build: src/gen/core/types.gen.ts 3ms (unchanged) @opencode-ai/sdk:build: src/gen/core/utils.gen.ts 4ms (unchanged) @opencode-ai/sdk:build: src/gen/sdk.gen.ts 41ms (unchanged) @opencode-ai/sdk:build: src/gen/types.gen.ts 65ms (unchanged) @opencode-ai/sdk:build: src/v2/client.ts 31ms (unchanged) @opencode-ai/sdk:build: src/v2/gen/client.gen.ts 4ms @opencode-ai/sdk:build: src/v2/gen/client/client.gen.ts 24ms @opencode-ai/sdk:build: src/v2/gen/client/index.ts 2ms @opencode-ai/sdk:build: src/v2/gen/client/types.gen.ts 11ms @opencode-ai/sdk:build: src/v2/gen/client/utils.gen.ts 30ms @opencode-ai/sdk:build: src/v2/gen/core/auth.gen.ts 3ms @opencode-ai/sdk:build: src/v2/gen/core/bodySerializer.gen.ts 5ms @opencode-ai/sdk:build: src/v2/gen/core/params.gen.ts 7ms @opencode-ai/sdk:build: src/v2/gen/core/pathSerializer.gen.ts 10ms @opencode-ai/sdk:build: src/v2/gen/core/queryKeySerializer.gen.ts 5ms @opencode-ai/sdk:build: src/v2/gen/core/serverSentEvents.gen.ts 9ms @opencode-ai/sdk:build: src/v2/gen/core/types.gen.ts 3ms @opencode-ai/sdk:build: src/v2/gen/core/utils.gen.ts 4ms @opencode-ai/sdk:build: src/v2/gen/sdk.gen.ts 100ms @opencode-ai/sdk:build: src/v2/gen/types.gen.ts 84ms @opencode-ai/sdk:build: src/v2/index.ts 3ms (unchanged) @opencode-ai/sdk:build: src/v2/server.ts 9ms (unchanged) @opencode-ai/app:test:e2e:local: cache miss, executing dd1e9fa78256eb62 @opencode-ai/app:test:e2e:local: $ bun script/e2e-local.ts @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +314ms service=default directory=/home/thdxr/dev/projects/sst/opencode creating instance @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=project directory=/home/thdxr/dev/projects/sst/opencode fromDirectory @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +5ms service=storage index=0 running migration @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=storage index=1 running migration @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=default directory=/home/thdxr/dev/projects/sst/opencode bootstrapping @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +7ms service=config path=/tmp/opencode-e2e-onagzT/config/opencode/config.json loading @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=config path=/tmp/opencode-e2e-onagzT/config/opencode/opencode.json loading @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=config path=/tmp/opencode-e2e-onagzT/config/opencode/opencode.jsonc loading @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","add","@opencode-ai/plugin@latest","--exact"] cwd=/tmp/opencode-e2e-onagzT/config/opencode running @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +289ms service=bun code=0 stdout=bun add v1.3.5 (1e86cebd) @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: installed @opencode-ai/plugin@1.1.42 @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: 3 packages installed [282.00ms] @opencode-ai/app:test:e2e:local: stderr=Resolving dependencies @opencode-ai/app:test:e2e:local: Resolved, downloaded and extracted [12] @opencode-ai/app:test:e2e:local: Saved lockfile @opencode-ai/app:test:e2e:local: done @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","install"] cwd=/tmp/opencode-e2e-onagzT/config/opencode running @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +4ms service=bun code=0 stdout=bun install v1.3.5 (1e86cebd) @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Checked 3 installs across 4 packages (no changes) [1.00ms] @opencode-ai/app:test:e2e:local: stderr= done @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=config path=/home/thdxr/dev/projects/sst/opencode/.opencode/opencode.jsonc loading @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +4ms service=config path=/home/thdxr/dev/projects/sst/opencode/.opencode/opencode.json loading @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","add","@opencode-ai/plugin@latest","--exact"] cwd=/home/thdxr/dev/projects/sst/opencode/.opencode running @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +7ms service=plugin name=CodexAuthPlugin loading internal plugin @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=plugin name=CopilotAuthPlugin loading internal plugin @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=* subscribing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=session.updated subscribing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=message.updated subscribing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=message.part.updated subscribing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=format init @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=file.edited subscribing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=lsp serverIds=deno, typescript, vue, eslint, oxlint, biome, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, fsharp, sourcekit-lsp, rust, clangd, svelte, astro, jdtls, kotlin-ls, yaml-ls, lua-ls, php intelephense, prisma, dart, ocaml-lsp, bash, terraform, texlab, dockerfile, gleam, clojure-lsp, nixd, tinymist, haskell-language-server enabled LSP servers @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=scheduler id=snapshot.cleanup run @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=scheduler id=tool.truncation.cleanup run @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=command.executed subscribing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=session id=ses_3f44fb2b7ffegFUyP9DD8OcZrd slug=proud-star version=local projectID=4b0ea68d7af9a6031a7ffda7ad66e0cb83315750 directory=/home/thdxr/dev/projects/sst/opencode title=E2E Session time={"created":1769722629448,"updated":1769722629448} created @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=bus type=session.created publishing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=session.updated publishing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +1ms service=bun code=0 stdout=bun add v1.3.5 (1e86cebd) @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: installed @opencode-ai/plugin@1.1.42 @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [2.00ms] done @opencode-ai/app:test:e2e:local: stderr=Saved lockfile @opencode-ai/app:test:e2e:local: done @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bun cmd=["/home/thdxr/.bun/install/global/node_modules/bun/bin/bun.exe","install"] cwd=/home/thdxr/dev/projects/sst/opencode/.opencode running @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=vcs branch=feat/turborepo-caching initialized @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=file.watcher.updated subscribing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +3ms service=bus type=message.updated publishing @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +4ms service=bun code=0 stdout=bun install v1.3.5 (1e86cebd) @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Checked 3 installs across 4 packages (no changes) [1.00ms] @opencode-ai/app:test:e2e:local: stderr= done @opencode-ai/app:test:e2e:local: INFO 2026-01-29T21:37:09 +0ms service=bus type=message.part.updated publishing @opencode-ai/app:test:e2e:local: opencode server listening on http://127.0.0.1:34663 @opencode-ai/app:test:e2e:local: $ playwright test @opencode-ai/app:test:e2e:local: [WebServer] $ vite --host "0.0.0.0" --port "40099" @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [WebServer] [baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D` @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Running 22 tests using 12 workers @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [1/22] [chromium] › e2e/file-tree.spec.ts:3:6 › file tree can expand folders and open a file @opencode-ai/app:test:e2e:local: [2/22] [chromium] › e2e/home.spec.ts:11:1 › server picker dialog opens from home @opencode-ai/app:test:e2e:local: [3/22] [chromium] › e2e/navigation.spec.ts:4:1 › project route redirects to /session @opencode-ai/app:test:e2e:local: [4/22] [chromium] › e2e/file-open.spec.ts:4:1 › can open a file tab from the search palette @opencode-ai/app:test:e2e:local: [5/22] [chromium] › e2e/context.spec.ts:4:1 › context panel can be opened from the prompt @opencode-ai/app:test:e2e:local: [6/22] [chromium] › e2e/models-visibility.spec.ts:4:1 › hiding a model removes it from the model picker @opencode-ai/app:test:e2e:local:  1) [chromium] › e2e/home.spec.ts:11:1 › server picker dialog opens from home ───────────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  2) [chromium] › e2e/navigation.spec.ts:4:1 › project route redirects to /session ───────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [7/22] [chromium] › e2e/model-picker.spec.ts:4:1 › smoke model selection updates prompt footer @opencode-ai/app:test:e2e:local: [8/22] [chromium] › e2e/file-viewer.spec.ts:4:1 › smoke file viewer renders real file content @opencode-ai/app:test:e2e:local: [9/22] [chromium] › e2e/prompt-mention.spec.ts:4:1 › smoke @mention inserts file pill token @opencode-ai/app:test:e2e:local:  3) [chromium] › e2e/file-open.spec.ts:4:1 › can open a file tab from the search palette ────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [10/22] [chromium] › e2e/palette.spec.ts:4:1 › search palette opens and closes @opencode-ai/app:test:e2e:local:  4) [chromium] › e2e/context.spec.ts:4:1 › context panel can be opened from the prompt ──────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [11/22] [chromium] › e2e/prompt.spec.ts:9:1 › can send a prompt and receive a reply @opencode-ai/app:test:e2e:local:  5) [chromium] › e2e/models-visibility.spec.ts:4:1 › hiding a model removes it from the model picker @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [12/22] [chromium] › e2e/home.spec.ts:4:1 › home renders and shows core entrypoints @opencode-ai/app:test:e2e:local: [13/22] [chromium] › e2e/prompt-slash-open.spec.ts:4:1 › smoke /open opens file picker dialog @opencode-ai/app:test:e2e:local:  6) [chromium] › e2e/file-viewer.spec.ts:4:1 › smoke file viewer renders real file content ──────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  7) [chromium] › e2e/model-picker.spec.ts:4:1 › smoke model selection updates prompt footer ─────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  8) [chromium] › e2e/prompt-mention.spec.ts:4:1 › smoke @mention inserts file pill token ────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  9) [chromium] › e2e/palette.spec.ts:4:1 › search palette opens and closes ──────────────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  10) [chromium] › e2e/home.spec.ts:4:1 › home renders and shows core entrypoints ────────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  11) [chromium] › e2e/prompt.spec.ts:9:1 › can send a prompt and receive a reply ────────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  12) [chromium] › e2e/prompt-slash-open.spec.ts:4:1 › smoke /open opens file picker dialog ──────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [14/22] [chromium] › e2e/server-default.spec.ts:6:1 › can set a default server on web @opencode-ai/app:test:e2e:local: [15/22] [chromium] › e2e/session.spec.ts:4:1 › can open an existing session and type into the prompt @opencode-ai/app:test:e2e:local:  13) [chromium] › e2e/server-default.spec.ts:6:1 › can set a default server on web ──────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [16/22] [chromium] › e2e/sidebar-session-links.spec.ts:30:1 › sidebar session links navigate to the selected session @opencode-ai/app:test:e2e:local:  14) [chromium] › e2e/session.spec.ts:4:1 › can open an existing session and type into the prompt ─ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [17/22] [chromium] › e2e/settings-providers.spec.ts:4:1 › smoke providers settings opens provider selector @opencode-ai/app:test:e2e:local:  15) [chromium] › e2e/sidebar-session-links.spec.ts:30:1 › sidebar session links navigate to the selected session @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [18/22] [chromium] › e2e/sidebar.spec.ts:4:1 › sidebar can be collapsed and expanded @opencode-ai/app:test:e2e:local:  16) [chromium] › e2e/settings-providers.spec.ts:4:1 › smoke providers settings opens provider selector @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [19/22] [chromium] › e2e/terminal.spec.ts:4:1 › terminal panel can be toggled @opencode-ai/app:test:e2e:local: [20/22] [chromium] › e2e/settings.spec.ts:4:1 › smoke settings dialog opens, switches tabs, closes @opencode-ai/app:test:e2e:local:  17) [chromium] › e2e/sidebar.spec.ts:4:1 › sidebar can be collapsed and expanded ───────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: [21/22] [chromium] › e2e/titlebar-history.spec.ts:4:1 › titlebar back/forward navigates between sessions @opencode-ai/app:test:e2e:local: [22/22] [chromium] › e2e/terminal-init.spec.ts:4:1 › smoke terminal mounts and can create a second tab @opencode-ai/app:test:e2e:local:  18) [chromium] › e2e/terminal.spec.ts:4:1 › terminal panel can be toggled ──────────────────────── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  19) [chromium] › e2e/settings.spec.ts:4:1 › smoke settings dialog opens, switches tabs, closes ─── @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  20) [chromium] › e2e/titlebar-history.spec.ts:4:1 › titlebar back/forward navigates between sessions @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  21) [chromium] › e2e/terminal-init.spec.ts:4:1 › smoke terminal mounts and can create a second tab @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: Error: browserType.launch: Executable doesn't exist at /tmp/opencode-e2e-onagzT/cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell @opencode-ai/app:test:e2e:local: ╔═════════════════════════════════════════════════════════════════════════╗ @opencode-ai/app:test:e2e:local: ║ Looks like Playwright Test or Playwright was just installed or updated. ║ @opencode-ai/app:test:e2e:local: ║ Please run the following command to download new browsers: ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ npx playwright install ║ @opencode-ai/app:test:e2e:local: ║ ║ @opencode-ai/app:test:e2e:local: ║ <3 Playwright Team ║ @opencode-ai/app:test:e2e:local: ╚═════════════════════════════════════════════════════════════════════════╝ @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local: @opencode-ai/app:test:e2e:local:  21 failed @opencode-ai/app:test:e2e:local: [chromium] › e2e/context.spec.ts:4:1 › context panel can be opened from the prompt ───────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/file-open.spec.ts:4:1 › can open a file tab from the search palette ─────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/file-viewer.spec.ts:4:1 › smoke file viewer renders real file content ───────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/home.spec.ts:4:1 › home renders and shows core entrypoints ──────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/home.spec.ts:11:1 › server picker dialog opens from home ────────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/model-picker.spec.ts:4:1 › smoke model selection updates prompt footer ──────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/models-visibility.spec.ts:4:1 › hiding a model removes it from the model picker @opencode-ai/app:test:e2e:local: [chromium] › e2e/navigation.spec.ts:4:1 › project route redirects to /session ────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/palette.spec.ts:4:1 › search palette opens and closes ───────────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/prompt-mention.spec.ts:4:1 › smoke @mention inserts file pill token ─────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/prompt-slash-open.spec.ts:4:1 › smoke /open opens file picker dialog ────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/prompt.spec.ts:9:1 › can send a prompt and receive a reply ──────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/server-default.spec.ts:6:1 › can set a default server on web ────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/session.spec.ts:4:1 › can open an existing session and type into the prompt ─── @opencode-ai/app:test:e2e:local: [chromium] › e2e/settings-providers.spec.ts:4:1 › smoke providers settings opens provider selector @opencode-ai/app:test:e2e:local: [chromium] › e2e/settings.spec.ts:4:1 › smoke settings dialog opens, switches tabs, closes ───── @opencode-ai/app:test:e2e:local: [chromium] › e2e/sidebar-session-links.spec.ts:30:1 › sidebar session links navigate to the selected session @opencode-ai/app:test:e2e:local: [chromium] › e2e/sidebar.spec.ts:4:1 › sidebar can be collapsed and expanded ─────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/terminal-init.spec.ts:4:1 › smoke terminal mounts and can create a second tab ─ @opencode-ai/app:test:e2e:local: [chromium] › e2e/terminal.spec.ts:4:1 › terminal panel can be toggled ────────────────────────── @opencode-ai/app:test:e2e:local: [chromium] › e2e/titlebar-history.spec.ts:4:1 › titlebar back/forward navigates between sessions @opencode-ai/app:test:e2e:local: 1 skipped @opencode-ai/app:test:e2e:local: error: script "test:e2e" exited with code 1 @opencode-ai/app:test:e2e:local: error: script "test:e2e:local" exited with code 1 Tasks: 1 successful, 2 total Cached: 1 cached, 2 total Time: 4.103s Failed: @opencode-ai/app#test:e2e:local instead of direct script execution
yindo added the pull-request label 2026-02-16 18:18:32 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#13697