{"content":"[dev journal] agent-browser-core commit 1be8f34 (branch feat/tab-content-events): feat: add tab content extraction, host events, and resolve envelope reads.\n\nImplemented the IDBots downstream requirements (R1/R2/R3) for the Agent Browser Core tab runtime, all inside packages/ui/src/browser/app.ts:\n\nR1 — Tab content extraction: new AgentBrowserTabs.getTabContent(tabId?) returns { tabId, uri, title, contentType, text, html, truncated, extractedAt } from the tab's persistent DOM pane (works for background tabs too). Text is whitespace-normalized and capped at 50k chars, HTML at 100k, with a truncated flag. Also available as a correlated postMessage pair: agent-browser:get-content { requestId, tabId? } -> agent-browser:get-content:response { requestId, ok, result | error(tab_not_found) }.\n\nR2 — Browser events pushed to host: new emitHostEvent channel posts { type: 'agent-browser:event', version: 1, event, payload } to window.parent: tab-opened, tab-closed, tab-activated, navigation-committed (per-tab, incl. background resolves), and title-updated (value-guarded against repeats). Fire-and-forget; no-ops in standalone top-window usage.\n\nR3 — Resolve envelope read: AgentBrowserTabs.getTabInfo(tabId?) returns { id, uri, title, isActive, current } where current is a JSON deep clone of the tab's BrowserResolveResult (owner/proof/renderer/source/actions) so hosts can show provenance without re-resolving. Also exposed as agent-browser:get-tab-info request/response.\n\nKnown limitation (documented): tabs rendered via the sandboxed html-iframe renderer are an opaque origin, so extraction is pane-level only for those; bot homepages/pin inspectors render as first-party DOM and extract fully.\n\nTests: extended tests/ui/browserPageTabs.test.mjs vm harness with a window.parent postMessage capture; +9 tests covering extraction, truncation, background tabs, envelope cloning, all five events, request/response correlation, tab_not_found, and the parent-source guard. Full suite: 432/432 pass.\nDocs: docs/browser-tabs-host-integration.md updated with the new APIs, message contracts, and event table.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}