Skip to content

0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Jun 22:39
· 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 preview overview. Open it from the new header toggle (List ⇄ PenLine, timeline-toggle-button testid); 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 by preview_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 frontend VITE_EXPERIMENTAL guard to production in the same PR. Backend search_entries command 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 with nix 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 localeCompare instead 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.py now rejects any COMMIT argument 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-underline separately. TipTap StarterKit v3 already bundles the Underline extension, so the standalone registration produced a Duplicate 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 a requestAnimationFrame, 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 calling focus(). The title-bar Enter handler got the same isDestroyed guard. Contributed by @bronty13 via #148 (integrated manually).

Download Mini-Diarium