Problem
cmd_pull copies snapshot.json to snapshot.prev.json on every completed pull. cmd_whisper diffs the two and deletes prev. When a pull lands while an earlier pull's delta is still unread, the second pull overwrites prev with the intermediate snapshot and the first delta is gone.
The head agent hits this on the PostToolUse gh issue * lane, which forces a pull: a gh issue command right after a prompt-lane pull loses the prompt-lane delta. The prompt lane is mostly safe because it returns early inside GH_TASKS_TTL.
Found while fixing #551, where a subagent's forced pull consumed the head agent's delta. That case is closed by the agent_id guard; this one remains for the head agent alone.
Fix shape
Keep prev when it already exists and has not been whispered, so the delta accumulates from the last read snapshot. Or fold the unread delta forward at pull time. Either way the test in tests/gh-tasks-test.sh section 4 gains a case: two pulls, one whisper, both deltas reported.
Owner and reopen condition
Owner: repo maintainer. Reopens on the first observed lost opened #n in a head-agent transcript after #551 lands.
Problem
cmd_pullcopiessnapshot.jsontosnapshot.prev.jsonon every completed pull.cmd_whisperdiffs the two and deletesprev. When a pull lands while an earlier pull's delta is still unread, the second pull overwritesprevwith the intermediate snapshot and the first delta is gone.The head agent hits this on the PostToolUse
gh issue *lane, which forces a pull: agh issuecommand right after a prompt-lane pull loses the prompt-lane delta. The prompt lane is mostly safe because it returns early insideGH_TASKS_TTL.Found while fixing #551, where a subagent's forced pull consumed the head agent's delta. That case is closed by the agent_id guard; this one remains for the head agent alone.
Fix shape
Keep
prevwhen it already exists and has not been whispered, so the delta accumulates from the last read snapshot. Or fold the unread delta forward at pull time. Either way the test intests/gh-tasks-test.shsection 4 gains a case: two pulls, one whisper, both deltas reported.Owner and reopen condition
Owner: repo maintainer. Reopens on the first observed lost
opened #nin a head-agent transcript after #551 lands.