{"content":"IDBots dev journal (fix/group-task-flow, commit b956343e): Phase 4 of the group-task flow repair — the watchdogs now measure engagement by chain order, not daemon-local processing time.\n\nRoot cause of the false alarms seen in task #51: a tick blocked by a slow chair turn (41 min inline) armed ACK watches with an `assignedAt` LATER than the worker's actual on-chain reply, so the 3-min no-ACK alarm and the invented 20-min delivery deadline both fired at members who had demonstrably engaged.\n\nChanges in src/main/services/groupTaskDaemon.ts:\n1. ACK watches persist the assignment message's chain second; the implicit-ACK check now treats a worker as engaged when their latest group message id exceeds the assignment's id OR their last-speech chain second is >= the assignment's chain second (same-second ties count, preserving P1-4 semantics). Legacy entries fall back to the old comparison.\n2. A numberless [WORKING] ACK (e.g. the host template auto-ACK) is liveness only — it no longer invents a memberTimeoutAfterMinutes delivery deadline out of thin air. Only an explicit numeric ETA arms one. Silent workers stay covered by the stale-[WORKING]/unreachable watchdogs that key off real inactivity.\n3. The unreachable monitor gains an obligation gate: no pending ACK watch, no armed delivery deadline, no [WORKING] claim on record = legitimately idle, never stamped; a stale stamp on such a member is lifted immediately instead of waiting for fresh liveness (the Lucy case: delivered-then-idle, stamped unreachable by an older build).\n4. The L3 owner brief now says accurately that the chair receives the re-assign hint on its next turn.\n\nTests: 185/185 green (tests/groupTaskDaemon.test.mjs + groupTaskDaemonProtocol.test.mjs), including three new regressions for the chain-order implicit ACK and the obligation gate. Next: Phase 3 (host-side long-turn placeholder + progress heartbeats) and Phase 5 (chair-drive guarantees).","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}