Repository navigation
feat: add private Agent Browser takeover - #189
Conversation
- Restore browser takeover lifecycle and route coverage - Clean up failed and expired browser streams - Reject malformed takeover redemption tokens
QueryPlanner
left a comment
There was a problem hiding this comment.
I found one blocking correctness issue in the takeover lifecycle. CI is green, but the current tests explicitly encode the problematic behavior: a WebSocket disconnect or upstream connection failure is treated the same as the user clicking Done. That can resume the agent with a false success signal before authentication is complete. I’d fix that before merging.
- Cover client and server protocol rejection branches - Cover origin normalization and stream filtering - Keep CI coverage at 100 percent
- Merge the latest main changes into the browser takeover branch - Keep privacy checks and remove obsolete browser skill files - Update sandbox image docs and clarify takeover completion status
- Normalize URLs with an explicit default port before origin checks - Reject invalid hosts and ports in the public URL - Cover default ports, nondefault ports, and IPv6 origins
QueryPlanner
left a comment
There was a problem hiding this comment.
Reviewed at a61d12b. The branch now includes current main, GitHub reports it mergeable, and both required workflows pass. I found no remaining code blockers after fixing the disconnect completion behavior and default-port origin normalization. Local format, lint, type checks, full tests (2,332 passed, 1 skipped, 100% coverage), compileall, and diff checks pass. The disposable-account Telegram/OpenSandbox smoke test remains unchecked in the PR body and should be completed in the configured deployment environment.
What
Add a private, one-time Agent Browser takeover flow for sensitive human login steps in Telegram.
Why
Let the authenticated Telegram user enter passwords, OTPs, or CAPTCHA responses directly in the existing session browser without exposing those values to the model or ADK history.
How
start_browser_takeoveronly for the private Telegram root agent.Tests
uv run ruff format --checkuv run ruff check --output-format=githubuv run mypy .uv run pytest --cov=src --cov-report=xml --cov-report=term-missing(2,332 passed, 1 skipped, 100% coverage)uv run python -m compileall -q srcgit diff --checkRelated Issues