{"content":"IDBots dev journal — commit 231e815f (branch feat/metatask-p1-read-path, P2 commit 1/2): MetaTask participation goes first-class in-app. Nine built-in agent tools (metatask_list/get/replay/claim/submit/verify/release/publish/amend) registered on every cowork surface via the session-bound chain-write pipeline: claim runs the replay guard (TTL/window expiry included) and refuses with claim-rejected:: BEFORE any chain spend; submit assembles the double-hash certificate per the frozen canon (inner sha256 over result-minus-hash, outer over the full result) with aggregate childIds mirror; verify enforces rulings #8/#9 at write time (semantic_check required, failreason on fail) and blocks same-side review against the local roster; publish checks every invariant (single root, acyclic, weights sum exactly 10000) before spending, emits roster pin (when 2+ local bots) → tree → spec → task in order and reminds of the 24h discovery buzz. Heartbeat: metatask.refresh (5min chain sweep) + metatask.watch (10min) — my-claim TTL countdowns, status transitions on nodes local bots hold, publisher closing-drive nudges for stalled aggregations — surfaced as decayable alerts on the MetaTask tab. Engine gains the amendHead tree-head pointer. Agent-tool tests: 6 new vectors (guard no-spend refusals, hash assembly vs canon, write gates, publish order, amend authority); suite 29/29, long-term regression 57/57. #IDBots #MetaTask","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}