Linus Rath
2d983c9853
fix: improve mailbox tree logic #118
2026-03-29 23:47:52 +02:00
Linus Rath
a453f7fa67
fix: events disappearing after iCal import/subscription refresh
2026-03-29 18:33:25 +02:00
Linus Rath
4c853f176b
feat: add iCal subscription editing and batch event import
2026-03-29 18:27:16 +02:00
Linus Rath
5583d95ecc
feat: preserve activation state when updating or creating Sieve scripts to avoid deactivating server-managed vacation scripts
2026-03-29 17:25:15 +02:00
Linus Rath
9d1302ef0a
feat: skip server-managed vacation script in Sieve script handling
2026-03-29 17:18:33 +02:00
Linus Rath
75b5d31414
feat: implement client-side recurrence expansion for calendar events
2026-03-29 17:12:30 +02:00
Linus Rath
1e90885f3f
i18n: add missing translation keys to all non-English locales
2026-03-29 14:20:41 +02:00
Linus Rath
02577c7502
feat: add calendar hover preview settings and functionality
2026-03-29 14:10:28 +02:00
Linus Rath
375c0a7339
feat: add JMAP server endpoint labels and hints in multiple languages
2026-03-29 00:52:42 +01:00
Linus Rath
99d5276cfa
feat: add support for custom JMAP server endpoints in login and settings
2026-03-29 00:47:35 +01:00
Linus Rath
60b2cf5911
fix: adjust account list spacing and remove push connection indicator
2026-03-28 23:33:44 +01:00
Linus Rath
8d7cd26fa9
feat: enhance compose functionality with button integration and translations
2026-03-28 22:53:10 +01:00
Linus Rath
1ba8e2fd47
feat: add folder expansion state management and settings navigation
2026-03-28 22:32:01 +01:00
Linus Rath
c7c22bd210
fix: account isolation, auto-import signer certs, and no-key error handling #35
2026-03-28 17:32:06 +01:00
Linus Rath
6e0c79ca2c
i18n: add 17 missing translation keys to all non-English locales
2026-03-28 15:35:24 +01:00
Linus Rath
9140110435
feat: add options to hide account switcher and show account avatars on navigation rail
2026-03-28 15:20:25 +01:00
Linus Rath
e49f7c1a75
fix: improve dark mode handling for media elements and background images
2026-03-28 14:57:04 +01:00
Linus Rath
098127148e
fix(tasks): work around Stalwart not returning Task objects via CalendarEvent/query
...
Stalwart's CalendarEvent/query ignores Task-type objects and does not
support the 'types' filter (returns unsupportedFilter error). This
caused tasks both locally created and from external clients like
Thunderbird to disappear on reload.
Root causes:
- CalendarEvent/query only returns @type:'Event' objects on Stalwart,
so tasks were invisible to the query endpoint.
- CALENDAR_EVENT_PROPERTIES lacked Task-specific fields (due, progress,
progressUpdated, priority), causing garbled data when tasks were
fetched with Event properties (e.g. utcStart:'32548-12-04T15:30:07Z').
Changes:
- Add CALENDAR_TASK_PROPERTIES with Task-specific fields (due, progress,
progressUpdated, priority).
- Rewrite getCalendarTasks() to first try CalendarEvent/query with
types:['Task'] filter, then fall back to CalendarEvent/get ids:null
which returns all calendar objects regardless of @type per JMAP spec.
- Rewrite createCalendarTask() to fetch back created tasks using
CALENDAR_TASK_PROPERTIES instead of piggybacking on createCalendarEvent.
- Add comprehensive debug logging throughout the task fetch/create flow
(TaskStore, JMAP client) visible when Debug Mode is enabled.
- Add 'types' field to CalendarEventFilter interface.
2026-03-28 14:17:54 +01:00
Linus Rath
308adf0101
feat: add mail layout settings and update email list components
2026-03-28 01:40:41 +01:00
Linus Rath
574bd7ecef
fix: ensure draft editing function is called correctly in EmailViewer component #60
2026-03-28 00:52:28 +01:00
Linus Rath
d6b0714b4e
fix: match hover action background to selected row state
2026-03-28 00:42:42 +01:00
Linus Rath
af8ea8349e
fix: use UTC timestamps for timed event rendering
2026-03-28 00:33:38 +01:00
Linus Rath
8eeabfc995
Fix: nested button in theme card
2026-03-28 00:17:15 +01:00
Linus Rath
ddb636ed73
feat: add auto-select reply identity feature with settings and localization
2026-03-27 23:58:42 +01:00
Linus Rath
92ff5fe449
feat: enhance calendar event handling with full-day detection and layout adjustments
2026-03-27 22:04:57 +01:00
Linus Rath
edcd5aa2a7
chore: update version to 1.4.9
1.3.9
1.4.9
2026-03-27 19:46:48 +01:00
Linus Rath
b5d471e9c8
feat: fix: enforce admin theme locks and repair theme ZIP bundles
2026-03-27 19:42:30 +01:00
Linus Rath
f084b484b7
fix: create all-day calendar events with JSCalendar midnight start and full fetch verification
2026-03-27 18:51:34 +01:00
Linus Rath
b868ad591d
feat: add calendar event normalization and sanitization functions with tests
2026-03-27 18:46:20 +01:00
Linus Rath
42734f16c3
feat: implement vacation responder functionality with UI integration and localization
2026-03-27 18:32:02 +01:00
Linus Rath
b70c727bae
feat: enhance vacation syncing in filter store with error handling and script preservation
2026-03-27 18:18:41 +01:00
Linus Rath
9b0598b051
fix: ensure unique ID generation for ICalSubscription in useCalendarStore
2026-03-27 18:04:48 +01:00
Linus Rath
66cdfe64ce
fix: prevent infinite re-render loop on calendar page
2026-03-27 17:40:28 +01:00
Linus Rath
f6536573ae
feat: add vacation support to Sieve script generation and parsing
2026-03-27 17:36:30 +01:00
Linus Rath
415c961937
feat: enforce forced/managed plugins and policy. Split user upload permission
2026-03-27 16:33:17 +01:00
Linus Rath
ba6b25f3f1
fix: respect markAsReadDelay setting in EmailViewer #95
2026-03-27 02:09:00 +01:00
Linus Rath
a9002763e2
feat: show admin panel in sidebar for Stalwart admin users
2026-03-27 01:53:16 +01:00
Linus Rath
b75d064f20
feat: add plain text only setting for email composer #105
2026-03-27 00:38:11 +01:00
Linus Rath
a46fb9c8af
feat: implement rate limiting handling in JMAPClient #104
2026-03-27 00:22:40 +01:00
Linus Rath
6696636df8
feat: implement Stalwart admin authentication and role check across admin routes
2026-03-26 20:21:12 +01:00
Linus Rath
37bc88dbad
feat: implement force enable/disable functionality for plugins and themes
2026-03-26 18:59:30 +01:00
Linus Rath
7a191cf78b
fix: resolve all 69 ESLint warnings across 40 files
...
- Remove unused imports (Mail, CalendarIcon, Plus, Circle, cn, Link,
MessageCircle, User, Tag, FolderUp, useEffect, LogOut, GripVertical,
Check, X, HoverActionsMode, HoverActionsCorner, asn1js, Convert, etc.)
- Prefix unused variables/params with underscore to satisfy no-unused-vars
- Add missing React hook dependencies (exhaustive-deps)
- Wrap handleNavigateUp in useCallback and selectedGroupMembers in useMemo
- Remove unused eslint-disable directives in jmap/client.ts
- Replace as any with typed casts in filter-store and smime-store tests
- Remove dead code (macOk assignment, unused now variable)
2026-03-26 18:35:56 +01:00
Linus Rath
733e99f094
feat: replace Date constructor with parseISO for improved date handling across calendar components #25
2026-03-26 17:42:44 +01:00
Linus Rath
9b25b6d03e
fix: adjust contact and calendar page for mobile layout #103
2026-03-26 16:30:20 +01:00
Linus Rath
05f848ee23
feat: add hover actions display mode and corner selection options in settings #58
2026-03-26 13:04:34 +01:00
Linus Rath
4da1b7d8fc
feat: update file upload size handling to use dynamic max size #96
2026-03-26 13:04:34 +01:00
Linus Rath
4ff2bff974
feat: enhance error handling for network-related issues in JMAPClient and auth-store #100
2026-03-26 13:04:34 +01:00
Linus Rath
47918aab1b
feat: add option to disable conversation threading #97
2026-03-26 13:04:34 +01:00
Linus Rath
e48672cf77
feat: implement drag-and-drop functionality for sidebar apps #101
2026-03-26 13:04:34 +01:00
Norbert Kamańczyk and Linus Rath
763abf43b9
feat: OAuth app passwords support and Stalwart probe fix
...
- Fix Stalwart probe and API routes for OAuth by passing Bearer token
and JMAP headers from the client-side auth store
- Show only App Passwords and Email Client Setup sections for OAuth users,
hiding Password Change, Display Name, TOTP, and Encryption
- Skip principal/crypto API fetches for OAuth to avoid 403 errors
- Add Email Client Setup section with copyable JMAP username
Made-with: Cursor
2026-03-25 23:33:03 +01:00