Download Latest Version Mini-Diarium-0.6.2-windows.exe (12.8 MB)
Email in envelope

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

Home / v0.4.20
Name Modified Size InfoDownloads / Week
Parent folder
checksums-windows.txt 2026-05-06 196 Bytes
Mini-Diarium-0.4.20-windows.exe 2026-05-06 11.7 MB
Mini-Diarium-0.4.20-windows.msi 2026-05-06 14.3 MB
checksums-macos.txt 2026-05-06 96 Bytes
Mini-Diarium-0.4.20-macos.dmg 2026-05-06 26.1 MB
checksums-linux.txt 2026-05-06 197 Bytes
Mini-Diarium-0.4.20-linux.AppImage 2026-05-06 87.4 MB
Mini-Diarium-0.4.20-linux.deb 2026-05-06 15.1 MB
0.4.20 source code.tar.gz 2026-05-06 14.9 MB
0.4.20 source code.zip 2026-05-06 15.3 MB
README.md 2026-05-06 4.5 kB
Totals: 11 Items   184.8 MB 0

What's Changed

v0.4.20 delivers RTL/bidirectional text editing with toolbar toggle, a multi-entry number navigation bar, editor font selection, and timestamp insertion — plus critical security hardening that moves the multi-auth requirement into the encrypted database with MAC integrity protection.

Added

  • RTL/LTR toggle button in the editor toolbar: a new paragraph-direction toggle button (pilcrow icon with directional arrow) is now available in the advanced formatting toolbar, placed before the alignment controls. The icon dynamically shows PilcrowRight when the current block is LTR (click to switch to RTL) and PilcrowLeft when RTL (click to switch to LTR), matching the convention used by Google Docs and LibreOffice. The button reuses the same setTextDirection command as the existing Ctrl+Shift+D / Cmd+Shift+D keyboard shortcut. New textDirection / textDirectionTitle i18n keys are added to all four locales.
  • Multi-entry number navigation bar: the entry counter (1 / 3) has been replaced with clickable number buttons (← 1 2 3 →) that jump directly to the chosen entry. The current entry is highlighted in bold with an aria-current="true" attribute for screen readers. The prev/next arrows retain their existing step-by-step behaviour. A goToEntry aria-label key is added to all four locales.
  • Insert timestamp in the editor: a new clock button in the advanced formatting toolbar opens a popup that lets you choose between 12-hour and 24-hour format, pick hours:minutes or hours:minutes:seconds precision, and insert the current time at the cursor position. Both selections are remembered across sessions.
  • Editor font selection: a new "Editor font" dropdown in Preferences → Writing lets you choose from five bundled open-source font families (Noto Sans, Source Sans 3, Noto Serif, JetBrains Mono, Fira Mono). Fonts are loaded on-demand as base64 data URLs and applied to the TipTap editor only. The selection is persisted as the editorFontFamily preference and works fully offline — no network requests, no OS-level font enumeration.

Fixed

  • unicode-bidi: plaintext CSS overrides dir attribute on paragraphs and headings: the plaintext value in the editor CSS forced the browser to always auto-detect text direction from content, silently overriding any explicit dir attribute set by the RTL toggle button or Ctrl+Shift+D shortcut. The unicode-bidi override has been removed from both paragraph and heading rules, allowing the dir HTML attribute to control direction natively while the existing BidiExtension auto-detection plugin still sets dir on new blocks.
  • bump-version scripts now inject metainfo.xml release entry: bump-version.sh and bump-version.ps1 both prepend a <release version="X.Y.Z"> element to the AppStream metainfo file during version bumps. The .sh script was also made portable to BSD/macOS sed. The pre-release checklist now validates the metainfo version as a fifth consistency check.

Security

  • Multi-auth requirement can no longer be bypassed by re-adding a journal: the "Require All Authentication Methods" setting was previously stored in config.json. Removing a journal from the list and re-adding the same database file produced a fresh config entry with the flag absent, allowing a single-credential unlock even when multi-auth was required. The flag is now stored inside diary.db itself (new db_settings table, schema v6), so it stays with the database file regardless of what happens to the config. Existing journals are migrated automatically on the first unlock after updating.
  • Multi-auth requirement MAC integrity: the require_all_auth flag stored in db_settings inside diary.db was vulnerable to plaintext SQLite tampering — deleting or modifying the row would bypass the guard and allow single-credential unlock. The flag is now bound to the master key via HKDF-SHA256 MAC (computed as HKDF-SHA256(IKM=master_key, salt=None, info="mini-diarium:require_all_auth:v1") and stored as a 64-char hex string under the require_all_auth_mac key). A fail-safe ensures any tampering (absent, malformed, or mismatched MAC) enforces the guard. Existing journals are self-healed on the first successful all-methods unlock — no user action required. No schema migration; no new dependencies.

Download Mini-Diarium

Source: README.md, updated 2026-05-06