| Name | Modified | Size | Downloads / 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
.rhaiscripts into aplugins/folder inside their diary directory. Rhai scripts run in a secure sandbox (no file system, no network, operation limits enforced). AREADME.mdwith templates and API docs is auto-generated in theplugins/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.dbin 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'seditor.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 frontendkeydownlistener (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 inmenu.rsas 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.svgfile 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.mjsandscripts/verify-diagrams.mjs; Mermaid always renders with a consistent Puppeteer config in both local and CI runs; CI usesbun run diagrams:check(project-locked Mermaid CLI instead ofbun x mmdc), workflow Bun installs now use--frozen-lockfile, Bun is pinned to1.2, and D2 is pinned/validated atv0.7.1to 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-lockedevent 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 freshtodaybaseline; 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-autopattern so the card centres when space is available and the page scrolls naturally when it is not. Outer vertical padding was reduced (py-12→py-6), card internal padding tightened (py-10→py-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