@bobfrankston/rmfmail 1.1.132 → 1.1.133
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/npmchanges.md
CHANGED
|
@@ -376,3 +376,25 @@ on first run. Swap the dynamic import to node:sqlite's DatabaseSync, and
|
|
|
376
376
|
move the WAL setting from .pragma() (better-sqlite3-specific) to
|
|
377
377
|
.exec("PRAGMA …") (works on both).
|
|
378
378
|
|
|
379
|
+
## v1.1.132 — 2026-05-24
|
|
380
|
+
|
|
381
|
+
feat: multi-level undo, viewer fate-sharing, ★ filter + ★ bulk-flag
|
|
382
|
+
|
|
383
|
+
- Multi-level undo (Ctrl+Z). Replaces single-slot lastDeleted / lastMoved
|
|
384
|
+
with a LIFO undoStack. Each user-driven destructive action (delete,
|
|
385
|
+
move, bulk-flag) pushes a typed UndoOp; Ctrl+Z pops and reverses via
|
|
386
|
+
existing service IPC. Bounded at 50 entries, 10 min per-entry TTL,
|
|
387
|
+
checked at pop time. No redo (undoing an undo isn't itself undoable).
|
|
388
|
+
- Viewer/list fate-sharing: when loadMessages produces an empty result OR
|
|
389
|
+
the focused row's message isn't in the freshly-loaded set (filter
|
|
390
|
+
toggle, sync drop, navigation), clearViewer() runs so the preview pane
|
|
391
|
+
doesn't keep showing a stale message that the list says doesn't exist.
|
|
392
|
+
- Search-bar ★ filter button (id=btn-filter-flagged). Mirrors the
|
|
393
|
+
buried-in-View-menu opt-flagged checkbox so the flagged-only filter is
|
|
394
|
+
reachable in one click. Pressed/active state via .active CSS marker.
|
|
395
|
+
- Toolbar ★ bulk-flag button (id=btn-tb-flag) next to trash/spam.
|
|
396
|
+
Operates on the message-list selection (falls back to viewer focus when
|
|
397
|
+
empty). Smart toggle: if any selected row is unflagged → flag all;
|
|
398
|
+
if all flagged → unflag all. Pushes a single undo entry capturing each
|
|
399
|
+
row's prior state so Ctrl+Z restores the exact mix.
|
|
400
|
+
|
package/package.json
CHANGED
package/.commitmsg
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
feat: multi-level undo, viewer fate-sharing, ★ filter + ★ bulk-flag
|
|
2
|
-
|
|
3
|
-
- Multi-level undo (Ctrl+Z). Replaces single-slot lastDeleted / lastMoved
|
|
4
|
-
with a LIFO undoStack. Each user-driven destructive action (delete,
|
|
5
|
-
move, bulk-flag) pushes a typed UndoOp; Ctrl+Z pops and reverses via
|
|
6
|
-
existing service IPC. Bounded at 50 entries, 10 min per-entry TTL,
|
|
7
|
-
checked at pop time. No redo (undoing an undo isn't itself undoable).
|
|
8
|
-
- Viewer/list fate-sharing: when loadMessages produces an empty result OR
|
|
9
|
-
the focused row's message isn't in the freshly-loaded set (filter
|
|
10
|
-
toggle, sync drop, navigation), clearViewer() runs so the preview pane
|
|
11
|
-
doesn't keep showing a stale message that the list says doesn't exist.
|
|
12
|
-
- Search-bar ★ filter button (id=btn-filter-flagged). Mirrors the
|
|
13
|
-
buried-in-View-menu opt-flagged checkbox so the flagged-only filter is
|
|
14
|
-
reachable in one click. Pressed/active state via .active CSS marker.
|
|
15
|
-
- Toolbar ★ bulk-flag button (id=btn-tb-flag) next to trash/spam.
|
|
16
|
-
Operates on the message-list selection (falls back to viewer focus when
|
|
17
|
-
empty). Smart toggle: if any selected row is unflagged → flag all;
|
|
18
|
-
if all flagged → unflag all. Pushes a single undo entry capturing each
|
|
19
|
-
row's prior state so Ctrl+Z restores the exact mix.
|