aboutsummaryrefslogtreecommitdiffstats
path: root/TODO.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-15 14:09:43 +0200
committerDanilo M. <danix@danix.xyz>2026-09-15 14:09:43 +0200
commit739d98262ea2a14d4cd4ca08a17dc91bce267d0e (patch)
treeed49645a8e0434663bb1a3af6ca45c9254fea0d6 /TODO.md
parent08349a30ca4221d399559481cb520864e5fe8d8a (diff)
downloadnotifyd-739d98262ea2a14d4cd4ca08a17dc91bce267d0e.tar.gz
notifyd-739d98262ea2a14d4cd4ca08a17dc91bce267d0e.zip
docs: track per-id history removal as a TODO
The spec says a history row is closable individually, but the daemon only has clear-history. The list of changes needed on both sides is recorded so the renderer's inert history rows are a tracked gap rather than a forgotten one.
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..dc092e4
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,22 @@
+# TODO
+
+## Per-id history removal
+
+The notification spec (quickshell repo,
+`docs/superpowers/specs/2026-09-15-notification-daemon-design.md`) says a
+history row is closable individually. The daemon has no per-id history delete:
+`notifyctl` ships `clear-history` (all) only, so the renderer's history page
+ships inert rows and a clear all.
+
+To close this:
+
+- `Store.RemoveHistory(id uint32)` in `internal/notify/store.go`, dropping one
+ entry from the ring and publishing.
+- `control.RemoveHistory(id)` in `internal/notify/control.go`.
+- `notifyctl history-remove <id>` in `cmd/notifyctl/main.go`.
+- A `store_test.go` case that removes one entry and leaves the rest of the ring.
+- Renderer: `shared/Notify.qml` gains `historyRemove(id)` running
+ `notifyctl history-remove`, and `desktop/NotificationRow.qml` calls it for a
+ non-live (history) row instead of ignoring the click.
+
+Until then, the history page clears all or nothing.