Skip to content

Conversation

@34f2aww
Copy link
Owner

@34f2aww 34f2aww commented Jan 28, 2026

Conflicts in: src/daemon.ts. OpenCode will resolve these conflicts automatically.

pkiv and others added 30 commits January 21, 2026 17:49
* Add Browserbase support for remote browser over CDP

When BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID env vars are set,
connect to a Browserbase session via CDP instead of launching a local browser.

* Update URLs to browserbase repo

* Add Browserbase support for remote browser over CDP

When BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID env vars are set,
connect to a Browserbase session via CDP instead of launching a local browser.

* Update link to Browserbase Dashboard in README

* bump browserbase sdk to latest version

* remove sdk as a dep

* change name back to vercel labs

* added try catch blocks, functions to close session

* revert package names

* remove extra if statement

---------

Co-authored-by: Kylejeong2 <kylejeong21@gmail.com>
…s#138)

* feat: add Browser Use cloud browser
  integration

* feat: enhance Browser Use integration with provider flag support

- Updated README to reflect new usage instructions for enabling Browser Use with the `-p` flag.
- Modified CLI to parse and handle the `-p` flag for specifying the provider.
- Implemented logic in the main application to launch with the specified cloud provider.
- Adjusted BrowserManager to connect to Browser Use based on the provider flag or environment variable.
- Updated types and protocol schemas to include provider information.

* feat: add validation for mutually exclusive CLI options

- Implemented checks to prevent the use of both --cdp and --provider flags simultaneously.
- Added validation to ensure --extension cannot be used with the --provider flag.
- Enhanced error handling to provide clear feedback in both JSON and console output formats.
Previously, the --cdp flag only accepted a port number and connected via
http://localhost:{port}. This made it impossible to connect to remote
browser services like Kernel, Browserless, etc. that provide WebSocket URLs.

The --cdp flag now accepts either:
- A port number (e.g., 9222) for local connections
- A full WebSocket URL (e.g., wss://...) for remote browser services

Changes:
- Added cdpUrl field to LaunchCommand type
- Updated protocol validation to accept URL format with scheme validation
- Modified connectViaCDP to detect and handle both formats
- Handle numeric strings for JSON serialization edge cases
- Updated CLI to send cdpUrl or cdpPort based on input format
- Updated README with examples for remote connections

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…ration support. (vercel-labs#35)

* feat: add browser launch args, user-agent, and proxy configuration support

* fix: User Agent env need added

* fix: command pass error

---------

Co-authored-by: Chris Tate <chris@ctate.dev>
* add missing flag

* clean up tests
The copy-native.js script was looking for 'agent-browser' but on Windows
the compiled binary is 'agent-browser.exe', causing the copy to fail.

Co-authored-by: jiazhuangai <jiazhuangai@example.com>
Co-authored-by: Claude <noreply@anthropic.com>
…labs#180)

* fix: use ~/.agent-browser for socket files instead of TMPDIR

This fixes issue vercel-labs#163 where different TMPDIR values (common with
tmux/screen/VSCode/IntelliJ) caused the CLI and daemon to use
different socket paths.

Socket directory priority:
1. AGENT_BROWSER_SOCKET_DIR (explicit override)
2. $XDG_RUNTIME_DIR/agent-browser (Linux standard)
3. ~/.agent-browser (fallback, like Docker Desktop)

Both CLI (Rust) and daemon (Node.js) now use the same logic.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: session list now looks in correct socket directory

- Make get_socket_dir() public in connection.rs
- Update session list to use get_socket_dir() instead of temp_dir()
- Update pid file pattern from agent-browser-{session}.pid to {session}.pid
- Add tmpdir fallback to daemon.ts when homedir is unavailable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: add unit tests for socket directory resolution

Add comprehensive tests for get_socket_dir/getSocketDir to verify:
- AGENT_BROWSER_SOCKET_DIR takes priority
- Empty strings are ignored (fixes Rust/TypeScript consistency)
- XDG_RUNTIME_DIR fallback works correctly
- Home directory fallback when env vars unset

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…ercel-labs#181)

Document the recommended way to install the agent-browser skill using the /plugin marketplace commands introduced in PR vercel-labs#106.
* Add --profile flag for persistent browser profiles

Adds support for persistent browser profiles that preserve cookies,
localStorage, and login sessions across browser restarts.

Changes:
- Add --profile <path> CLI flag (flags.rs)
- Add AGENT_BROWSER_PROFILE environment variable support
- Add profile field to LaunchCommand type (types.ts)
- Use launchPersistentContext when profile is specified (browser.ts)
- Update help text and README with documentation

Usage:
  agent-browser --profile ~/.myapp-profile open myapp.com

This enables AI agents to maintain authenticated sessions across
browser restarts without re-authenticating each time.

* Expand tilde in profile path to home directory

* fix: add missing profile field to test Flags struct

---------

Co-authored-by: Chris Tate <chris@ctate.dev>
* fix: support WebSocket URLs in connect command

* address feedback
* feat: add download and waitfordownload CLI commands

Add CLI support for the existing download functionality in the daemon:

- `download <selector> <path>`: Click an element to trigger download
  and save to specified path
- `wait --download [path] [--timeout ms]`: Wait for any download to
  complete, optionally save to path with configurable timeout

Includes comprehensive unit tests and help documentation.

* fix: download command ref support and output message

- Fix handleDownload to use browser.getLocator() for ref selector support
- Fix CLI output to show "Downloaded to" instead of "Screenshot saved"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Chris Tate <chris@ctate.dev>
…#141)

* fix(screenshot): support refs and improve error messages

* fix(cli): support selector argument in screenshot command

* Fix CSS class selectors being treated as file paths

* fix(test): update screenshot test assertions

---------

Co-authored-by: Chris Tate <chris@ctate.dev>
vercel-labs#157)

* feat(skills): Add hierarchical structure with references and templates

Adds modular documentation and executable templates to the agent-browser skill
for better AI agent consumption and progressive disclosure.

## Added

### References (deep-dive documentation)
- `references/snapshot-refs.md` - Ref lifecycle, invalidation, troubleshooting
- `references/session-management.md` - Parallel sessions, state persistence
- `references/authentication.md` - Login flows, OAuth, 2FA patterns
- `references/video-recording.md` - Recording for debugging/docs
- `references/proxy-support.md` - Proxy configuration, geo-testing

### Templates (ready-to-use workflows)
- `templates/form-automation.sh` - Form filling with validation
- `templates/authenticated-session.sh` - Login once, reuse state
- `templates/capture-workflow.sh` - Content extraction with screenshots

## Modified
- `SKILL.md` - Added reference tables linking to new documentation

## Benefits
- Progressive disclosure: Load overview first, deep dives on demand
- Reduced context: Smaller chunks for better LLM token efficiency
- Ready workflows: Copy-paste templates for common patterns

* fix(templates): Make authenticated-session.sh runnable out-of-box

Addresses review feedback: login actions were commented but verification
wasn't, causing script to fail when run as-is.

New approach:
- DISCOVERY MODE runs first (shows form structure)
- LOGIN FLOW section is fully commented as a unit
- User runs once to see refs, then customizes

┌─────────────────────────────────────────────────────────────┐
│ LOGIN FORM STRUCTURE                                        │
├─────────────────────────────────────────────────────────────┤
│ @e1 [input type="email"]                                    │
│ @e2 [input type="password"]                                 │
│ @e3 [button] "Sign In"                                      │
└─────────────────────────────────────────────────────────────┘
…ns (vercel-labs#109)

* Add files via upload

fix(cli): correct output messages for state load and path-based actions

* Add files via upload

* Update output.rs

* fix crlf

---------

Co-authored-by: Chris Tate <chris@ctate.dev>
* auto-release

* fixes

* fix secret name
* auto-release

* fixes

* fix secret name

* update provider flag
* auto-release

* fixes

* fix secret name

* update provider flag

* v0.7.0 changelog
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ercel-labs#221)

The download-artifact action creates directories named after each artifact.
When downloading to bin/, this caused conflicts because the artifact directory
names matched the binary names (e.g., bin/agent-browser-darwin-arm64/agent-browser-darwin-arm64).

Fix by downloading to artifacts/ first, then using find to move the binaries to bin/.
* fix: download artifacts to temp directory to avoid naming conflict

The download-artifact action creates directories named after each artifact.
When downloading to bin/, this caused conflicts because the artifact directory
names matched the binary names (e.g., bin/agent-browser-darwin-arm64/agent-browser-darwin-arm64).

Fix by downloading to artifacts/ first, then using find to move the binaries to bin/.

* fix docs
Fix native binary distribution in npm package. Binaries are now built
before publishing to npm, ensuring all platforms work on installation.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch 5 times, most recently from 9733928 to 32407ff Compare January 28, 2026 03:45
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: failure
Google Login Test (Headless + Chrome Channel): skipped

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch from 32407ff to 17c99f9 Compare January 28, 2026 03:51
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: failure
Google Login Test (Headless + Chrome Channel): skipped

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch from 17c99f9 to 01e650f Compare January 28, 2026 03:53
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: failure
Google Login Test (Headless + Chrome Channel): skipped

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch 2 times, most recently from 29b6a59 to 613de8b Compare January 28, 2026 04:03
@34f2aww
Copy link
Owner Author

34f2aww commented Jan 28, 2026

I examined the PR's rebase conflicts by checking git status, reviewing diff changes between main and feat/login-support branches, and identifying conflict markers in src/daemon.ts, package.json, cli/Cargo.toml, and CHANGELOG.md. I found the conflicts center on version bumps (0.8.3 vs 0.8.4), script updates (ci:version), and browser launch method changes (executeCommand vs browser.launch).

New%20session%20-%202026-01-28T04%3A03%3A50.807Z
opencode session  |  github run

@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: failure
Google Login Test (Headless + Chrome Channel): skipped

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch 2 times, most recently from 2ddee87 to a162818 Compare January 28, 2026 04:37
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: failure
Google Login Test (Headless + Chrome Channel): failure

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww
Copy link
Owner Author

34f2aww commented Jan 28, 2026

To https://github.com/34f2aww/agent-browser
! [rejected] auto-resolve-feat-login-support -> auto-resolve-feat-login-support (fetch first)
error: failed to push some refs to 'https://github.com/34f2aww/agent-browser'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

opencode session  |  github run

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch from 16584c1 to 99b9838 Compare January 28, 2026 05:01
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: failure
Google Login Test (Headless + Chrome Channel): failure

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch from c999c69 to 06d9721 Compare January 28, 2026 05:04
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: failure
Google Login Test (Headless + Chrome Channel): failure

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch from 73e9e0d to d995493 Compare January 28, 2026 05:08
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: success
Google Login Test (Headless + Chrome Channel): failure

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww force-pushed the auto-resolve-feat-login-support branch from 7ecc600 to f45a64f Compare January 28, 2026 05:20
@github-actions
Copy link

Conflict Resolution Verification ❌ FAILED

Build: success
Google Login Test (Headless + Chrome Channel): failure

Verification failed. Please review the logs and test manually in both headless and headed modes.

Test Details
  • Built TypeScript and native CLI successfully
  • Tested Google login flow in headless mode with AGENT_BROWSER_CHANNEL=chrome
  • Verified email input navigates to password page
  • ⚠️ Manual verification required: Test in headed mode locally to ensure compatibility

Local verification command:

AGENT_BROWSER_CHANNEL=chrome agent-browser launch
# Then test Google login manually

@34f2aww 34f2aww merged commit 7279680 into feat/login-support Jan 28, 2026
@34f2aww 34f2aww deleted the auto-resolve-feat-login-support branch January 28, 2026 05:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflict-resolution Auto conflict resolution PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.