grub-basket_SP/release-notes/0.140.8.md

6.5 KiB
Raw Permalink Blame History

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 B1B6: 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/ and trash/ 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/00 as 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"); numeric due values 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 .stash imports now strip reserved frontmatter (preventing authorship/pin/due/assignee spoofing); the detail panel validates a note's color on read (blocking a url(...) 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.