·
2 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
Mini Diarium 0.6.0 brings full-text search across every entry to everyone, plus a new timeline view that lists your entries newest-first with clickable previews. Nix flake packaging is now available for NixOS and Linux users, and several fixes also ship: the editor no longer crashes on lock/unlock, link tooltips now respond to keyboard focus, font family names sort correctly per locale, and the Flatpak manifest script validates commit SHAs.
Added
- Timeline view (#161): a chronological list of every entry, newest-first, that complements the calendar with a flat
date | title + 200-char previewoverview. Open it from the new header toggle (List ⇄ PenLine,timeline-toggle-buttontestid); clicking a row jumps straight to that entry in the editor. The list re-fetches automatically when entries are added or removed, so it stays in sync without a manual refresh. Previews are generated server-side bypreview_from_html(strips HTML tags, decodes common entities, collapses whitespace, truncates to 200 chars). Only{ id, date, title, preview }crosses the IPC boundary; the full decrypted entry body never leaves the backend, consistent with the project's field-level encryption model. The component ships with localized strings, empty/untitled fallbacks, a<Suspense>loading state, and Vitest coverage for row-click navigation. Contributed by @kenlacroix via #173. - Full-text search (TODO-0053): search across every entry in the current journal via a palette-style overlay, opened from the header search button or Ctrl/Cmd+F. Search is case- and accent-insensitive with AND semantics, returns newest-first results with highlighted snippets, and clicking a result opens that exact entry in the editor (deep-linking works even on days with multiple entries). The overlay displays a result count ("12 results found"); when results exceed 200, a truncation notice prompts refinement ("Showing first 200..."). Keyboard navigation is supported: ArrowDown/ArrowUp navigate results, and ArrowDown from the search input focuses the first result. Privacy: each query decrypts entries in memory and discards them, so nothing searchable is ever written to disk, and no plaintext index exists. Promoted both the Rust
#[cfg(feature="experimental")]gate and the frontendVITE_EXPERIMENTALguard to production in the same PR. Backendsearch_entriescommand contributed by @kenlacroix via #171 (addressing #160); this change wires it into the app shell and ships it to all users. - Nix flake packaging: Mini Diarium can now be built and installed directly from this repository on NixOS and any Linux system with Nix Flakes enabled (
x86_64-linux,aarch64-linux). Supports three integration styles: bare package, NixOS module (programs.mini-diarium.enable = true), and Home Manager module. An overlay (overlays.default) is also exported for custom configurations. Try it without installing withnix run github:fjrevoredo/mini-diarium. Contributed by @tyler274 via #159 (integrated manually).
Fixed
- Locale-aware font family sort: font family names are now sorted with
localeCompareinstead of the default Unicode code-point order, which produced incorrect results for non-ASCII family names. - Keyboard accessibility for link tooltip: the link tooltip in the editor now appears and disappears on keyboard focus and blur in addition to mouse hover, making hyperlink previews reachable without a pointer device.
- Flatpak manifest script validates commit SHA:
flatpak/rewrite-manifest.pynow rejects anyCOMMITargument that is not a 40-character lowercase hex SHA before writing it to the manifest file. - Duplicate editor extension warning: the rich-text editor no longer registers
@tiptap/extension-underlineseparately. TipTap StarterKit v3 already bundles the Underline extension, so the standalone registration produced aDuplicate extension names found: ['underline']console warning on every editor mount. Underline functionality is unchanged. - Editor focus crash on lock/unlock: fixed an unhandled
TypeError: null is not an object (evaluating 'this.commandManager.commands')that could fire when locking and unlocking the journal in quick succession. The auto-focus effect schedules arequestAnimationFrame, but a lock could destroy the editor before that frame ran; the callback now re-checks that the editor is still alive (and still the current instance) before callingfocus(). The title-bar Enter handler got the sameisDestroyedguard. Contributed by @bronty13 via #148 (integrated manually).