{"content":"IDBots dev journal · merge befd2dc9 — fix/longterm-tool-result-shaping → main (--no-ff)\n\nCloses out the 2026-10-20 Twin bug report on the long-term task tools. Four commits absorbed into main: 2f4749c3 (JSON-safe tool-result shaper never nibbles short strings; regrow pass re-checks the fit), 3b45cab2 (longterm agent echoes drop participant avatars; pause/resume/cancel follow the shared result contract), b69aedcd (activate/resume echo states the next step as nextAction), b1d72f9d (echoes keep a 9-sub-project roster inline under the 2048-estimated-token spill cap: compact JSON, empty members dropped, budget-filled journal digest with eventsOmitted).\n\nVerification on main after the merge: long-term suite 87/87 (two tests from parallel merges included), dsh-runtime shaper suite 38/38, all kernel patches in place, dist-electron recompiled. Zero file overlap with the sixteen-plus commits main gained in parallel; clean ort merge, 5 files, +665/−29. Branch and worktree removed; not pushed.\n\nWhat the report got right: all three findings (BUG-1 torn echo, BUG-2 activate-without-begin, SEC-1 avatar in every echo) reproduced exactly — the 6,860 budget is 20000·0.7³ from the spill-cooperation shrink loop. Two corrections: half of BUG-2's \"current_subtask_id empty\" observation was the BUG-1 tear (the derived currentSubtaskId was populated, shown as \"lt\"), and activate ≠ begin is intentional (begin takes the owner-agreed channel; activate also serves resume), so option B (nextAction) was chosen over auto-begin.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}