Files
paseo/docs/opencode-global-event-baseline.md
Mohamed Boudra 20385bdb50 Add opt-in browser tools for desktop tabs
* Add opt-in browser tools for desktop tabs

Adds the daemon opt-in, desktop tab routing, MCP tools, and real browser automation surfaces for Paseo desktop browser tabs.

* Fix browser tools CI expectations

* Address browser tools review findings

* Restrict browser file automation paths

* Fix browser upload test on Windows

* Harden browser navigation inputs

* Make browser tools create usable tabs

* Update browser MCP empty-state test

* Fail browser tab creation when registration times out

* Fix browser screenshots for agents

* Hide disabled browser tools from agents

* Address browser tools architecture review

* Replace browser tools review tests

* Wrap browser tab registration errors

* Mock Expo Router in app unit tests

* Handle invalid browser automation requests

* Return browser failure on desktop disconnect

* Update browser disconnect websocket test

* Relax browser timeout polling test

* Handle invalid browser responses

* Return browser failure when send fails

* Remove local diagnostics and fixture paths

* Fix dev service home fallback

* Use worktree home for dev services

* Use managed daemon in desktop dev

* fix(browser): keep agent tabs addressable

Track agent-active browser targets separately from human-focused tabs and keep resident webviews alive for automation. Browser tool visibility now comes from registration while the broker reports disabled execution.

* refactor(browser): register tools through catalog

Move browser tool registration onto the shared Paseo tool catalog so the MCP server remains only the transport adapter.

* fix(settings): translate browser tools host error
2026-06-30 22:33:18 +02:00

2.6 KiB

OpenCode Global Event Verification

Date: 2026-05-11

Objective

Replace the OpenCode provider's per-directory /event stream with OpenCode's /global/event stream and remove the EOF polling recovery path that was added for the /event regression.

Environment

  • opencode --version: 1.14.46
  • which opencode: opencode
  • node --version: v22.20.0
  • npm --version: 10.9.3

Each OpenCode test file was run independently with:

/opt/homebrew/bin/timeout 420s npx vitest run <file> --maxWorkers=1

Baseline

Before the provider change, the OpenCode matrix had 16 passing files and 4 failing files:

  • packages/cli/tests/e2e/opencode-invalid-model.test.ts: Vitest reports "No test suite found in file".
  • packages/server/src/server/agent/providers/opencode-agent.test.ts: plan mode blocks edits while build mode can write files did not observe a completed tool call.
  • packages/server/src/server/daemon-e2e/opencode-initial-prompt-wait.real.e2e.test.ts: brittle unavailable-model assertion received an auth failure from the upstream API.
  • packages/server/src/server/daemon-e2e/opencode-send-interrupt.real.e2e.test.ts: timed out waiting for an interrupted sleep tool call, even though the recent bash tool call status was failed.

Post-Change Result

After switching to /global/event, removing polling recovery, and replacing the brittle initial-prompt model case with opencode/big-pickle, the OpenCode matrix had 18 passing files and 2 baseline-equivalent failing files:

  • packages/cli/tests/e2e/opencode-invalid-model.test.ts: unchanged; Vitest still reports "No test suite found in file".
  • packages/server/src/server/daemon-e2e/opencode-send-interrupt.real.e2e.test.ts: unchanged; still times out after the interrupted sleep tool call is already marked failed.

The previously failing provider unit file now passes, and packages/server/src/server/daemon-e2e/opencode-initial-prompt-wait.real.e2e.test.ts passes with opencode/big-pickle.

One live reasoning-dedup matrix run returned no reasoning content; an immediate targeted rerun passed. This appears model-output dependent rather than related to the event-stream change.

Focused Verification

  • npm run typecheck
  • npm run lint
  • git diff --check
  • npx vitest run packages/server/src/server/agent/providers/opencode-agent.test.ts --maxWorkers=1
  • npx vitest run packages/server/src/server/agent/providers/opencode-agent.error-handling.real.e2e.test.ts --maxWorkers=1
  • npx vitest run packages/server/src/server/daemon-e2e/opencode-initial-prompt-wait.real.e2e.test.ts --maxWorkers=1