Release Summary
- Added a new journal feature with timeline, detail, and editing capabilities.
- Improved work with journal entries by adding success messages and confirmation dialogs.
- Enhanced navigation with a two-row layout and improved responsiveness for better usability.
- Fixed multiple accessibility issues to provide a better experience for all users.
- Updated styling and layout for various components to create a warmer and more cohesive appearance.
0.41.0 (2026-03-29)
Features
- add delete button with confirmation dialog to journal entry detail (0548d47)
- add GET and POST /api/journal endpoints (c0df406)
- add GET/PUT/DELETE /api/journal/[id] endpoints (1dc2e37)
- add journal endpoints to OpenAPI spec (a7cf5e5)
- add journal pages — timeline, new, detail, edit (3bad3f5)
- add journal section to person detail page (92bd26d)
- add Journal to navigation bar (0b5d310)
- add journal translations for all 6 locales (1e8896d)
- add journal Zod validation schemas (7542120)
- add JournalEntry and JournalEntryPerson models (ae9c382)
- add JournalEntryForm client component (181517f)
- add JournalTimeline component with month grouping (ed81335)
- add success toast on journal entry save (1e2e239)
- center and widen search bar, rename Relationship Types to Relationships in nav (320a1d3)
- include journal entries in JSON import/export (db30c0d)
- increase entry preview to text-sm with 3-line clamp and more padding (27c5ca0)
- Journal — encounters timeline with person integration (4ba7c48)
- remove create buttons from desktop nav tab bar (b9a4c4c)
- restyle nav items as tab bar with underline active indicator (574af14)
- strengthen entry card hover with 60% border opacity and shadow (09c9848)
- style Write one as pill button matching Update to today (bf8259f)
- truly center search bar using absolute positioning (001cd47)
- two-row navbar — logo/search/user on top, nav items centered below (b14f945)
- use PillSelector for multi-person filtering on journal page (c428baf)
- use warm accent color for timeline dots and month headers (d606f55)
- warmer empty state copy for first-time journal experience (6fb786a)
- warn on unsaved changes when navigating away from journal form (00d44af)
Bug Fixes
- a11y: add aria-current to nav, label to search, fix tooltip aria-describedby (da9ced7)
- a11y: add aria-live to error, aria-busy to submit, article wrapper for body (09ba183)
- a11y: add dialog role and aria-modal to mobile menu (3fe1ed5)
- a11y: expand checkbox touch target to 44px with label wrapping (1a21753)
- add journalEntry mock to export tests (1f7c575)
- align search bar with nav items by removing mx-auto (b40f0bd)
- bump nav breakpoint to xl to prevent overlap with 5 items (7637a96)
- derive filter state from URL props so nav resets filters (9a07fc2)
- destructure locale prop in JournalSection (f3a860f)
- extract journal filters into client component for interactivity (35ded7c)
- handle ISO date strings in JournalTimeline date parsing (18b6b1f)
- make search and person filter interactive on journal page (8167fc5)
- narrow nameOrder type in JournalFilters to fix build (e04a915)
- normalize person pill sizing between timeline and detail page (2c72f0e)
- pass locale to JournalSection to prevent hydration mismatch (2ed98cf)
- polish: enlarge tooltip button to 20px, remove redundant title attr (fd6fb58)
- polish: use Button component, fix 11px badge text to 12px (ff85d7d)
- prevent duplicate person pill from React strict mode double-effect (4c1fa7a)
- read entry.id from API response correctly in journal form (6d50031)
- remove misleading trash recovery message from delete confirmation (044f870)
- remove redundant Filter by person label from journal filters (dd86a71)
- require children for ConfirmationModal, update delete description (6626e56)
- resolve lint errors — unused import, const, hook order, unused var (a754875)
- responsive: responsive date column, tooltip overflow, nav search padding (7f2b7a9)
- security/data integrity fixes from PR review (b94dce2)
- sort journal entries by date desc then createdAt desc (f4012a6)
- sort journal entry on person detail by date then createdAt desc (00a98a3)
- use book icon instead of plus in Write one button (23eacff)
- use EASTERN enum value for name order in JournalSection (bfe014e)
Performance
- move navIcons/navItems to module scope, memoize groupByMonth (ce1cc78)