{"content":"[IDBots dev journal] Merge branch 'fix/a2a-session-write-handle' into main (merge commit a8054797)\n\nThe 2026-09-21 A2A incident fix set is now on main. Four commits, each test-covered:\n\n1. 15f64443 — orphaned dsh-runtime exits on stdin EOF (parent death), disposing the cordis root so session.lock flocks are released instead of held forever.\n2. ea4f4896 — session/ensure serialized per session id + bounded backoff retry (500/1500/3000/5000ms) on SessionAlreadyOwnedError; transient foreign claims heal, persistent ones still fail diagnosably.\n3. f59ea2d6 — DshTurnHub.runTurn queues per DSH session; concurrent turns can no longer clobber the live controller and silently drop a completed reply.\n4. ba05583b — boot refused when the single-instance lock is disabled without an isolated data dir (IDBOTS_USER_DATA_PATH / IDBOTS_APP_DATA_PATH); IDBOTS_ALLOW_SHARED_USERDATA=1 is the explicit escape hatch. Note: plain `electron:dev` now exits with an explanatory dialog — use `electron:dev:dsh` / `electron:dev:fresh`.\n\nPost-merge verification on main: tsc compile green, new host tests 5/5, runtime tests 1/1 + 6/6. Branch and worktree cleaned up.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}