Download Latest Version 0.4.3 source code.tar.gz (9.7 MB)
Email in envelope

Get an email when there's a new version of Mini-Diarium

Home / v0.4.0
Name Modified Size InfoDownloads / Week
Parent folder
checksums-macos.txt 2026-02-24 95 Bytes
Mini-Diarium-0.4.0-macos.dmg 2026-02-24 21.1 MB
checksums-linux.txt 2026-02-24 195 Bytes
Mini-Diarium-0.4.0-linux.AppImage 2026-02-24 84.2 MB
Mini-Diarium-0.4.0-linux.deb 2026-02-24 11.9 MB
checksums-windows.txt 2026-02-24 194 Bytes
Mini-Diarium-0.4.0-windows.exe 2026-02-24 8.5 MB
Mini-Diarium-0.4.0-windows.msi 2026-02-24 10.3 MB
0.4.0 source code.tar.gz 2026-02-24 9.6 MB
0.4.0 source code.zip 2026-02-24 9.8 MB
README.md 2026-02-24 5.9 kB
Totals: 11 Items   155.4 MB 0

Mini Diarium v0.4.0

This is one of the biggest releases to date. Many milestone features, such as the introduction of the extension system and support for multi-journals, were added. A bunch of fixes and QoL features were also shipped in this version. Most of the main core features are already in place by now. Most of the work toward version 1.0.0 will be focused on bug fixing, performance, and further testing. Thanks for the support.

Changelog

Added

  • Extension system for import/export formats: built-in formats (Mini Diary JSON, Day One JSON, Day One TXT, jrnl JSON, JSON export, Markdown export) are now served through a unified plugin registry. Users can add custom import/export formats by dropping .rhai scripts into a plugins/ folder inside their diary directory. Rhai scripts run in a secure sandbox (no file system, no network, operation limits enforced). A README.md with templates and API docs is auto-generated in the plugins/ folder on first launch.
  • Multiple journals: configure and switch between multiple journals (e.g. personal, work, travel) from the login screen. A dropdown selector appears on the password/key-file unlock screen when more than one journal is configured. Journals are managed in Preferences (add, rename, remove, switch). Each journal is an independent encrypted diary.db in its own directory. Existing single-diary setups are automatically migrated—no action required. The "Change Location" feature in Preferences stays in sync with the active journal's config.

Fixed

  • Navigating to an empty date no longer creates a spurious calendar dot: clicking into the editor on a date with no entry (without typing anything, or typing only whitespace) previously wrote an empty entry to the database because TipTap normalises an empty document to <p></p>, which bypassed the !content.trim() check. The save logic now uses TipTap's editor.isEmpty || editor.getText().trim() === '' to correctly identify empty and whitespace-only content, and passes '' to the backend deletion guard so it also passes. Fixes [#22].
  • Keyboard shortcuts overhauled: bracket-key accelerators (CmdOrCtrl+[/] for previous/next day, CmdOrCtrl+Shift+[/] for previous/next month) replace the old arrow-key combos that conflicted with OS and TipTap text-navigation bindings. Removed the duplicate frontend keydown listener (shortcuts.ts) that caused every shortcut to fire twice. Removed accelerators from Statistics, Import, and Export that conflicted with TipTap italic (Ctrl+I) and Chromium DevTools (Ctrl+Shift+I). All shortcut definitions now live exclusively in menu.rs as OS-level menu accelerators.
  • CI diagram verification now detects stale outputs: the "Verify diagrams are up-to-date" workflow step now compares each regenerated *-check.svg file with its committed SVG counterpart and fails with a clear remediation message when any diagram differs.
  • Flaky diagram CI diffs resolved: diagram rendering/checking is now centralized in scripts/render-diagrams.mjs and scripts/verify-diagrams.mjs; Mermaid always renders with a consistent Puppeteer config in both local and CI runs; CI uses bun run diagrams:check (project-locked Mermaid CLI instead of bun x mmdc), workflow Bun installs now use --frozen-lockfile, Bun is pinned to 1.2, and D2 is pinned/validated at v0.7.1 to prevent toolchain drift.
  • Editor now scales better on large/fullscreen windows: the main writing column keeps the existing compact behavior on smaller screens, but expands its max width on larger displays and increases the editor's default writing area height on tall viewports to reduce unused space below the editor.
  • Session state is now fully reset on lock/logout boundaries: locking the diary (manual lock button or backend-emitted diary-locked event from OS/session auto-lock flows) now clears transient frontend state so selected date, in-memory entry/search state, and open overlays do not leak across sessions or journal switches. Unlock now starts from a fresh today baseline; E2E coverage was updated accordingly.
  • Journal selection on auth screens no longer reverts to the previous journal: switching journals from the locked/no-diary screen now updates auth status without reloading journal metadata in the same step, preventing the dropdown from briefly changing and then snapping back to the old journal.
  • Auth screens no longer clip content when multiple journals are configured: the journal selector dropdown added in 0.4.0 pushed the unlock/create-diary cards past the 600 px window height, causing the top of the card to be clipped with no way to scroll. The layout now uses a column-flex + my-auto pattern so the card centres when space is available and the page scrolls naturally when it is not. Outer vertical padding was reduced (py-12py-6), card internal padding tightened (py-10py-8), logo and subtitle margins trimmed, and the default window height increased from 600 px to 660 px so both screens fit without scrolling in the multi-journal case.

Changed

  • PHILOSOPHY.md restructured and expanded: split into Part I (what and why for each principle) and Part II (how each principle is implemented in the codebase). Added concrete extension/plugin system description, E2E test stack guidance, rationale for the no-password-recovery rule, OS integration and Rhai scripting as justified complexity examples, a typo fix ("rich-text support"), a clarification distinguishing local Rhai plugins from plugin marketplaces, a version/date header, and a new "Honest threat documentation" non-negotiable. README now links to PHILOSOPHY.md under a dedicated Philosophy section.

Full changelog: https://github.com/fjrevoredo/mini-diarium/compare/...v0.4.0

Source: README.md, updated 2026-02-24