Mini Diarium

fjrevoredo · fjrevoredo.MiniDiarium

Encrypted, local-first journaling app

A local-first journal with serious encryption. Free, open source, and never touches the internet.

winget install --id fjrevoredo.MiniDiarium --exact --source winget

Latest 0.4.15

Release Notes

What's Changed

v0.4.15 introduces local-only (device-protected) journals that auto-unlock without a password, and fixes a bug where image-only entries were silently deleted on journal close.

Added

  • Local-only (device-protected) journals: A new optional protection mode when creating a journal. Instead of a user-chosen password, the app generates a random 32-byte key at creation time, stores it in config.json (the OS-managed app data directory), and uses it to auto-unlock on every open — no password prompt. Entries remain AES-256-GCM encrypted; the key is simply app-managed rather than user-managed. Security guarantee: protects against copying only the diary.db file (e.g. from a cloud folder or external drive) to another machine, but does not protect against someone with access to the user's OS account. The risk is explained and must be explicitly acknowledged (checkbox) before creation. Existing password/keypair journals are entirely unchanged.
  • New creatediaryauto / unlockdiaryauto Tauri commands backed by a new AutoKeyMethod auth slot type (auth_slots.type = 'auto'); no KDF is applied (the key is already 32 bytes of random entropy).
  • The listjournals and addjournal commands now return a JournalInfo DTO with auto_protected: bool instead of the raw JournalConfig — the auto key never crosses the IPC boundary.
  • On app startup, journals with auto_protected = true are unlocked silently without showing the lock screen. If locked by idle timeout or OS screen lock, PasswordPrompt auto-retries on mount.
  • Upgrading to password protection uses the existing registerpassword + removeauth_method flow; removing the auto slot also clears its key from config.json.
  • UI: mode toggle (Password / Local-only) in PasswordCreation; warning block with three risk bullet-points and a required acknowledgment checkbox; new i18n keys in English, German, and Spanish.

Fixed

  • Paste/drop image-only entries silently lost on journal close (issue #84): pasting or drag-dropping an image onto a blank day never persisted the entry, and an entry whose only content was one or more images was auto-deleted by the debounced save. Root cause: three isEmpty guards in EditorPanel.tsx used editor.getText().trim() === '' — TipTap's getText() ignores image leaf nodes and always returns '' for image-only content, making all three guards treat the entry as empty. Fixed by adding an editorHasImages() helper that walks the ProseMirror document tree; an entry is now only considered empty when editor.isEmpty is true and no image nodes are present. The fix covers all three affected paths: (1) the blank-day entry-creation gate (image pastes on a fresh date now correctly trigger entry creation), (2) the editorIsEmpty reactive signal (the "+" button state is correct for image-only entries), and (3) the saveCurrentById auto-delete check (image-only entries are no longer deleted by the 500 ms debounce).

Installer type: nullsoft

Architecture Scope Download SHA256
x64 Download D0F536410429E6090FDFD4AA364709A96069DE934C51B5E1FCB8D8661CCBB29F

Details

Homepage
https://github.com/fjrevoredo/mini-diarium
License
MIT
Publisher
fjrevoredo
Support
https://github.com/fjrevoredo/mini-diarium/issues
Privacy Policy
https://github.com/fjrevoredo/mini-diarium/blob/master/docs/PRIVACY.md
Copyright
Copyright (c) 2026 Francisco J. Revoredo
Moniker
mini-diarium

Tags

privacyjournalingjournaldiaryfossopen-sourcerust

Older versions (8)

0.4.14
Architecture Scope Download SHA256
x64 Download 8ADA9F7CAB95E1BEEA3ADE0BC01D96DD53CF2ABDACB7719E52E4E6E6BA29F375
0.4.13
Architecture Scope Download SHA256
x64 Download C15559EFE011C39A01CF4F707EE310F86B4522A55614E00B83F6D869010DD563
0.4.12
Architecture Scope Download SHA256
x64 Download 977782B2605E773EBF51EB653674EB163A15CBBEA07CC888D4FEFA1AFDA2430A
0.4.10
Architecture Scope Download SHA256
x64 Download FFCBCE67BBB7FEB26BF65082B6EF9A9DAA9E307CA100E5359D3C72A7A827F70A
0.4.8
Architecture Scope Download SHA256
x64 Download 7A11EFA6ADD5F0193BA4018188B439DADB35F107D1A5F2A6292CBD463247F6AC
0.4.7
Architecture Scope Download SHA256
x64 Download 040953146F9BC8D1E8D6C234223D2FE11F61B4256AF5C2905F8A6543F2FCB2F6
0.4.6
Architecture Scope Download SHA256
x64 Download 8C9B3E14CBED0DB0B9B57499F7B8C77B4E8BF7F277BC9EDD1148CDF01DEFA715
0.4.4
Architecture Scope Download SHA256
x64 Download 15D0C03A993174996921D0D5201E36552432819BE6265913403D2DE378A6107F