fix: #21 Browser Use über den privaten Reverse Proxy anbieten #32
No reviewers
Labels
No labels
agent:done
agent:ready
agent:working
area/browser
area/cli
area/http
area/mcp
area/media
area/observability
area/proxy
area/security
area/testing
area/tunnel
priority/P0
priority/P1
priority/P2
type/chore
type/design
type/docs
type/epic
type/feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ai-tools/private-proxy-mcp!32
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/issue-21-browser-use-über-den-privaten-reverse-p"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Änderungen
browser_*-MCP-ToolsPrüfung
go vet ./...go test ./...Kurzfassung: Browser Use läuft ausschließlich auf dem privaten Proxy, wird dynamisch angeboten und ist durch Session-Isolation, Netzwerk-Policy, gepinnte Egress-Adressen und Ressourcenlimits abgesichert.
Ich prüfe Branch, Tests und die Abdeckung der Akzeptanzkriterien; fehlende, klar abgrenzbare Punkte ergänze ich mit separaten Commits.Die Tests benötigen einen isolierten Go-Cache, weil der globale Build-Cache außerhalb des Worktrees nicht lesbar ist; danach gleiche ich Implementierung und Sicherheitsgrenzen gegen die Issue ab.Die Umsetzung deckt Backend-Abstraktion, Capability-Handshake, isolierte Kontexte, Artefaktlimits und Tunnel-Abbruch bereits ab. Ich führe die Suite nun außerhalb der Netzwerk-Sandbox aus, da mehrere E2E-/SSRF-Tests lokale Listener benötigen.Keine offenen TODOs oder uncommitteten Änderungen gefunden. Die vollständige Suite ist grün; der reale Chromium-E2E-Test ist vorhanden, kann in dieser Umgebung aber ohne installiertes Chromium nicht gestartet werden. Ich pushe die vier thematischen Browser-Commits.PR_TITLE: feat(browser): provide isolated Chromium sessions through private proxy
PR_BODY:
go test ./...passes.Alles Implementiert
Closes #21
🚧 WIP pull request opened — linked to issue #21. Agent is working…
💭 Agent progress
Planning initial repository inspection
Ich prüfe zuerst Architektur, bestehende Tunnel-/Policy-Schnittstellen und den aktuellen Branchzustand. Danach implementiere ich ADR, Browser-Adapter und Tests in kleinen, jeweils gepushten Commits.
💭 Agent progress
Planning file inspection
💭 Agent progress
Evaluating chromedp dependency choice
Der bestehende Tunnel transportiert bereits typisierte HTTP- und Media-Operationen über eine gemeinsame Request-Pipeline und kündigt optionale Fähigkeiten beim Handshake an. Ich erweitere dieses Muster um einen bibliotheksneutralen Browser-Requestvertrag; die Chromium-Steuerung bleibt ausschließlich im
private-proxy-Prozess.💭 Agent progress
Requesting executeRequest details
💭 Agent progress
Designing chromedp integration with tests
💭 Agent progress
Deciding to download v0.15.1
💭 Agent progress
Rerunning escalated process automatically
💭 Agent progress
Inspecting Go module compatibility
💭 Agent progress
Evaluating Go module versioning options
💭 Agent progress
Updating to Go 1.25 and v0.14.2 dependencies
💭 Agent progress
Planning CDP network interception implementation
Designing browser session and artifact handling
Extending artifact read interface to browser executor
Designing browser artifact handling and snapshot methods
Defining safe click and wait strategies with concurrency handling
Refining chromedp browser context handling
Designing session lifecycle and memory limits
Planning documentation in repo via ADR
Planning ADR documentation approach
Die ADR entscheidet sich für
chromedpals MVP: ein Go-Prozess, ein nicht exponierter CDP-Kanal und inkognitoartige BrowserContexts pro Session. Playwright bleibt als spätere Adapteroption; die Tool-Verträge werden deshalb unabhängig vonchromedpdefiniert. Die Version wird aufv0.14.2gepinnt, damit die bestehende Go-1.25-Baseline erhalten bleibt.💭 Agent progress
Removing v15 dependencies and restoring v14
Running test environment after go mod tidy
💭 Agent progress
Committing and pushing ADR changes
Switching to direct exec_command usage
Requesting escalation for git add
💭 Agent progress
Implementing initial types and runner
💭 Agent progress
Adding missing context import
💭 Agent progress
Planning chromedp integration
💭 Agent progress
Planning explicit cdproto version downgrade
💭 Agent progress
Planning chromedp screenshot implementation
Implementing URL policy and session error handling
Implementing session context with timeout and cleanup
Designing page snapshot and interaction handling
💭 Agent progress
Refactoring Response for byte chunks and EOF
💭 Agent progress
Downgrading dependencies for compilation
💭 Agent progress
Planning escalation rerun
💭 Agent progress
Verifying Go version requirement
Planning test runner with fake Chromium
💭 Agent progress
Modifying browser client interface for routing
💭 Agent progress
Verifying import order formatting
💭 Agent progress
Defining browser interface and validating tool inputs
Adding browser artifact handler and route
💭 Agent progress
Adding strict input handling for artifact routes
💭 Agent progress
Adding browser execution config and validation
Verifying cross-platform compilation
💭 Agent progress
Verifying session lifetime and request limits
💭 Agent progress
Adding separate BrowserArtifactBaseURL field
💭 Agent progress
Reviewing browser timeout configuration
💭 Agent progress
Planning unit tests for fake backend
Der Browservertrag ist nun durch den Tunnel geführt:
browserwird nur nach erfolgreichem Capability-Handshake veröffentlicht, alle Operationen laufen auf dem privaten Host, und Tunnelverlust ruft synchronAbortSessionsauf. Screenshots werden als kurzlebige, opaque Artefakte gestreamt; Seiteninhalt und Formulardaten bleiben aus Logs und Tunnel-Metadaten heraus.Inspecting dynamic mocks in MCP tests
💭 Agent progress
Adding browser executor stub and direct tests
Refactoring request policy and planning E2E tests
💭 Agent progress
Implementing browserexec tests with fake resolver
💭 Agent progress
Extending media source capabilities and refining tests
💭 Agent progress
Inspecting privateproxy routing tests
💭 Agent progress
Implementing fake browser with atomic counter
💭 Agent progress
Adding browser validation to config tests
💭 Agent progress
Adding string import and append usage
💭 Agent progress
Planning compile tests
💭 Agent progress
Inspecting default max session lifetime discrepancy
💭 Agent progress
Adjusting session lifetime conditions
💭 Agent progress
Running browser-only tests without network
💭 Agent progress
Investigating unexpected URI type causing test failure
💭 Agent progress
Correcting media handler base change
💭 Agent progress
Fixing flaky map iteration test
💭 Agent progress
Adding dynamic capability tests
💭 Agent progress
Planning secure fetch interception policy
Designing local proxy for network enforcement
Implementing popup blocking via target monitoring
Refactoring browser context and target handling
💭 Agent progress
Identifying target struct
💭 Agent progress
Adding listener with session locking
💭 Agent progress
Adjusting timeout handling logic
💭 Agent progress
Inspecting media block removal effect
💭 Agent progress
Confirming successful test compilation
💭 Agent progress
Configuring client write deadlines
💭 Agent progress
Committing backend and transport code
💭 Agent progress
Planning reproducible Chromium test setup
Evaluating Docker-based Chromium pinning
Der Kern ist als
feat(browser)gepusht. Als letzten Teil ergänze ich jetzt den realen, opt-in Chromium-End-to-End-Test sowie Betreiber-Dokumentation für gepinnte Browser-Artefakte, Sandbox-/Containergrenzen, Limits und die gemeinsame SSRF-Policy.💭 Agent progress
Planning manifest checksum strategy
Drafting browser deployment docs and E2E test plan
Planning session ID verification tests
Assessing session management improvements
Handling root restriction in CI tests
💭 Agent progress
Adding download behavior test
💭 Agent progress
Inspecting ClientSession naming conflict
💭 Agent progress
Fixing channel blocking on request limit
💭 Agent progress
Planning hard memory limits implementation
Assessing artifact delivery and authentication
Checking patch application failure
💭 Agent progress
Planning separate patch without protocol
💭 Agent progress
Adding protocol capability section
💭 Agent progress
Adding header and allowed tokens to protocol docs
💭 Agent progress
Adding request header and payload note
💭 Agent progress
Adding dynamic browser testing capabilities
Extending media test with browser stub
💭 Agent progress
Identifying artifact cleanup security flaw
Planning artifact limits and cleanup config
💭 Agent progress
Refactoring file write locking and handle generation
💭 Agent progress
Patching atomic lock
💭 Agent progress
Setting max artifacts limit in test config
Checking gofmt formatting
💭 Agent progress
Fixing session initialization bug
Planning websocket blocking via Network API
💭 Agent progress
Extending network blocking to WebSockets and data URLs
💭 Agent progress
Planning policy validation tests
Preparing full test run
Configuring environment for go mod tidy
💭 Agent progress
Planning escalation network cache
💭 Agent progress
Running full test suite
💭 Agent progress
Planning to run go vet and review diff
Die vollständige Testsuite ist grün. Der neue reale Browser-E2E-Test ist standardmäßig opt-in und prüft bei bereitgestelltem gepinntem Chromium JavaScript-Interaktion, Reverse-Tunnel-Quelladresse und Cookie-Isolation; die normalen Tests decken Capability-Lifecycle, Tunnelabbruch, Artefaktgrenzen sowie SSRF für Navigation, Redirects und Subresources ab.
💭 Agent progress
Adding MaxArtifacts docs note
Noticing line wrap issue
💭 Agent progress
Planning race condition tests for browser package
💭 Agent progress
Verifying Windows test compilation and CLI error handling
Analyzing SSRF risks with DNS and browser resolution
Planning exported DialContext method for proxy
Refactoring dial method and implementing local proxy setup
Designing local proxy lifecycle and request validation
Implementing exported DialContext with validation
Designing egressProxy with buffered tunneling
Implementing HTTP proxy request handling with streaming
Beim Abschlussreview ist eine DNS-Rebinding-Lücke zwischen CDP-Prüfung und Chromiums eigener DNS-Auflösung aufgefallen. Ich schließe sie noch vor dem finalen Commit mit einem ausschließlich loopback-gebundenen Egress-Proxy, der jede tatsächliche HTTP-/CONNECT-Verbindung über die aufgelösten, policy-geprüften IPs aufbaut; CDP bleibt die zusätzliche Request-Ebene.
💭 Agent progress
Refining TCP connection handling
Patching TCP connection close behavior
💭 Agent progress
Implementing egress proxy and runner management
💭 Agent progress
Adding nil guard for Close method
💭 Agent progress
Planning DialContext policy tests
💭 Agent progress
Planning proxy test implementation
Designing detailed proxy connection tests
💭 Agent progress
Implementing loopback redirect server for testing
💭 Agent progress
Correcting http.Redirect usage
💭 Agent progress
Planning proxy authentication implementation
Enhancing proxy scheme validation
💭 Agent progress
Updating ADR and docs for proxy enforcement
💭 Agent progress
Running tests on new proxy
💭 Agent progress
Noticing parallel test execution anomaly
💭 Agent progress
Updating test for correct 403 response
💭 Agent progress
Planning egress proxy refactor and graceful shutdown
💭 Agent progress
Adding HTTPS CONNECT proxy test
💭 Agent progress
Commenting InsecureSkipVerify warning
💭 Agent progress
Planning final checks with go vet
💭 Agent progress
Preparing incremental commit by inspecting diffs
💭 Agent progress
Assessing http.Transport CONNECT handling
Confirming dial uses IP not host
💭 Agent progress
Reviewing branch cleanliness and commit status
🔍 Verifying implementation (attempt 1/3)
💭 Agent progress
Planning update completion
Preparing concise final PR comment with test summary
Änderungen
browser_*-MCP-ToolsPrüfung
go vet ./...go test ./...Kurzfassung: Browser Use läuft ausschließlich auf dem privaten Proxy, wird dynamisch angeboten und ist durch Session-Isolation, Netzwerk-Policy, gepinnte Egress-Adressen und Ressourcenlimits abgesichert.
Planning short PR with inspection
Ich prüfe Branch, Tests und die Abdeckung der Akzeptanzkriterien; fehlende, klar abgrenzbare Punkte ergänze ich mit separaten Commits.
💭 Agent progress
Reviewing code and test documentation configuration
Planning rerun with GOCACHE tmp
Die Tests benötigen einen isolierten Go-Cache, weil der globale Build-Cache außerhalb des Worktrees nicht lesbar ist; danach gleiche ich Implementierung und Sicherheitsgrenzen gegen die Issue ab.
💭 Agent progress
Planning file examination
💭 Agent progress
Inspecting private proxy configuration
💭 Agent progress
Analyzing browser proxy network behavior
Reviewing ADR documentation method
Die Umsetzung deckt Backend-Abstraktion, Capability-Handshake, isolierte Kontexte, Artefaktlimits und Tunnel-Abbruch bereits ab. Ich führe die Suite nun außerhalb der Netzwerk-Sandbox aus, da mehrere E2E-/SSRF-Tests lokale Listener benötigen.
💭 Agent progress
Verifying git status and branch remote
💭 Agent progress
Planning comprehensive TODO search
💭 Agent progress
Assessing E2E test environment limitations
💭 Agent progress
Preparing for approved git push
Keine offenen TODOs oder uncommitteten Änderungen gefunden. Die vollständige Suite ist grün; der reale Chromium-E2E-Test ist vorhanden, kann in dieser Umgebung aber ohne installiertes Chromium nicht gestartet werden. Ich pushe die vier thematischen Browser-Commits.
✅ Verify OK — agent reported Alles Implementiert
WIP: #21 Browser Use über den privaten Reverse Proxy anbietento fix: #21 Browser Use über den privaten Reverse Proxy anbieten✅ forge agent finished implementation
fix(browser): pin policy-approved egress addressesAgent output (tail)
🟢 CI green (attempt 1/3)
https://repository.hildebrandt.io/ai-tools/private-proxy-mcp/actions/runs/33
📊 Agent usage (
codex/ ACP)💭 Agent progress
Confirming full implementation with exact PR details
go test ./...passes.