From 739d98262ea2a14d4cd4ca08a17dc91bce267d0e Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 15 Sep 2026 14:09:43 +0200 Subject: 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. --- TODO.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 TODO.md (limited to 'TODO.md') 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 ` 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. -- cgit v1.2.3