| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| checksums-macos.txt | 2026-03-23 | 96 Bytes | |
| Mini-Diarium-0.4.10-macos.dmg | 2026-03-23 | 20.0 MB | |
| checksums-linux.txt | 2026-03-23 | 197 Bytes | |
| Mini-Diarium-0.4.10-linux.AppImage | 2026-03-23 | 83.5 MB | |
| Mini-Diarium-0.4.10-linux.deb | 2026-03-23 | 11.0 MB | |
| checksums-windows.txt | 2026-03-23 | 196 Bytes | |
| Mini-Diarium-0.4.10-windows.exe | 2026-03-23 | 8.5 MB | |
| Mini-Diarium-0.4.10-windows.msi | 2026-03-23 | 10.3 MB | |
| 0.4.10 source code.tar.gz | 2026-03-23 | 10.2 MB | |
| 0.4.10 source code.zip | 2026-03-23 | 10.4 MB | |
| README.md | 2026-03-23 | 6.6 kB | |
| Totals: 11 Items | 154.1 MB | 0 | |
What's Changed
Fixed
- Text alignment lost after calendar navigation (issue [#63]): alignment (justify, center, right) applied to an entry was permanently overwritten after navigating away and returning. Root cause: TipTap v3 changed
setContent'semitUpdatedefault fromfalse(v2) totrue, causing the programmatic content load in DiaryEditor'screateEffectto fireonUpdate, which queued a debounced save with un-aligned HTML from the production bundle's intermediategetHTML()state. Fixed by passing{ emitUpdate: false }to suppressonUpdatefor programmatic loads; a newonSetContentcallback from DiaryEditor to EditorPanel (1) updates theeditorIsEmptyreactive signal so the "add entry" button state stays correct, and (2) re-triggersdebouncedSavefor blank entries (preserving the auto-deletion-on-navigation behaviour that previously ran through the now-suppressedonUpdatepath). Signal reads in the callback useuntrack()to avoid adding spurious reactive dependencies to DiaryEditor's effect. - E2E layout white gap above auth screens: three-part fix. (1) In E2E mode the Tauri window now sets its size to
800×660beforewin.show()(inlib.rssetup) — previously the window opened at the production default (800×780). (2) All screen-filling containers (JournalPicker,PasswordCreation,PasswordPrompt,Apploading state,MainLayout) now useh-full(height: 100% via thehtml → body → #rootchain) instead ofh-screen/min-h-screen(100vh), which may include the native app menu bar height in WebView2 on Windows. (3) Removedbrowser.setWindowSize(800, 660)from thewdio.conf.tsbeforehook — WebDriversetWindowRectis a post-render resize that uses a different window-size measurement than Tauri'sLogicalSize, causing a second resize after CSS100vh/height:100%were already computed and re-introducing the layout mismatch. - "+" button stuck disabled after multi-entry navigation (two variants): fixed two related bugs where the "Add entry for this day" button became permanently disabled on a day with real content.
- Variant 1 (navigation arrow): clicking "+", getting a blank second entry, then navigating back via "←" left the "+" permanently disabled. Root cause: SolidJS re-evaluated
addDisabledwhensetPendingEntryId()changed, but TipTap had not yet processed the loaded entry's content, soeditor.isEmptywas stale. Fixed by adding aneditorIsEmptyreactive signal updated inhandleContentUpdate(called by TipTap'sonUpdate), forcing re-evaluation after TipTap reflects the correct state. - Variant 2 (day switch): same setup, but switching to a different day instead of using the arrow, then switching back, also blocked the "+". Root cause: the blank entry's debounced auto-delete (500 ms) called
setPendingEntryId(null)and left the editor showing stale blank content even though the original real entry still existed. Fixed by havingsaveCurrentByIdauto-navigate to the nearest remaining entry after deleting a blank entry, sopendingEntryIdis never left asnullwhile real entries still exist on the day.
Added
- Multi-entry E2E tests: new
e2e/specs/multi-entry.spec.tscovering (A) multi-entry persistence after lock/unlock, (B) "+" recovery after backward navigation (v0.4.9 Variant 1 regression), and (C) "+" recovery after day switch with blank entry (v0.4.9 Variant 2 regression).data-testidattributes added toEntryNavBar(entry-nav-bar,entry-prev-button,entry-counter,entry-next-button,entry-delete-button,entry-add-button) to support reliable E2E selectors. - Backend assessment follow-up (Task 71): addressed all actionable findings from the March 2026 assessment. Two code quality fixes:
delete_entryunlock guard now uses the consistent "Journal must be unlocked to …" error message (A1);#[allow(dead_code)]suppressions injrnl.rsnow carry "why" comments on the attribute line per project convention (A2). Ten new backend tests added:delete_entrycommand logic (A3),navigate_to_todayvalid-date assertion (A4),update_slot_last_usedNULL→non-null column check (A5), import/export plugin "not found" error message format (A6),MAX_IMPORT_FILE_SIZEboundary (A7), and isolated v3→v4 and v4→v5 migration tests (A8). Comments added tomigrate_v3_to_v4andmigrate_v4_to_v5explaining why no pre-migration backup is taken (A9). Backend test count: 239 → 249. - Backend architectural assessment ( temporarely stored at
docs/BACKEND_ASSESSMENT_2026-03.md): full health-check of all 42 Rust source files covering architecture alignment, code quality, security posture, and test coverage. - Known issues document (
docs/KNOWN_ISSUES.md): comprehensive reference for all known limitations, deliberate tradeoffs, and technical debt — organized for both users (KI-1 to KI-9) and developers (AT-1 to AT-12, TD-1 to TD-5). Replaces the single-bullet entry in README.md. - Journal name on unlock screen: the unlock screen now shows the name of the selected journal ("Unlock My Journal") instead of the generic "Unlock your journal" subtitle. Falls back to the generic text when no journal name is available.
- Accessibility improvements: comprehensive ARIA audit and fixes across the app. Editor toolbar now has
role="toolbar"andaria-pressedon all toggle buttons (bold, italic, lists, alignment, etc.). Error and success message regions across all overlays and auth screens now carryrole="alert"/role="status"for automatic screen-reader announcement. Loading spinners usearia-busyandaria-hidden. Calendar grid now exposes full WCAGrole="grid"/role="row"/role="gridcell"/role="columnheader"semantics witharia-selected,aria-current="date", and descriptivearia-labelon each day button; arrow-key navigation (←→ day, ↑↓ week, Home/End month, PageUp/PageDown month) added so the calendar is fully keyboard-operable. Preferences dialog tabs now implement the ARIA tab pattern (role="tablist",role="tab",role="tabpanel",aria-selected,aria-controls,aria-labelledby) with Left/Right arrow key switching. Hamburger button gainsaria-expandedandaria-controls. Mobile sidebar overlay gains focus trapping and focus restoration. Journal picker list uses<ul>/<li>semantics. Password strength indicator announces changes viaaria-live="polite".