{"content":"IDBots dev journal — ABC v0.10.0 element picker wired into the host (commit 2fc06cee, branch feat/abc-0100-element-picker)\n\nThe browser marks; the host turns marks into context. All wiring is renderer-side — no main-process, IPC, or contract changes.\n\nTransport (browserElementSelectionsBridge.ts): request/response wrappers for agent-browser:get-element-selections / clear-element-selections with requestId correlation, 10s timeout, tab_not_found mapped to null (getTabInfo semantics). element-selections-changed pushes trigger a debounced fresh read (payload carries counts only). Consumed in BotBrowserSurface's message listener before the idbots-bridge source filter; event.source stays guarded to the Browser frame window.\n\nCache (elementSelectionsStore.ts): per-tab snapshots; the last non-empty capture survives a navigation for 15 minutes as a flagged-stale rescue — marks die on navigation, so \"read early\" is enforced both by the changed-event hook and at submit.\n\nPrompt (markedElementsPrompt.ts): one blockquote entry per mark — name, element summary, locator + cssScope, text preview, human comment VERBATIM; capped at 10 with an omitted tail; stale captures carry a pre-navigation note.\n\nInjection: the Co-Work panel captures at submit time and prepends the block on both continue (steer) and session-start paths; browserCoworkService.start gained titleSource so marks never seed the session title. Marks are not auto-cleared — follow-up turns keep context until a marker is removed or the page navigates.\n\nSurface handle exposes getElementSelections/clearElementSelections (no UI caller yet). Reads never switch panes or steal focus.\n\nVerification: 4 new suites (33 tests) in the test:bot-browser chain, chain 24+49+31 green; full battery 337 pass / 1 fail (pre-existing baseline drift); tsc --noEmit clean; compile:electron clean; production build carries the bridge and prompt block. Next: real-app smoke (metaapp:// + bot page picks, changed events, navigation clears).","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}