614 lines
27 KiB
Markdown
614 lines
27 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to Daymark are documented here. The format follows Keep a Changelog, and releases use semantic versioning.
|
||
|
||
## [Unreleased]
|
||
|
||
## [1.18.1] - 2026-08-29
|
||
|
||
### Added
|
||
|
||
- Automatically prepares a reusable share link when the Share panel opens.
|
||
- Encrypts recoverable share tokens at rest while retaining one-way hashes for public-link validation.
|
||
|
||
### Changed
|
||
|
||
- Reuses an active automatic link instead of creating a new link on every visit.
|
||
- Automatically replaces expired or revoked links while preserving manual password-protected link creation.
|
||
|
||
## [1.18.0] - 2026-08-29
|
||
|
||
### Added
|
||
|
||
- Expanded entry sharing with native device sharing, copy-link feedback, email, WhatsApp, Facebook, X, and Reddit actions.
|
||
- Added clear link-ready guidance and an active-link count to the sharing panel.
|
||
|
||
### Changed
|
||
|
||
- Clarified that creating a public link is the privacy boundary before external sharing options become available.
|
||
|
||
## [1.17.1] - 2026-08-29
|
||
|
||
### Changed
|
||
|
||
- Moved archive discovery beneath Journals in the main navigation sidebar.
|
||
- Replaced the oversized archive banner with a compact day count, random-entry action, and "On this day" list.
|
||
|
||
## [1.17.0] - 2026-08-29
|
||
|
||
### Changed
|
||
|
||
- Moved the diary name, description, entry count, recording year, and latest-entry date into the main top header.
|
||
- Removed the separate oversized diary masthead to reduce vertical space before the entry list.
|
||
- Preserved custom diary cover images as a subtle background on the new identity header.
|
||
- Kept account and administration routes on the smaller standard header.
|
||
|
||
## [1.16.1] - 2026-08-28
|
||
|
||
### Added
|
||
|
||
- Added a paperclip indicator beside Timeline titles when an entry contains attachments.
|
||
- Added an accessible hover label showing the number of attached files.
|
||
|
||
## [1.16.0] - 2026-08-27
|
||
|
||
### Added
|
||
|
||
- Added a themed photo-information overlay when hovering or focusing images inside diary entries.
|
||
- Added safe EXIF preservation for camera make and model, lens, aperture, shutter speed, ISO, focal length, dimensions, and capture time.
|
||
- Added file name and size information for existing images that do not contain preserved EXIF data.
|
||
|
||
### Security
|
||
|
||
- Excluded GPS coordinates from stored photo hover metadata so the overlay cannot bypass entry location-privacy settings.
|
||
|
||
## [1.15.3] - 2026-08-26
|
||
|
||
### Added
|
||
|
||
- Added the amber pin icon and `PINNED` label beside pinned entry titles in Timeline view.
|
||
|
||
## [1.15.2] - 2026-08-26
|
||
|
||
### Fixed
|
||
|
||
- Enforced pinned-first ordering after client-side edits, searches, journal filters, and view changes.
|
||
- Kept unpinned entries ordered by date, time, and entry ID after pinned entries.
|
||
|
||
## [1.15.1] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Removed the duplicate uppercase label from deleted-comment tombstones while retaining the message and timestamp.
|
||
|
||
## [1.15.0] - 2026-08-26
|
||
|
||
### Added
|
||
|
||
- Added tombstone deletion for comments with replies so the discussion tree remains intact.
|
||
- Added automatic pruning when a deleted parent no longer has any replies beneath it.
|
||
|
||
### Changed
|
||
|
||
- Deleted parent comments now hide their text, author identity, reactions, and controls while preserving their replies.
|
||
- Leaf comments continue to be removed completely, and deleted comments are excluded from active counts and moderation queues.
|
||
- Updated the deletion modal to explain whether a comment will become a tombstone or be permanently removed.
|
||
|
||
## [1.14.12] - 2026-08-26
|
||
|
||
### Added
|
||
|
||
- Added a designed confirmation modal before permanently deleting a comment.
|
||
- Added a comment preview and an explicit warning that nested replies are deleted with their parent.
|
||
- Added Escape, outside-click, loading, and deletion-error handling to comment confirmation.
|
||
|
||
## [1.14.11] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Moved Reply and Delete into a compact row directly beneath each comment timestamp.
|
||
- Simplified comment footers so they are dedicated exclusively to reaction controls and summaries.
|
||
|
||
## [1.14.10] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Separated comment footer controls into Like on the left, Reply and Delete on the right, and chosen reactions at the far edge.
|
||
- Added a subtle divider between comment actions and the chosen-reaction stack when reactions exist.
|
||
|
||
## [1.14.9] - 2026-08-26
|
||
|
||
### Fixed
|
||
|
||
- Kept comment and reply reaction triggers as thumbs-up icons after choosing another reaction.
|
||
- Removed the duplicate inline selected emoji and count; chosen reactions now appear only in the right-side stack.
|
||
|
||
## [1.14.8] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Reorganized comment footers with reaction, Reply, and Delete controls grouped on the left.
|
||
- Added Facebook-style chosen-reaction stacks on the right of every comment and nested reply.
|
||
- Added participant-name tooltips to comment and reply reaction summaries.
|
||
|
||
## [1.14.7] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Simplified the discussion header by removing the repeated diary entry title.
|
||
|
||
## [1.14.6] - 2026-08-26
|
||
|
||
### Fixed
|
||
|
||
- Rendered discussions as real parent-child trees so replies appear directly beneath the comment they answer.
|
||
- Added progressive indentation for replies of replies, capped at six levels with tighter spacing on mobile.
|
||
|
||
## [1.14.5] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Removed the Like and Reacted text labels from reaction controls on nested replies.
|
||
- Kept reply reaction hover, touch, selection, count, and participant behavior consistent with top-level comments.
|
||
|
||
## [1.14.4] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Changed reaction-summary badges to use the standard hand pointer instead of the help cursor.
|
||
|
||
## [1.14.3] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Simplified the entry reaction tray to show only available emoji choices without selected borders or counts.
|
||
- Kept reaction selections and participant details exclusively in the summary stack on the right.
|
||
|
||
## [1.14.2] - 2026-08-26
|
||
|
||
### Added
|
||
|
||
- Added a compact overlapping stack of the reactions chosen for an entry on the right side of its social bar.
|
||
- Added per-reaction hover labels listing the people who selected each emoji.
|
||
|
||
## [1.14.1] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Made the left thumbs-up reaction count open the emoji tray on hover or tap.
|
||
- Removed the separate blue reaction button from the right side of the discussion bar.
|
||
|
||
## [1.14.0] - 2026-08-26
|
||
|
||
### Added
|
||
|
||
- Added OLED Black, Nord, Dracula, Gruvbox, Solarized Dark, Forest, Rose Pine, and Monochrome themes.
|
||
|
||
### Changed
|
||
|
||
- Rebuilt theme support around shared semantic colour tokens so backgrounds, panels, borders, text, controls, and status colours change together.
|
||
- Replaced filter-based light themes with native palettes so images, videos, maps, and charts retain their original colours.
|
||
|
||
## [1.13.3] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Reworked entry reactions into a Facebook-style social bar with reaction and comment totals.
|
||
- Replaced the labeled entry reaction control with a single circular Like button aligned to the right.
|
||
- Made reaction trays open on hover for pointer devices while retaining click support for touch screens.
|
||
|
||
## [1.13.2] - 2026-08-26
|
||
|
||
### Changed
|
||
|
||
- Replaced permanently visible emoji rows with a compact Facebook-style React control.
|
||
- Added an on-demand reaction picker, existing-reaction summary, selected state, and outside-click dismissal.
|
||
|
||
## [1.13.1] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Repositioned comment reactions into a compact footer directly beneath each comment.
|
||
- Kept emoji reactions left-aligned and grouped Reply and Delete actions on the right.
|
||
- Removed the oversized global footer spacing from comment controls.
|
||
|
||
## [1.13.0] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Reorganized User Settings from nineteen fragmented destinations into ten task-focused sections.
|
||
- Grouped diary and editor controls, journals and tags, notification tools, privacy tools, and data management into cohesive pages.
|
||
- Preserved old settings links by redirecting their hashes to the appropriate new section.
|
||
- Tightened the settings sidebar and added consistent spacing between grouped panels.
|
||
|
||
## [1.12.4] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Added a visible pin icon and label beside the title of every pinned diary entry.
|
||
- Added a designed, accessible confirmation modal when moving an entry to Trash.
|
||
|
||
## [1.12.3] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Shortened the shared entry visibility option label to "Shared".
|
||
|
||
## [1.12.2] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Combined Encrypt Text and Pin Entry into one compact, equally sized composer options row.
|
||
- Removed the oversized encryption container while retaining a focused passphrase area only when encryption is enabled.
|
||
|
||
## [1.12.1] - 2026-08-25
|
||
|
||
### Removed
|
||
|
||
- Removed Knowledge Graph from the diary view selector and application view routing.
|
||
|
||
### Fixed
|
||
|
||
- Legacy Knowledge Graph URLs and saved default values now fall back safely to Diary instead of rendering an empty view.
|
||
|
||
## [1.12.0] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Corrected personal Statistics totals by normalizing account and entry owner identifiers before comparison.
|
||
|
||
### Added
|
||
|
||
- Redesigned Statistics with interactive summary cards, weekly and monthly goal progress, a 12-month activity chart, weekday writing distribution, a visibility donut, and ranked topic bars.
|
||
- Included zero-activity months in the annual chart so trends remain continuous instead of disappearing.
|
||
|
||
## [1.11.2] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Gallery images now open their original full-size file in an in-page lightbox with background-click, close-button, and Escape-key dismissal.
|
||
|
||
## [1.11.1] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Fixed a strict-mode variable declaration error that caused a blank page when opening the date-grouped Gallery.
|
||
|
||
## [1.11.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Grouped Gallery photos and videos under localized date headings, similar to the Windows Photos timeline.
|
||
- Added per-day media counts and entry-page links to Gallery captions.
|
||
|
||
## [1.10.3] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Timeline rows now open their corresponding entry pages by mouse click or keyboard activation, with clear hover and focus feedback.
|
||
|
||
## [1.10.2] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Replaced wrapping ISO dates in Timeline with compact day and month/year blocks.
|
||
- Added each entry’s time to Timeline using the account’s configured 12- or 24-hour format.
|
||
|
||
## [1.10.1] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Scoped calendar day filtering to Timeline so switching to another diary view automatically restores all dates.
|
||
- Added a visible “Show all dates” action and selected-date heading to filtered Timeline views.
|
||
|
||
## [1.10.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Populated calendar days now open the Timeline filtered to every entry recorded on that exact date.
|
||
- Calendar-to-timeline navigation stores the selected date in the URL so the filtered day can be bookmarked or reloaded.
|
||
|
||
## [1.9.13] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Moved the private-entry lock indicator to immediately after the Delete action.
|
||
|
||
## [1.9.12] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Replaced the “PRIVATE” entry metadata text with a compact lock indicator beside the Delete action.
|
||
|
||
## [1.9.11] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Added matching hover and pressed feedback to Take Photo so it behaves consistently with Record Voice.
|
||
|
||
## [1.9.10] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Stopped the Bold toolbar button from appearing selected while hovering the entry editor by separating the editor controls from an invalid shared label relationship.
|
||
|
||
## [1.9.9] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Removed collaboration-role suffixes such as “owner” from journal names in the entry composer.
|
||
|
||
## [1.9.8] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Removed the Mood field, visible coordinate inputs, and manual weather-loading control from the entry composer.
|
||
- Kept map coordinates internal so location search and mapped entries continue to work without exposing technical fields.
|
||
|
||
## [1.9.7] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Matched the Take Photo and Record Voice composer controls to the same width and height in normal, disabled, and recording states.
|
||
|
||
## [1.9.6] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Removed the template-button and rotating-prompt writing aids from the entry composer for a cleaner editing surface.
|
||
|
||
## [1.9.5] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Shortened the User Settings sidebar labels by removing “preferences” from Diary, Editor, Notifications, and Privacy.
|
||
|
||
## [1.9.4] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Redesigned journal cards with a balanced details-and-controls layout, clearer action hierarchy, larger controls, and compact entry metadata.
|
||
- Tightened the Create Journal area and aligned it with the journal cards across desktop and mobile layouts.
|
||
|
||
## [1.9.3] - 2026-08-25
|
||
|
||
### Fixed
|
||
|
||
- Prevented the Journals settings page from rendering blank on its first visit by replacing its legacy modal lifecycle with a stable page panel and defensively handling incomplete journal records.
|
||
|
||
## [1.9.2] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Reworked Journal settings into clean full-width rows with separated metadata and actions, plus a labelled full-width creation area.
|
||
- Improved Journal settings alignment and responsive behaviour on narrow screens.
|
||
|
||
## [1.9.1] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Removed category headings from the User Settings sidebar for a cleaner uninterrupted navigation list.
|
||
|
||
## [1.9.0] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Replaced nested User Settings tabs with direct, grouped sidebar destinations for every profile, diary, writing, interface, notification, privacy, security, and data panel.
|
||
- Each settings subsection now has its own stable URL fragment for direct links and bookmarks.
|
||
|
||
## [1.8.1] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Simplified Profile settings by removing the Pronouns and Home Location fields.
|
||
|
||
## [1.8.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Self-service temporary account deactivation and credential-based reactivation from the sign-in page.
|
||
- Journal ownership transfer to another active user while retaining editor access.
|
||
- Recoverable account deletion with a 30-day cancellation window and automatic removal of database records, media, and personal backup files.
|
||
- Downloadable CSV account-security activity alongside existing device-session controls.
|
||
|
||
## [1.7.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Personal storage analytics with category graphs, quota progress, a largest-file browser, and exact duplicate detection.
|
||
- Safe attachment cleanup that removes selected originals and thumbnails from included object storage and every referencing entry.
|
||
- On-demand personal backup history with complete account data, readable Markdown entries, original media, and download or deletion controls.
|
||
|
||
## [1.6.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Independent in-app, native browser, and verified-email notification channels with quiet hours and instant, daily, or weekly email delivery.
|
||
- Shared-entry creation/update notifications and security alerts for failed sign-ins and new devices.
|
||
- Background email delivery with retry tracking and grouped digest messages through the included SMTP service.
|
||
|
||
### Changed
|
||
|
||
- Notification event preferences now govern comments, replies, mentions, shared journal activity, and account security across enabled delivery channels.
|
||
|
||
## [1.5.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Direct profile-image and diary-cover uploads to included object storage, with controlled public avatar delivery for public author pages.
|
||
- Personal tag inventory with account-wide rename, merge, and removal actions.
|
||
- Custom composer templates and prompts, scheduled browser writing prompts, and configurable weekly-entry and monthly-word goals.
|
||
- Live writing-goal progress within personal diary statistics.
|
||
|
||
### Changed
|
||
|
||
- Composer templates and random prompts now include each user's saved writing tools, and statistics isolate personal authorship within collaborative journals.
|
||
|
||
## [1.4.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Optional public author pages with profile image, pronouns, biography, personal website, join date, and public entries.
|
||
- Account-wide public-link management, held-comment review and approval, and blocked-user management inside Privacy settings.
|
||
- Database-backed comment approval and mutual interaction blocking for comments, reactions, and mentions.
|
||
|
||
### Changed
|
||
|
||
- Privacy settings now control public-profile availability and whether new comments require owner approval.
|
||
|
||
## [1.3.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Functional date, time, timezone, temperature, distance, week-start, map-zoom, image-quality, remembered-entry, accent-colour, diary-cover, and expanded identity preferences.
|
||
- Client-side image resizing and JPEG quality selection for new uploads while retaining an original-file option.
|
||
|
||
### Changed
|
||
|
||
- Calendar alignment, entry timestamps, weather units, single-location map zoom, composer defaults, remembered entry choices, interface accents, and masthead covers now follow each account's saved preferences.
|
||
|
||
## [1.2.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Profile editing and a dedicated Privacy page for location precision, comment access, and default public-link expiry.
|
||
- Comment and reply inbox notifications that respect each recipient's saved notification preferences.
|
||
|
||
### Changed
|
||
|
||
- Consolidated User Settings into exactly seven full-page sections: Profile, Diary, Editor, Appearance, Notifications, Privacy, and Security & Data.
|
||
- Moved journals, inbox activity, sessions, exports, account lifecycle, and trash into focused sub-navigation within their related settings pages.
|
||
- Applied saved preferences to the opening diary view, entry-list size, composer journal and visibility defaults, autosave, spellcheck, interface theme/scale/density/motion, location precision, comments, and public-link expiry.
|
||
|
||
## [1.1.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Account-synchronized user preferences backed by PostgreSQL and authenticated preference APIs.
|
||
- New full-page Diary, Editor, Appearance, and Notification preference sections with responsive controls and saved-state feedback.
|
||
|
||
## [1.0.6] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Flattened the Maintenance page into a full-width layout without the nested modal container, with tighter status, schedule, message, behavior, and action sections.
|
||
|
||
## [1.0.5] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Administrator account creation now uses the same focused modal as user editing for a consistent Users workflow.
|
||
|
||
## [1.0.4] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- User editing now opens the existing administrator editor in a focused modal while preserving its established appearance and controls.
|
||
|
||
## [1.0.3] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Simplified Operational Alerts with a compact health strip, full-width threshold layout, evenly aligned setting cards, and a cleaner action row.
|
||
|
||
## [1.0.2] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Compacted the seven Admin Overview headline metrics into one complete desktop row, with balanced full-width wrapping on small screens.
|
||
|
||
## [1.0.1] - 2026-08-25
|
||
|
||
### Changed
|
||
|
||
- Reflowed Admin Overview metrics so incomplete rows expand to the available width without leaving empty colored grid cells.
|
||
|
||
## [1.0.0] - 2026-08-25
|
||
|
||
### Added
|
||
|
||
- Scheduled maintenance mode with optional immediate start/open-ended duration, visitor messaging, HTTP 503 API enforcement, automatic expiry, administrator bypass, and audit events.
|
||
- Date-ranged administrator analytics exports in spreadsheet-ready CSV and formatted PDF, with report generation audit events.
|
||
- Configurable operational alerts for memory, PostgreSQL connections, failed sign-ins, backup age/completeness, and per-user storage utilization.
|
||
- Configurable per-user storage quotas with live usage in account administration and enforcement during uploads.
|
||
- Unified administrator moderation for recent comments and public links with search, context links, removal/revocation actions, and audit events.
|
||
- Admin backup history with matched database/media status, total sizes, one-click creation, authenticated downloads, deletion, and audit events.
|
||
- Persistent administrator audit logging with actor, action, target, details, IP address, and a dedicated Admin Audit page.
|
||
- Live Admin Overview charts for 30-day content and sign-in activity, entry visibility, and top contributors using lightweight native SVG and CSS.
|
||
- Administrator Website settings for the live site name, masthead description, top notice, browser title, and footer signature.
|
||
- Full administrator account creation and editing, password resets, verification controls, guarded account deletion, and detailed host/container and PostgreSQL resource statistics.
|
||
- Expanded administration with overview metrics, searchable account management, session revocation, registration-code history and revocation, sign-in auditing, and system/storage status.
|
||
- Repository README with feature, setup, Portainer, migration, backup, configuration, and security guidance.
|
||
- Permission-checked standalone entry pages at `/entries/:id` for durable diary permalinks.
|
||
- Editable entry times, displayed alongside each diary date and backfilled from original creation timestamps for existing entries.
|
||
- Dedicated `/settings` and `/admin` pages with section navigation, replacing account and administration popups.
|
||
|
||
### Changed
|
||
|
||
- Removed the manually maintained revision label from System status to prevent stale deployment information.
|
||
- Removed the inherited modal form container from Website settings so its fields use the full page content area.
|
||
- Removed the redundant nested Identity card from the single-section Website settings page.
|
||
- Rebuilt registration administration as two clearly labeled cards for access policy and invitation-code creation.
|
||
- Added consistent pointer, hover, pressed, and keyboard-focus feedback to interactive controls and popup close buttons across the site.
|
||
- Reorganized administrator user rows into aligned account details, status controls, and grouped actions with a responsive stacked layout.
|
||
- Limited Admin Dashboard status messages to their current section and made them dismiss automatically.
|
||
- Rebuilt the Admin Dashboard as a full-page, sectioned interface matching the User Settings navigation pattern.
|
||
- Increased the complete interface scale by 10%, including typography, controls, icons, spacing, and panels.
|
||
- Flattened form panels by removing their offset 3D shadows while retaining clear borders.
|
||
- Hid the redundant Discuss link when viewing an entry's already-open discussion page.
|
||
- Renamed the user-facing application from Daymark to Daymark while preserving its existing Docker and storage identifiers.
|
||
- Replaced the oversized static hero with a compact masthead showing the live entry count, earliest recorded year, and latest entry date.
|
||
- Renamed Permalink to an icon-labeled Discuss link and embedded reactions, comments, replies, and comment creation directly beneath standalone entries.
|
||
- Removed the Latest badge and moved entry discussions from the heading actions to a dedicated control beneath each entry.
|
||
- Made diary entry titles link directly to their standalone entry pages.
|
||
- Made entry tags navigable filters that reopen the diary at the matching tag and year.
|
||
- Removed automatic tag-based Related Entry links from diary cards to reduce visual clutter; manual links and the Knowledge Graph remain available.
|
||
- Expanded entry headings into a two-column date/content layout with title and actions on top and metadata/location spanning the full row below.
|
||
- Reordered entry headings with the title first, metadata beneath it, and location aligned across the metadata row.
|
||
- Replaced the crowded seven-button view switcher with a compact View selector and separated Search, Filters, and entry count controls.
|
||
- Positioned New Entry beside User Settings in the simplified diary header.
|
||
- Opt-in live voice transcription through supported browser speech services and on-demand in-browser Tesseract OCR that inserts extracted image text into drafts.
|
||
- SSRF-protected web link metadata previews with bounded fetches, redirect validation, image cards, and privacy-enhanced YouTube/Vimeo embeds.
|
||
- OpenStreetMap/Nominatim place search, client-side photo EXIF date/GPS extraction, and date/location-specific historical or forecast weather from Open-Meteo.
|
||
- Mobile rear-camera capture, browser microphone voice-note recording, stored entry reminder times, and PWA/browser reminder notifications.
|
||
- Installable Daymark PWA with an offline application shell, locally persistent drafts, an auto-retrying offline entry outbox, app shortcuts, and operating-system text/link sharing into the composer.
|
||
- Optional browser-side AES-256-GCM entry encryption using a 310,000-round PBKDF2 passphrase key, opaque server storage, locked entry placeholders, and explicit unlock controls.
|
||
- Complete account JSON/ZIP exports spanning profile, journals, entries, revisions, collaboration, activity, security metadata, and original media, plus verified permanent account deletion.
|
||
- WebP image thumbnails with original-file links, attachment captions and removal, live upload progress, and an enforced 5 GB per-user storage quota.
|
||
- Multiple journals per account with automatic migration, entry assignment, colors, descriptions, defaults, visibility, sorting, filtering, and management.
|
||
- Expiring journal invitation links, email targeting, member management, and server-enforced owner, editor, contributor, and viewer roles.
|
||
- Entry comments and replies, emoji reactions, member mentions with an inbox, and per-journal activity history.
|
||
- Revocable public entry links with expiration, optional password protection, isolated media access grants, and view counts.
|
||
- Structured entry links and backlinks, reusable people, journal collections, and an interactive relationship graph.
|
||
- Email verification and expiring password-reset links delivered through an included persistent Mailpit SMTP inbox.
|
||
- Encrypted TOTP two-factor authentication with QR setup, login challenges, and single-use recovery codes.
|
||
- WebAuthn passkey registration, device management, and phishing-resistant passwordless login.
|
||
- Active-device management with individual/global session revocation, last-seen metadata, and successful/failed login history.
|
||
- Double-submit CSRF protection for authenticated mutations and layered rate limits for authentication, recovery, public access, uploads, and API writes.
|
||
- Administrator dashboard with site totals, open/invitation/closed registration modes, expiring multi-use codes, admin promotion, and account disabling.
|
||
- Markdown authoring and safe rendering with a formatting toolbar, checklists, and live preview.
|
||
- Locally autosaved and recovered entry drafts, word and character counts, full-screen writing, and keyboard shortcuts.
|
||
- Reusable reflection, gratitude, travel, and project templates with rotating writing prompts.
|
||
- Calendar, compact timeline, mixed-media gallery, and interactive global OpenStreetMap discovery views.
|
||
- Indexed PostgreSQL full-text search with date, mood, visibility, media, location, ownership, and tag filters.
|
||
- Tag-ranked related entries, random archive discovery, and date-matched “On this day” memories.
|
||
- Writing statistics with word, entry, attachment, and topic totals, monthly activity, and current/longest streaks.
|
||
- MinIO object storage for new media attachments, with authenticated media delivery and 50 MB per-file uploads.
|
||
- Recoverable entry deletion with an owner-only trash, restore, and permanent-delete workflow.
|
||
- Automatic revision snapshots before entry edits.
|
||
- Owner-only revision history browser with one-click restoration and preservation of the replaced version.
|
||
- Included daily PostgreSQL and MinIO media backups with 14-day retention and persistent backup storage.
|
||
- Whole-journal JSON, printable PDF, and Markdown/media ZIP exports plus validated JSON import.
|
||
- Initial multi-user chronological diary application.
|
||
- PostgreSQL persistence with automatic migrations.
|
||
- Secure cookie sessions and password hashing.
|
||
- Private and shared entries.
|
||
- Mixed-media attachments, maps, moods, tags, pinning, search, and archives.
|
||
- Owner-only entry editing.
|
||
|
||
### Fixed
|
||
|
||
- Prevented shared-network database DNS collisions.
|
||
- Normalized PostgreSQL dates to ISO format.
|
||
- Replaced placeholder archive navigation with working year and month navigation.
|