Repository navigation
feat(research): share page reads and web search across environments - #560
Conversation
|
What: Current Fork Stack Model failure is reproduced: ServerBrowser.test.ts and ServerBrowser.ts each have two exclusive feature owners after final-main reconciliation. Actual command on d531: task Node24 Requirements and who asked: User requires complete current fork/CI gate before final-main merge. |
Independent cumulative review: FAIL (1 required fix)What: The exact head Reviewer: Claude Opus 5.5 (Claude Code), high effort. Read-only: no source writes, no live provider/URL calls, no installed-app or config changes. RequiredR1. Duplicate feature owner breaks the fork stack gate (
Optional (not blocking)
Cleared in the cumulative scope
Unverified at review timeCI on d531 was still running: Test, Test Server 1/3/4/6 and Test Web pending. Lint, Build and Typecheck, Release Smoke, and Test Server 2/5/7/8 passed. Live runs keep their 8bf/900a identities; none was rerun here. The R1 fix touches inventory metadata only, so no live proof needs to be redone. Elon recordRequirements and who asked: User/parent: final cumulative Opus 5.5 HIGH review of exact PR560 head against #423/#440-#447 acceptance, accepted boundaries, and main's #520/#551 integration. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
What: The sole required final-review finding is fixed on PR #560 headfc9e3f7d7d4cff023fb3524d8d5f0dc2d05dcc8f; the actual complete fork-model command now passes locally. R1 full findings: #560 (comment) . R1 found no other supported blocker in the cumulative diff and explicitly accepted reusing unchanged live proof for this metadata-only repair. Delta is exactly docs/fork-features.md,docs/map.md,scripts/fork-upstream-edits.txt; apps/packages diff fromd531 exits0. Optional mapPR560ref removed under current repository rule for a final PR closing its primary Issue. Tree6024e3592eb10ec2fcf0c3d1b1793a6a71688360, base mainc8b69c643bfe2fb031ffcd096376a6cd35a9dac8. Faithful RED: actual node scripts/fork-features.mjs check ond531 exit1 expected exactly one feature owner,found2. GREEN onfc9: taskNode24 bash scripts/fork-check.sh --upstream upstream exit0, including fork-features OK(54features), fork-check OK; current pinnedMermaid3/3PASS. Earlier19fork-maintenance tests were fixture checks and did not cover the real registry; that distinction is corrected in PRbody. Runtime317PASS/6browser-prerequisite skips and scoped types are reused unchanged-source feedback, not complete CI. R2 reviewpendingstatus56733317647 authenticatedlukemaj; taskchromeria423-final560-opus-high-r2-fc9e3f7d7d. No package version bump per repo. Requirements and who asked: User requires final Opus HIGH/current CI before preauthorized merge; R1 requires metadata reconciliation. |
Independent cumulative review R2: no verdict, base moved (no blocker found on the reviewed candidate)What: On head Reviewer: Claude Opus 5.5 (Claude Code), high effort. Read-only: no source writes, fetch, checkout or worktree; no provider, URL, browser or installed-state calls. RequiredNone on the reviewed candidate. R1 fix (confirmed)
Cumulative seams (rechecked on fc against c8b)I reread these seams myself rather than taking over the R1 verdict. They match R1's cleared findings:
Reused from R1 without re-execution (assumptions unchanged because the bytes are identical): the TinyFish zero-cost and URL revalidation, the hosted memory-only continuation limits, the session snapshot privacy, the search quota, in-flight and health handling, and auth settings write scope. Base movement (why no verdict)
Optional (not blocking)
Unverified
Elon recordRequirements and who asked: User/parent: final cumulative Opus 5.5 HIGH R2 of the exact PR560 head, confirming the R1 fix and checking for new integration risk before the preauthorized merge. |
fc9e3f7 to
15ae7ff
Compare
Independent cumulative review R3: PASS (no required finding)What: Head Reviewer: Claude Opus 5.5 (Claude Code), high effort. Read-only: no source writes, checkout or fetch; no provider, URL, browser or installed-state calls. RequiredNone. Rebase identity (checked)
#556 semantic integration (checked)#556 changes 12 files. This PR touches only two of them:
Cumulative seams (reused from R1/R2 because the bytes are identical)Reused without re-execution: the Optional (not blocking)
Unverified
Elon recordRequirements and who asked: User/parent: a fresh final cumulative Opus 5.5 HIGH R3 of exact head |
* feat(research): share page reads through a linked environment * docs(research): link the shared-host pull request * fix(research): preserve shared host contracts across MCP clients * test(research): cover bounded queues through the shared host * fix(research): preserve shared subpage and render contracts * test(research): prove forwarded subpage count and pending limits
* feat(research): add zero-charge TinyFish fallback * fix(research): close TinyFish response scopes * docs(research): link TinyFish component PR * fix(research): preserve pages and bound hosted fallback * fix(research): avoid caching hosted deadline refusals
* feat(research): add shared locale-aware web_search * docs(research): link web_search component PR * test(research): await queued search completion before checking time * fix(research): map locales to SearXNG language syntax
* feat(research): read selected existing browser sessions privately * docs(research): link the session reader component PR * fix(fork): register session reader upstream edits
…535) * fix(research): classify a JavaScript-only instruction shell as thin Navigation and headings pushed the public enable-JavaScript page past 80 characters, so web_read reported it ok and never rendered. The existing thin status now covers that instruction when it is the whole remainder. * docs(map): point agent web research at the JavaScript-shell fix PR #535 does not close #423, so the open corrective PR is a secondary map ref. * fix(research): judge a JavaScript shell from its lines Compacted text let a heading pattern swallow the hours and price paragraphs, and the same pattern threw on a 4 MiB plain-text heading run. The shell check now accepts only short pages whose lines are headings, links, or one instruction.
15ae7ff to
1226879
Compare
Independent cumulative review R4: PASS (no required finding)What: Head Reviewer: Claude Opus 5.5 (Claude Code), high effort. Read-only: no source writes, checkout or worktree; no provider, URL, browser or installed-state calls. RequiredNone. Rebase identity (checked)
#558 outside grants (checked against research)
#559 thread tool allowlists (checked)
Reused (identical bytes, not re-inspected beyond the seams above)The R1 to R3 conclusions on: the Parent proof (inspected, not re-executed)
Unverified
Optional
Elon recordRequirements and who asked: User/parent: a fresh final cumulative Opus 5.5 HIGH R4 of exact head |
#556 added ThreadManagementService.readRunRecovery to every thread read, but this file's box Layer.mock lacked it. The unimplemented method died on each read there, the laptop follower retried it as transient, and each remote-follow test waited out the 120 s test timeout, hanging the Test Server shard that runs the file. Fixes #562 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Independent cumulative review R5: PASS (no required finding)What: Head Reviewer: Claude Opus 5.5 (Claude Code), high effort. This is a new task, independent of the repair author. It was read-only: no checkout, source edit, worktree, provider, URL, browser or installed-state calls. RequiredNone. Identity (checked live)
New: the #562 fixture line (inspected)
Repair proof (inspected, not re-executed)
Reused from R1 to R4 (identical bytes, not re-inspected)R4's rebase identity, the #558 outside-grant check (it runs before Unverified
Optional
Elon recordRequirements and who asked: User/parent: a fresh final cumulative Opus 5.5 HIGH review of exact |
Agent work on this PREstimated cost at least $8.09 · 165 responses · 33 sessions · 19.6 h wall time
Flags: 1 human correction · 12 large tool outputs · 15 repeated commands · 53 repeated reads · 62 repeated skill loads · 2 tests edited after a failure · 2 unpriced responses Details: snapshot, prices, coverage, counters
Token counters by model (native counter semantics; never added across semantics):
Generated tokens (reasoning and other output are disjoint; other output includes code, tool calls and replies):
Usage by work phase (this task's own responses):
Recorded activity by phase (observations, not separate token bills):
Selected rates (USD per million tokens). These rates value the report at the selected schedule date; they do not establish historical prices or subscription spending.
Other output and reasoning are priced without double counting inclusive native output. Missing rates remain unknown. Local measurement from native records; usage totals are not billing. Updated in place by |
|
What: Cost reporting for #560 remains explicitly PARTIAL after the verified Cavallo/Rocky rollout. The published snapshot No post-rollout Observer sync, install, publish command or other Observer tool ran on bestia after the user's hold. This aggregate-only qualification is beside the original generated report, not a rewritten renderer or an invented combined cost. Private JSON/native records stay private. The Mac operation itself is live-verified on exact5898397, with Cavallo receipts and Rocky receipts; bestia deployment and measurement remain held. Requirements and who asked: User requires an honest readable PR-scoped report, explicitly accepts partialcost for now, and holds all bestia Observer work pending stable hardware. |
What changed: Agents can share page reads through a linked research host, continue full-text snapshots, search by locale/site, and explicitly opt into an existing browser session.
Why: Separate harness fetches repeated work and lost shared cache, provenance, continuation and provider-health information.
So what: This cumulative train targets main; merge is preauthorized after current full CI and independent Claude Opus 5.5 HIGH review, followed by separate staging with no Chromeria restart tonight.
Fixes #423
Fixes #444
Fixes #445
Fixes #446
Fixes #447
Fixes #562
Part of #443; retention/pruning stays OPEN before activation under #486.
Result and scope
web_readroutes to the configured linked host and returns immutable cache identity, provenance, bounded output and continuation. An unavailable configured host returns a typed error without silently fetching locally. Thin public pages use isolated rendering then a pinned zero-charge TinyFish fallback. Hosted continuation is memory-only for 15 minutes, 32 entries and 64 MiB; hosted bodies never enter persistent PageCache.web_searchmerges providers with locale/site controls and visible engine/provider health. Session reads require explicit opt-in and a selected persistent profile/tab; their text never enters public PageCache.Browser identity #460, extraction performance #538, retention policy #486 and Observer Muse support toolboxmd/agent-observer#127 stay separate. No tool-denial/pacing policy, service change or deployment is included.
Reviewed components
#449/#440 core, #454/#441 subpages and #453/#442 rendering already merged into main (c1d3960/def07e92/f27d8ee1 respectively). Five remaining components are replayed linearly onto current main e760e6a, including #556 durable Prism recovery, #558 scoped outside-agent grants and #559 thread tool allowlists. Reconciliation preserves browserCookieMirror and webResearch exports and both fork inventories; range-diff otherwise shows identical patches. No merge commit or version bump.
Combined acceptance and limits
Canonical combined proof includes the original 20-case table, fixed 25-query outcomes, exact source identities, counts and failure history. Old live runs retain 8bf/900a identities, not this rebased final commit.
Current proof and remaining gates
Current head656b4c620c759df006bf1b57d11f0f52cb3cf046, tree10ad15a3cca5f0c2fee51d9bd54087c36092a6e9, base main e760e6a (#558/#559). One additive allowlist conflict preserved both new main auth paths and research's PreviewAutomation path; the existing Browser ownership correction remains. Range-diff changes otherwise concern map/allowlist context, with research runtime patches unchanged. Current Node24 proof:10files/141testsPASS covering research, session reads, outside grants, OAuth, tool allowlist and recovery/contracts; scoped server types exit0; actual complete fork model PASS55features. Historical Opus5.5 HIGH R4 PASS on122687 is followed by exact-current Opus HIGH R5 PASS, no required findings, authenticated review/independent success56737660886. CI39332329579 remains pending. A one-line test-fixture completion for #562 is the only change since R4; details below.
R1 cumulative review found only duplicate Browser inventory ownership. Fixed: main's Chrome-login feature remains the single owner; research uses shared dependencies, duplicate allowlist entries removed. Optional closing-PR560 map ref removed. R2 confirmed the fix/no new required finding, but posted error because main advanced during review; no stale PASS is reused. R3 passed on15ae/base3c2, then main advanced again with #558/#559. That PASS is historical; fresh R4 reviews the new current head and both newer base interactions.
Reused unchanged research feedback:16files/317passed/6pinned-browser-prerequisite skips,19fork-maintenance fixture tests and server types on e227; Mermaid3PASS onfc9. The19fixtures did NOT cover the actual registry failure on e227/d531; the direct complete fork model is now separately executed and green. Live observations retain8bf/900a source identities; current focused integration checks and full CI cover later base changes. No complete-current merge-gate claim from affected checks alone.
Website impact: none outside shipped user documentation; affected guidance is updated in docs/user/remote-access.md and fork feature docs. No visible UI change requiring screenshots. Package versions stay upstream-owned under AGENTS.md. Private transcripts, credentials and raw page bodies are not committed/uploaded.
CI stall repair (#562)
The main #556 thread-read change introduced a required
readRunRecoverycall, but the RemoteDelegation test's box mock lacked it. Effect's missing-method failure was retried by the follower, so multiple tests each exhausted120seconds and the server shard exceeded10minutes. Both final-PR attempts and subsequent main runs showed the same file stall; the last pre-#556 main run passed. The repair supplies{ state: "none" }in that test mock, matching the normal no-recovery fixture. No runtime, assertion or timeout change.Faithful unchanged-copy RED timed out; the single-line variant passed39/39 in56.09s. Final656b exact source passes39/39 in57.52s, server typecheck exit0, targeted format PASS. Targeted lint did not execute because local worktree cannot resolve
@oxlint/plugins; full current CI owns lint, with no exception claimed. Canonical repair handoff. R5 passed; complete CI, including the transfer artifact, is still required; no third blind retry or timeout increase.Elon record
Requirements and who asked: Maintainer #423/#440–#447 outcome, reviewed components, latest final Opus 5.5 HIGH instruction, preauthorized merge after gates, no app restart tonight.
Deleted: Repeated per-harness fetches, silent local fallback, unauthorized persistent hosted bodies, forced built-in denial, new-login work and unrelated Observer/identity/GC scope.
Bottleneck: Full CI after the diagnosed one-line test-fixture repair and passing exact-head R5; agreed live observations and boundary decisions remain recorded with explicit limits.
Checked myself: Remote/GitHub merge targets and heads, component reviews, range-diff/reconciliation, focused Node24 feedback, immutable manifests and actual native/MCP outputs, captured process cleanup, user decisions and separately owned follow-ups.
Implementation: GPT-6.1-Sol/Codex. Component reviews: Claude Opus 5.5/Claude Code. Coordinator: GPT-6.1-Sol/Codex. Final cumulative Claude Opus 5.5 HIGH R5 PASS on656b4c620c759df006bf1b57d11f0f52cb3cf046; historical R4 PASS is not reused as the current gate.