Artem Bambalov
533caf8e4b
Detect and clean stale POLECAT_DONE messages ( #913 )
...
* fix(witness): detect and ignore stale POLECAT_DONE messages
Add timestamp validation to prevent witness from nuking newly spawned
polecat sessions when processing stale POLECAT_DONE messages from
previous sessions.
- Add isStalePolecatDone() to compare message timestamp vs session created time
- If message timestamp < session created time, message is stale and ignored
- Add unit tests for timestamp parsing and stale detection logic
Fixes #909
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
* feat(mail): add --stale flag to gt mail archive
Add ability to archive stale messages (sent before current session started).
This prevents old messages from cycling forever in patrol inbox.
Changes:
- Add --stale and --dry-run flags to gt mail archive
- Move stale detection helpers to internal/session/stale.go for reuse
- Add ParseAddress to parse mail addresses into AgentIdentity
- Add SessionCreatedAt to get tmux session start time
Usage:
gt mail archive --stale # Archive all stale messages
gt mail archive --stale --dry-run # Preview what would be archived
Co-Authored-By: GPT-5.2 Codex <noreply@openai.com >
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: GPT-5.2 Codex <noreply@openai.com >
2026-01-24 21:47:59 -08:00
..
2026-01-20 14:17:35 -08:00
2026-01-21 22:40:10 -08:00
2026-01-11 23:03:47 -08:00
2026-01-12 01:45:26 -08:00
2026-01-22 16:41:42 -08:00
2026-01-13 13:14:47 -08:00
2026-01-20 20:45:58 -08:00
2026-01-17 03:19:08 -08:00
2026-01-15 17:44:40 -08:00
2026-01-22 21:43:23 -08:00
2026-01-21 18:04:58 -08:00
2026-01-13 19:34:29 -08:00
2026-01-13 19:34:29 -08:00
2026-01-13 19:34:29 -08:00
2026-01-22 21:41:25 -08:00
2026-01-20 20:46:43 -08:00
2026-01-24 21:29:57 -08:00
2026-01-20 12:58:01 -08:00
2026-01-21 22:46:00 -08:00
2026-01-16 15:27:59 -08:00
2026-01-17 03:49:18 -08:00
2026-01-09 02:22:36 +13:00
2026-01-09 02:22:20 +13:00
2026-01-20 20:45:58 -08:00
2026-01-12 23:07:49 -08:00
2026-01-17 02:55:39 -08:00
2026-01-20 20:45:58 -08:00
2026-01-08 20:25:01 -08:00
2026-01-20 20:20:49 -08:00
2026-01-17 02:55:39 -08:00
2026-01-20 19:51:37 -08:00
2026-01-21 20:52:26 -08:00
2026-01-10 22:56:33 -08:00
2026-01-20 23:20:50 +01:00
2026-01-08 20:25:01 -08:00
2026-01-16 11:05:59 -08:00
2026-01-16 11:05:59 -08:00
2026-01-12 02:45:03 -08:00
2026-01-12 02:31:06 -08:00
2026-01-16 12:33:51 -08:00
2026-01-21 22:48:06 +07:00
2026-01-21 18:05:00 -08:00
2026-01-21 21:09:30 -08:00
2026-01-09 22:46:06 -08:00
2026-01-24 21:47:14 -08:00
2026-01-22 16:43:21 -08:00
2026-01-21 17:40:05 -08:00
2026-01-22 21:39:31 -08:00
2026-01-22 21:39:31 -08:00
2026-01-21 23:05:00 -08:00
2026-01-09 13:30:11 -08:00
2026-01-20 14:17:35 -08:00
2026-01-21 22:48:06 +07:00
2026-01-09 23:01:55 -08:00
2026-01-24 21:47:59 -08:00
2026-01-17 09:49:53 -08:00
2026-01-09 23:01:55 -08:00
2026-01-14 21:18:20 -08:00
2026-01-14 21:18:20 -08:00
2026-01-21 21:53:18 -08:00
2026-01-09 23:01:55 -08:00
2026-01-24 21:47:59 -08:00
2026-01-14 21:29:37 -08:00
2026-01-09 23:01:55 -08:00
2026-01-14 21:19:54 -08:00
2026-01-14 21:25:11 -08:00
2026-01-21 21:19:04 -08:00
2026-01-24 21:47:59 -08:00
2026-01-21 21:09:30 -08:00
2026-01-20 14:10:26 -08:00
2026-01-22 16:43:21 -08:00
2026-01-17 02:11:12 -08:00
2026-01-24 21:46:27 -08:00
2026-01-24 21:46:27 -08:00
2026-01-24 21:46:27 -08:00
2026-01-09 00:41:35 -08:00
2026-01-20 19:31:26 -08:00
2026-01-16 15:23:28 -08:00
2026-01-16 15:27:38 -08:00
2026-01-20 19:31:26 -08:00
2026-01-09 00:41:35 -08:00
2026-01-17 01:40:02 -08:00
2026-01-17 02:55:39 -08:00
2026-01-21 18:04:00 -08:00
2026-01-20 19:31:17 -08:00
2026-01-17 03:47:18 -08:00
2026-01-17 03:41:18 -08:00
2026-01-12 16:42:33 -08:00
2026-01-08 22:10:40 +13:00
2026-01-16 12:33:51 -08:00
2026-01-21 18:04:55 -08:00
2026-01-13 13:37:00 -08:00
2026-01-22 21:43:23 -08:00
2026-01-11 18:37:01 -08:00
2026-01-12 23:07:49 -08:00
2026-01-10 18:28:14 -08:00
2026-01-10 18:28:14 -08:00
2026-01-17 09:46:25 -08:00
2026-01-24 21:45:09 -08:00
2026-01-13 20:59:15 -08:00
2026-01-13 20:59:15 -08:00
2026-01-16 15:38:08 -08:00
2026-01-20 20:20:49 -08:00
2026-01-13 13:14:47 -08:00
2026-01-20 20:00:56 -08:00
2026-01-16 15:27:38 -08:00
2026-01-21 19:50:38 -08:00
2026-01-22 21:27:38 -08:00
2026-01-16 15:23:35 -08:00
2026-01-12 17:44:37 -08:00
2026-01-21 10:31:16 -08:00
2026-01-21 10:31:16 -08:00
2026-01-24 21:46:05 -08:00
2026-01-09 21:52:09 -08:00
2026-01-20 12:57:46 -08:00
2026-01-24 20:52:27 -08:00
2026-01-12 01:45:26 -08:00
2026-01-22 16:43:21 -08:00
2026-01-21 19:30:49 -08:00
2026-01-08 22:10:40 +13:00
2026-01-08 20:25:01 -08:00
2026-01-15 19:19:13 -08:00
2026-01-22 16:43:21 -08:00
2026-01-21 20:52:26 -08:00
2026-01-21 18:04:11 -08:00
2026-01-12 03:11:59 -08:00
2026-01-20 14:17:35 -08:00
2026-01-21 20:52:26 -08:00
2026-01-12 03:11:59 -08:00
2026-01-20 14:17:35 -08:00
2026-01-21 20:52:26 -08:00
2026-01-12 03:10:58 -08:00
2026-01-20 22:34:37 -08:00
2026-01-20 22:34:37 -08:00
2026-01-22 21:42:27 -08:00
2026-01-17 00:00:50 -08:00
2026-01-21 22:40:10 -08:00
2026-01-13 13:37:00 -08:00
2026-01-20 14:17:35 -08:00
2026-01-08 12:36:54 -05:00
2026-01-19 11:21:54 -08:00
2026-01-19 11:21:54 -08:00
2026-01-20 14:17:35 -08:00
2026-01-09 22:46:06 -08:00
2026-01-13 19:34:29 -08:00
2026-01-08 20:25:01 -08:00
2026-01-11 22:23:21 -08:00
2026-01-13 13:46:50 -08:00
2026-01-17 00:50:46 -08:00
2026-01-21 23:05:00 -08:00
2026-01-09 21:56:53 -08:00
2026-01-20 20:45:58 -08:00