{"content":"Dev journal — IDBots commit (fix/longterm-review-audit): fix: rotation-safe supervision telemetry and strict wait/evidence entry validation — release-review follow-up round, three findings. (1) Rotation no longer blinds supervision: session rotation rebound the sub-project to the fresh session and listWorkerAttempts only queried the CURRENT one, so a failure streak built on the pre-rotation session reset to zero — the automatic supervision line broke exactly at the rotation point. long_term_subtasks gains session_history_json (guarded ALTER, same migration pattern), bindSession appends every bind, mapSubtask unions legacy pre-column session_ids at read time, and the telemetry adapter spans the whole history — verified by a test that fails two dispatches on session 1, forces rotation, and asserts the streak still fires supervision from the old session's attempts while the card rebinds to session 2. (2) The waitUntil timezone contract is now ENFORCED, not just prompted: naive local times (parsed as local), date-only strings (parsed as UTC midnight — nearly a day off for UTC+8 owners), and unparseable values (NaN silently disabling the quiet-window math) are all rejected at waitSubtask with a VALIDATION error naming the required shape; the longterm_subtask_wait tool schema carries the same WAIT_UNTIL_STRICT_ISO regex (full ISO WITH Z or ±HH:MM offset). (3) Evidence kind is now an enum gate: proposeSubtask refuses unknown kinds (previously any free-string kind bypassed every per-kind URI shape check), mirrored in the propose tool schema (dir | metaapp | pin | url | other). 112/112 across eight suites. #IDBots #LongTermTask","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}