Skip to content

feat: improve browser reliability and recording#37

Merged
kitlangton merged 10 commits into
mainfrom
feat/chrome-web-store-beta
Jul 22, 2026
Merged

feat: improve browser reliability and recording#37
kitlangton merged 10 commits into
mainfrom
feat/chrome-web-store-beta

Conversation

@kitlangton

Copy link
Copy Markdown
Collaborator

What

Merge the Browser Control work that accumulated on the Chrome Web Store branch after PR #32 was merged. This improves CDP client isolation, session and form helpers, recording, extension reconnect reliability, packaged diagnostics, and process cleanup. It also retains the two OpenCode Jr human-handoff workflow scripts.

Before / After

Before: post-merge work remained stranded on the already-merged feature branch. Focus-based form fallbacks could trigger browser integrations and wedge a tab, MV3 worker suspension could leave the extension without its reconnect alarm or socket heartbeat, recording buffered capture ownership less cleanly, and packaged Doctor checks could compare against the source manifest instead of the shipped extension.

After: the accumulated work is reviewable as one integration PR. Form fallbacks preserve focus while retaining controlled-input and iframe semantics; the extension repairs its alarm and keeps open sockets active; recording streams framed captures; Doctor checks the bundled manifest; managed relay and process paths are hardened.

How

  • Scope CDP target visibility and routing per client.
  • Improve session selection, form helpers, and snapshot ergonomics.
  • Stream framed tab captures and simplify recording ownership.
  • Share child-process termination behavior.
  • Preserve focus in fillInput and fillInputs, with controlled-input and iframe smoke coverage.
  • Repair MV3 reconnect alarms, add socket heartbeats, fix package-manager MCP relay startup, and compare Doctor against the shipped extension manifest.
  • Retain OpenCode Jr signup and developer-onboarding handoff scripts without embedding credentials.

Scope

This PR merges the accumulated implementation work but does not publish a new npm release. The user-facing fixes include Changesets for the next release.

Testing

  • pnpm run ci
  • 47 test files, 421 tests
  • TypeScript typecheck
  • CLI and extension builds
  • Extension package assembly
  • SMOKE_CASE=execute-fill-helpers pnpm smoke against the real extension-backed browser, including a delayed controlled field, iframe-local locator, shadow-root selector, and zero focus events

Flow

sequenceDiagram
  participant Agent
  participant Relay
  participant Extension
  participant Browser
  Agent->>Relay: execute helpers / recording
  Relay->>Extension: scoped CDP traffic
  Extension->>Browser: attach and control target
  Extension-->>Relay: heartbeat and target events
  Relay-->>Agent: result, diagnostics, artifacts
Loading

…-beta

# ------------------------ >8 ------------------------
# Do not modify or remove the line above.
# Everything below it will be ignored.
#
# Conflicts:
#	AGENTS.md
#	docs/CHROME_WEB_STORE.md
#	extension/src/background.ts
#	src/doctor.ts
#	src/protocol.ts
#	src/relay-helpers.ts
#	src/relay.ts
#	test/doctor.test.ts
#	test/extension-rpc.test.ts
#	test/http-api.test.ts
#	test/protocol.test.ts
#	test/relay-extension-handshake.test.ts
#	test/relay-helpers.test.ts
#	test/relay-schema.test.ts
#	test/relay-session-persistence.test.ts
#	test/relay-visibility-prune.test.ts
@kitlangton
kitlangton merged commit 05b068d into main Jul 22, 2026
1 check passed
@kitlangton
kitlangton deleted the feat/chrome-web-store-beta branch July 22, 2026 19:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant