Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4420,9 +4420,12 @@ classification or repair before more work. The refresh action accepts stale
handles, returns candidate evidence, and supports `reject_only`,
`reuse_compatible`, `open_if_missing`, or `replace_duplicates` repair policies
using the current service session and optional `desiredUrl` hint.
`replace_duplicates` selects one compatible target and best-effort closes other
compatible live targets so repeated route-bound opens do not grow stale tab
sets. `service_remote_view_route_preflight`, HTTP
Compatible reuse requires canonical Service State custody for the same caller.
`open_if_missing` persists a canonical replacement when no caller-bound target
exists. `replace_duplicates` closes only compatible same-caller targets and
preserves foreign or unattributed peers. Structured refresh responses include
`duplicateCleanupAttempted`, `peerCleanupAttempted`, and nested
`duplicateTargetCleanup` evidence. `service_remote_view_route_preflight`, HTTP
`GET /api/service/remote-view/route-preflight`, MCP
`service_remote_view_route_preflight`, and `getServiceRemoteViewRoutePreflight()`
return a no-launch `fastPreflight` summary with component evidence for the
Expand Down
6 changes: 6 additions & 0 deletions RUNBOOK.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ Updated: 2026-10-06

## Current execution

### 2026-10-10 P207 caller-custody refresh

[P207](docs/dev/plans/0207-2026-10-10-tab-refresh-caller-custody.md) qualifies issue 175's bounded source repair. [PR 239](https://github.com/CochranResearchGroup/agent-browser/pull/239) owns canonical integration and supersedes the refresh implementation in PR 184. Distinct client subjects sharing one physical browser passed replacement persistence, compatible canonical reuse, caller-only duplicate cleanup and peer preservation. Fresh test process census was empty. Seven actual-function Rust fixtures, format, strict Clippy, client contracts, parity, docs links and the active planning audit passed.

Preserve the limits: the first browser fixture did not establish separate custody; the corrected baseline reproduced peer adoption. An optimized compile hit a 4 GiB cap, initial Clippy hit 2 GiB before a 4 GiB run passed, and the full CLI focused unit binary hit 4 GiB before tests ran. That unit lane is not passed; the bounded decision relies on selected actual-function fixtures and the reproduced public workflow. The unoptimized candidate was smoke-only. Production promotion and broader regression qualification remain separate. PR 191 is unchanged; reboot remains deferred. The policy-wiring checker also fails its unchanged baseline requirement for a direct policy 0047 link; policy loading is outside this repair. Private receipts retain the failed and passed attempts. Memory disposition: forbidden; no memory-write authorization.

### 2026-10-10 P228 acquisition closeout

P228 is CLOSED under issue 236. Consumer PR 237 and provider PR 348 are integrated. Installed synthetic acceptance reached twelve independent browser profiles across ten native desktops with wraparound. All task closures passed; fresh process readback found zero test browser residue. Exact recovery retired a stale failed production reservation while preserving the foreign development desktop. Reboot remains deferred. Human continuation, durable profile continuity and retention timing remain separate lifecycle checks.
Expand Down
2 changes: 1 addition & 1 deletion cli/src/mcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1503,7 +1503,7 @@ fn service_mcp_tools() -> Vec<Value> {
"repairPolicy": {
"type": "string",
"enum": ["reject_only", "reuse_compatible", "open_if_missing", "replace_duplicates"],
"description": "Repair policy for action=tab_handle_refresh."
"description": "Repair policy for action=tab_handle_refresh. Reuse and duplicate cleanup are limited to canonical targets owned by the same caller; responses include explicit duplicate and peer cleanup-attempt evidence."
},
"includeScreenshot": {
"type": "boolean",
Expand Down
292 changes: 240 additions & 52 deletions cli/src/native/browser_lifecycle.rs

Large diffs are not rendered by default.

Loading