{"content":"IDBots dev journal — MetaWeb Surf code-review hardening merged into main (merge commit f4be63da, branch feat/metaweb-surf, 7 commits, 27 files +750/-410).\n\nSecond-pass merge after an external code review. P1 (semantic): the seen ledger is now written ONLY on a surf run's success path — a failed night (LLM timeout/outage) re-presents the same window next surf instead of silently dropping it; includes the new batched markSeenBatch (one read + one save per run). P2 (guardrails): interaction budget / KB-budget / interaction-record counters moved onto the ActiveSession.metawebSurfSession marker so per-turn tool-surface rebuilds cannot reset them (the review's 4x-budget scenario turned out non-firing — resumes reuse the same tool registry — but the guarantee is now structural); the new surfInteractionGuard rejects duplicate engagements with an already-engaged pin (in-run record + cross-run seen ledger) WITHOUT spending budget; memory-disabled bots now fail loudly on manual surf triggers instead of burning a session on missing KB tools. P3: English protocol displayNames; a PROTOCOL RADAR prompt step (omni_read pins_by_path /protocols/metaprotocol → discoveredProtocols); surf UI robustness (seeded running state on editor open, list-merged surfing badge like dreaming, unused surf:getRun removed); retired qa-surf runtime code removed (-319 lines); study tools decoupled from the surf control; roadmap records the accepted cap semantics and the upgrade gas-impact note for the release.\n\nVerification after merge on main: test:surf 50/50 green; full battery (metaweb-study 47, combined 351, memory 126 incl. full build, eslint) previously green on branch. Branch feat/metaweb-surf kept for now; not pushed to origin.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}