David Heinemeier Hansson and Claude Opus 5
ab57ad65fd
Make notification history the last ten notifications on disk
...
History was a pair of in-memory lists mirrored into notifications.json, split
into "pending" and "past" by a seen/unseen distinction no surface exposed,
capped at 100, deduped by an id that repeats across server generations, and
pruned by a 15-minute TTL. Replaying it showed five rows drawn from whichever
list happened to hold them.
Every toast already writes a file under ~/.local/state/omarchy/notifications
so it can survive a shell restart. That file is now the history record: when
the popup leaves the screen it moves into notifications/history instead of
being deleted, the newest ten are kept, and showHistory replays exactly what
is in there, including the toasts still on screen when it is asked for. A
notification DND silenced is written straight into the same directory, since
a toast that never showed is the one worth looking back at.
That leaves the models, notifications.json history payload, past pruning, and
the /tmp image cache that existed to keep century-old history thumbnails alive
with nothing to do, so they go.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-12 00:58:14 -07:00
..
2026-08-11 11:07:14 +02:00
2026-08-10 14:10:31 +02:00
2026-08-11 12:43:03 +02:00
2026-08-09 13:27:38 +02:00
2026-08-07 23:49:43 +02:00
2026-08-07 23:49:43 +02:00
2026-08-07 15:46:10 +02:00
2026-08-07 15:46:10 +02:00
2026-08-07 15:46:10 +02:00
2026-08-04 12:16:54 -05:00
2026-05-25 14:47:08 +02:00
2026-06-22 19:57:05 +02:00
2026-08-09 04:29:26 -07:00
2026-08-11 13:03:20 +02:00
2026-07-08 11:49:56 -07:00
2026-08-07 17:13:39 +02:00
2026-05-25 14:18:39 +02:00
2026-07-20 16:37:33 -07:00
2026-05-25 14:18:39 +02:00
2026-06-24 13:31:17 +02:00
2026-07-18 10:08:43 -07:00
2026-08-10 20:27:40 +02:00
2026-08-10 20:27:40 +02:00
2026-07-28 21:28:31 -07:00
2026-08-10 22:49:44 +02:00
2026-08-01 15:35:34 -05:00
2026-08-07 23:58:51 +02:00
2026-08-09 04:29:26 -07:00
2026-07-23 17:05:29 -07:00
2026-08-09 04:29:26 -07:00
2026-08-09 04:29:26 -07:00
2026-08-09 14:01:37 +02:00
2026-08-03 16:29:14 -05:00
2026-08-09 04:22:01 -07:00
2026-08-12 08:56:03 +02:00
2026-08-04 12:16:54 -05:00
2026-08-08 14:58:29 +02:00
2026-08-11 11:04:50 -04:00
2026-08-11 11:04:50 -04:00
2026-07-16 21:53:15 -07:00
2026-07-18 18:21:39 -07:00
2026-05-27 10:41:12 +02:00
2026-07-11 11:42:55 -07:00
2026-05-29 15:25:21 +02:00
2026-08-09 12:30:47 +02:00
2026-06-04 18:38:25 -04:00
2026-08-09 21:54:21 +02:00
2026-07-19 17:36:34 -07:00
2026-08-09 13:57:36 +02:00
2026-08-07 23:59:50 +02:00
2026-08-11 18:34:07 +02:00
2026-08-11 13:20:23 +02:00
2026-08-11 13:03:20 +02:00
2026-07-17 10:20:08 -07:00
2026-07-29 14:49:55 -04:00
2026-08-11 13:26:24 +02:00
2026-08-11 11:29:35 +02:00
2026-07-16 21:19:28 -07:00
2026-05-29 15:59:13 +02:00
2026-07-23 21:03:43 -07:00
2026-07-21 15:25:49 -07:00
2026-06-22 17:32:56 +02:00
2026-08-09 04:29:26 -07:00
2026-06-23 16:22:27 +02:00
2026-08-11 13:05:11 +02:00
2026-07-22 16:10:45 -07:00
2026-07-29 17:15:27 -04:00
2026-08-11 11:29:35 +02:00
2026-06-28 20:46:23 -04:00
2026-07-25 12:35:17 -07:00
2026-08-11 23:35:40 -07:00
2026-08-10 05:58:56 -07:00
2026-07-26 19:19:33 -07:00
2026-08-09 04:29:26 -07:00
2026-08-09 04:29:26 -07:00
2026-08-11 11:29:35 +02:00
2026-06-04 18:38:25 -04:00
2026-08-09 04:29:26 -07:00
2026-06-25 06:55:11 -04:00
2026-08-07 14:52:44 +02:00
2026-08-07 02:38:06 -07:00
2026-08-09 21:54:21 +02:00
2026-08-11 14:16:32 -07:00
2026-06-12 13:49:46 -04:00
2026-07-20 11:07:44 -07:00
2026-08-11 13:58:47 +02:00
2026-08-11 13:26:24 +02:00
2026-08-11 18:25:44 +02:00
2026-08-05 08:30:12 -05:00
2026-08-11 14:16:32 -07:00
2026-07-23 20:37:25 -07:00
2026-06-21 12:31:06 +02:00
2026-07-31 17:18:42 -04:00
2026-08-07 12:50:04 +02:00
2026-08-07 17:32:36 +02:00
2026-07-21 15:26:20 -07:00
2026-08-09 12:30:47 +02:00
2026-08-12 00:58:14 -07:00
2026-07-18 21:49:47 -07:00
2026-07-24 16:48:14 -07:00
2026-06-24 13:40:16 +02:00
2026-07-18 12:31:03 -07:00
2026-07-29 21:34:47 -04:00
2026-08-01 13:13:39 -05:00
2026-07-29 22:39:55 -04:00
2026-08-09 04:29:26 -07:00
2026-07-29 18:11:32 -04:00
2026-07-29 21:34:47 -04:00
2026-07-29 19:45:43 -07:00
2026-08-09 04:29:26 -07:00
2026-07-23 13:51:07 -07:00
2026-06-29 10:49:43 -05:00
2026-08-01 15:36:34 -05:00
2026-07-19 09:33:23 -07:00
2026-08-09 21:54:21 +02:00
2026-06-22 18:30:16 +02:00
2026-05-25 14:18:39 +02:00
2026-08-11 11:29:35 +02:00
2026-07-23 15:04:22 -07:00
2026-08-09 19:38:46 +02:00
2026-07-26 15:27:06 -07:00
2026-08-09 04:29:26 -07:00
2026-08-10 03:21:08 -07:00
2026-07-27 15:32:56 -07:00
2026-07-19 17:36:34 -07:00
2026-08-01 15:38:55 -05:00
2026-08-10 03:31:17 -07:00
2026-07-29 23:21:45 -04:00
2026-08-10 14:14:57 -07:00
2026-07-26 19:19:33 -07:00
2026-08-07 18:44:37 +02:00
2026-08-09 19:15:21 +02:00
2026-07-22 17:31:14 -07:00
2026-08-01 15:38:55 -05:00
2026-08-07 23:43:49 +02:00
2026-08-09 12:30:47 +02:00
2026-08-01 15:44:07 -05:00
2026-05-29 14:28:03 +02:00
2026-08-11 12:31:52 +02:00
2026-08-03 16:52:02 -05:00
2026-08-09 04:29:26 -07:00
2026-08-09 04:29:26 -07:00
2026-05-27 13:48:40 +02:00
2026-07-27 15:50:28 -07:00
2026-07-23 15:28:32 -07:00
2026-07-23 15:28:32 -07:00
2026-08-10 03:45:49 -07:00
2026-07-27 15:50:28 -07:00
2026-08-11 14:16:32 -07:00
2026-06-04 18:38:25 -04:00
2026-06-04 18:38:25 -04:00
2026-07-29 20:04:49 -07:00
2026-08-11 22:47:39 +02:00
2026-07-17 07:59:20 -07:00
2026-07-29 09:15:53 -07:00
2026-08-09 12:30:47 +02:00
2026-08-05 17:43:14 +02:00
2026-08-01 12:53:30 -07:00
2026-08-07 12:50:04 +02:00
2026-07-29 19:26:26 -07:00
2026-07-26 14:37:22 -07:00