mirror of
https://github.com/grub-basket/SP.git
synced 2026-07-22 07:46:27 +00:00
6.5 KiB
6.5 KiB
0.140.8 — Per-folder archive/trash subfolders, encryption cleanup, smart re-encrypt, recurring reminders, and a deep review pass
A large release spanning several feature phases since 0.133.0: archives and encrypted trash move to per-folder subfolders, the encryption model is simplified and hardened, a "smart re-encrypt" workflow keeps previously-locked notes protected, reminders gain recurrence, and a multi-wave correctness/security review fixes a long tail of bugs.
Archive & aggregate views (0.134.x)
- 0.134.0 — Aggregate command wording clarified; archives now default to plaintext (opt-in encryption) and the encryption settings are aligned to match.
- 0.134.1 — Aggregate view command names simplified to "Open aggregated X view" (no parenthetical).
- 0.134.2 — "Open aggregated Encrypted notes view" gains the noun so it's findable by searching "notes"/"contents".
- 0.134.3 — The three separate encryption warnings are merged into one callout, and the danger buttons are made quieter/less alarming.
- 0.134.4 — Archive bug fixes B1–B6: default-folder mismatch, a stale copy left behind, encryption-state desync with the store, and zombie-entry pruning.
Encryption cleanup (0.135.x)
- 0.135.0 — Encryption cleanup: key backups are parked (not destroyed) on removal, the "Lock now" and idle auto-lock controls are dropped, and the Sharing UI is hidden.
- 0.135.1 — Keychain no-overwrite policy: any existing keychain entry is parked before a new write, so an old key is never silently clobbered.
Per-folder archive subfolders (0.136.0)
- Reserve per-folder
archive/andtrash/subfolder names. - "Move to archive" now targets the current folder's own
archive/subfolder. - The Archived view scans each folder's
archive/subfolder; un-archiving restores a note to its parent folder. - Imported originals are filed under
archive/_imported/<date>/. - A one-time migration moves legacy archives into the new layout and removes the old global archive settings/UI.
- Migration hardening (from live testing): the home note is preserved, the sweep is suppressed where it shouldn't run, home-note detection reads from disk, moves are verified, a recovery journal is kept, and failed moves are retried.
Per-folder encryption fixes & trash (0.136.1 – 0.137.x)
- 0.136.1 — Per-folder toggle fixes, keychain cycle-unlock, and a loading state on the Remove button.
- 0.136.2 — A Restore button on locked rows in the aggregated Archived view.
- 0.137.0 — Phase 2: per-folder encrypted trash (
X/trash/) with a conservative migration of the legacy vault-level_deleted/. - 0.137.1 — Remove the global "hide locked titles" and "follow Obsidian trash" options — the per-folder settings now cover both.
- 0.137.2 — Retro-apply: enabling "Encrypt archived notes" offers to lock whatever is already archived.
- 0.137.3 — Multi-writer settings-collision guard for dual instances, network drives, and sync clients.
- 0.137.4 — A collapsible "How encryption works" concepts section in the Encryption settings.
Smart re-encrypt & timed peek (0.138.0 – 0.139.0)
- 0.138.0 — Smart re-encrypt sweep: a watchlist of previously-encrypted notes, a "Previously encrypted" view, a one-modal batch re-lock, and a nudge to re-protect notes left in plaintext.
- 0.139.0 — Timed "peek": temporarily decrypt a note and have it automatically re-encrypt after a set interval — opt-in, cancellable, and safeguarded against re-locking a note that's still being edited. A follow-up fix strips two stray NUL bytes accidentally introduced in the scheduler.
Recurring reminders (0.140.0)
- Recurring and persistent reminders — the deferred major feature — land: a reminder can repeat on a schedule and survive restarts.
Correctness & security review (0.140.1 – 0.140.8)
A multi-wave review (finding, then adversarially verifying each finding) fixed a long tail of bugs. Grouped by the batch that shipped them:
- 0.140.1 — Fixes for the first review wave: a data-loss bug in per-folder trash, recurrence undo, and assorted peek/reminder/crypto issues.
- 0.140.2 — Review deferrals batch 1: decompression-bomb caps on zip import, DEK-length validation, a leaf-return listener leak, content-aware merge in the guarded settings save, undo-on-failure retry, and peek-input coercion.
- 0.140.3 — Review wave 2: tree-index cycle guards (self-parent in the incremental path plus a multi-node reachability sweep), a divider-drag listener leak with proper teardown, folder-rename path-remap across all path-keyed settings, and merge-before-write in the order/sort stores.
- 0.140.4 — Batch B: a drag-and-drop cycle guard for before/after drops (a parent dropped adjacent to its own child could write a cycle to frontmatter), an author-rename in-flight guard leak, an integrity-watcher sweep race, and a cap on the import log.
- 0.140.5 — Batch C: the time picker treats a typed hour
0/00as midnight; filename id-parsing is tightened to the exact id shape; task titles strip only the real id (no longer eating a trailing word like "review"); numericduevalues parse; the tasks view uses calendar-day boundaries for "today"; the render cache re-arms its dirty flag on a failed write; and undo/redo push the action back on failure so it stays retryable. - 0.140.6 — Batch D: untrusted
.stashimports now strip reserved frontmatter (preventing authorship/pin/due/assignee spoofing); the detail panel validates a note's color on read (blocking aurl(...)CSS request) and guards its child recursion against a looping tree; destructive confirmation dialogs focus Cancel so a stray Enter can't fire them; the custom-color dialog no longer paints its default when dismissed untouched; and the color-picker registers its keyboard handlers once. - 0.140.7 — Batch E (views): the Trash permanent-delete confirmation focuses
Cancel so Enter can't irreversibly purge; the shift-range selection anchor is
tracked by item identity so it survives a restore/purge; "Restore selected"
surfaces partial failures; and the aggregate view resolves an archived blob's
restore destination to the nearest
archive/folder. - 0.140.8 — Batch E (crypto): the mid-lock "don't destroy a file edited since it was bundled" guard now covers attachments, not just notes; and encrypting-to-trash rolls back and aborts (keeping the note intact) if the trash metadata sidecar can't be written, rather than deleting the plaintext and stranding the content.