Linus Rath
eecf16daa2
fix: stop silently destroying emails when trash mailbox isnt found #195
2026-05-01 20:01:13 +02:00
Linus Rath
e9c9be84ad
fix: preserve list scroll position when tagging an email
2026-05-01 17:18:11 +02:00
Linus Rath
31d17098d6
feat: open mail from push notification clicks
2026-05-01 02:13:25 +02:00
Linus Rath
7188abc9bc
fix: set In-Reply-To and References on replies #234
2026-04-30 01:25:04 +02:00
Linus Rath
0f6e4f995f
fix: prevent iframe flash on Load images or Trust sender
2026-04-29 18:29:48 +02:00
Linus Rath
68f1fabc4b
fix: batch shortcuts act on multi-selection when present #228
2026-04-28 00:04:29 +02:00
Linus Rath
29197ea355
feat: replace folder prompt() calls with proper modal dialog
2026-04-25 16:30:18 +02:00
Linus Rath
4788e8a91a
feat: add right-click context menu to mail folders sidebar
2026-04-25 16:26:05 +02:00
Linus Rath
df8d04e233
fix: restore broken viewer toolbar actions and improve mobile menu #220
2026-04-24 19:31:38 +02:00
Linus Rath
c30c38a7af
chore: update version to 1.5.0
2026-04-23 00:07:34 +02:00
Linus Rath
dd1f3e11e6
fix: retry mailbox fetch on first login to handle lazy provisioning #217
2026-04-22 22:45:49 +02:00
Linus Rath
39a228b20e
feat: streamline mobile email viewer header layout
2026-04-22 20:50:12 +02:00
Linus Rath
3ade1c6473
fix: update mailbox retrieval logic in archive handling to use fresh state
2026-04-22 00:00:43 +02:00
Linus Rath
40982bc37b
fix: align hover styles and selection-toggle target with focused item
2026-04-21 23:50:55 +02:00
Linus Rath
f9aa5cbaee
fix: skip checkAuth on route change when already authenticated
2026-04-21 22:54:02 +02:00
Linus Rath
89d8282846
fix: include original attachments when forwarding an email #214
2026-04-21 13:58:02 +02:00
Linus Rath
f162f1e3d4
feat: refresh JMAP on reload gestures, fix mobile bottom nav spacing
2026-04-19 13:43:44 +02:00
Linus Rath
d4f7ae522e
fix: use cid references for inline images #163
2026-04-18 00:57:46 +02:00
Linus Rath
8bdadc7ba3
fix: standardize punctuation
2026-04-16 19:07:42 +02:00
Linus Rath
ad175d20e3
feat: enhance email deletion and spam handling with improved parameterization
2026-04-16 16:50:42 +02:00
Linus Rath
f22699fe20
feat: add unified mailbox across accounts and sidebar icons toggle
2026-04-14 17:36:13 +02:00
Linus Rath
927a3b8b11
feat: store trusted senders in a dedicated JMAP address book #176
2026-04-12 01:10:28 +02:00
Linus Rath
4ad8396adc
fix: remount composer on draft edit and preserve identity #60
2026-04-12 00:11:36 +02:00
Linus Rath
4f54f768e8
Feat: enable keyword reordering #174 and multi-tag support per email #173
2026-04-10 17:31:13 +02:00
Linus Rath
d0cc439fd1
feat: add automatic identity synchronization ( #167 )
2026-04-09 19:39:04 +02:00
Linus Rath
6499da6281
feat: sync mail view to browser history for back/forward navigation
2026-04-08 22:20:36 +02:00
Linus Rath
3d76fe6d75
fix: focused mode expanding to the right of the screen #156
2026-04-08 12:43:48 +02:00
Linus Rath
8836f9cdca
fix: wrap handleArchive call to prevent MouseEvent leaking as argument
2026-04-02 11:19:36 +02:00
Linus Rath
34dd5122b3
feat: logging to include categories for better log management
2026-03-31 16:31:27 +02:00
Linus Rath
67210c9924
fix: handle 2FA/TOTP session expiry with basic auth #117
2026-03-30 16:37:07 +02:00
Linus Rath
c512352f77
fix: add replyToAddresses to email composer
2026-03-30 15:27:50 +02:00
Linus Rath
8d7cd26fa9
feat: enhance compose functionality with button integration and translations
2026-03-28 22:53:10 +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
ddb636ed73
feat: add auto-select reply identity feature with settings and localization
2026-03-27 23:58:42 +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
415c961937
feat: enforce forced/managed plugins and policy. Split user upload permission
2026-03-27 16:33:17 +01:00
Linus Rath
a46fb9c8af
feat: implement rate limiting handling in JMAPClient #104
2026-03-27 00:22:40 +01:00
Linus Rath
0174051f3e
fix: enhance draft editing by fetching full email content when necessary #60
2026-03-25 10:36:47 +01:00
Linus Rath
54981950b0
feat(plugins): resizable collapsible detail sidebar, auto-init on refresh
...
- Add email-detail-sidebar slot type for right-side plugin panels
- Plugin sidebar inside EmailViewer with ResizeHandle (200-500px, drag/dbl-click reset)
- Collapse/expand toggle with PanelRightClose/PanelRightOpen icons
- Call initializePlugins() on mount so plugins survive page refresh
- Fix plugin loader: call exposePluginExternals() before loading
- Fix CSP: add blob: to script-src for plugin bundle loading
- Fix enablePlugin: wire slot registration bridge before loading
- Fix email-banner PluginSlot: pass email via extraProps
- Fix sidebar-widget PluginSlot: move inside scrollable area
- Emit emailHooks.onEmailOpen/onEmailClose from selectEmail()
2026-03-25 00:44:05 +01:00
Linus Rath
f7ee204262
feat: add support for marking emails as answered or forwarded and update UI accordingly
2026-03-23 15:45:37 +01:00
Linus Rath
8eff9fdfab
feat: add notification settings with sound picker and preview
2026-03-22 01:55:21 +01:00
Linus Rath
4c2d185be4
fix: refactor logout to use synchronous flow with full page redirect
...
- Rewrite logout() from async to synchronous to prevent React re-renders with stale state
- Replace router.push('/login') with redirectToLogin() (window.location.replace) in all page auth guards for reliable navigation in Edge/Safari
- Add performFullLogout() helper that clears auth state, feature stores, and localStorage
- Fix persist middleware partialize to return {} when not authenticated, preventing state resurrection
- Use keepalive fetch for background cookie/token cleanup so redirect fires immediately
- Remove unused useRouter imports from page.tsx and contacts/page.tsx
- Simplify all page logout handlers to directly call logout()
Fixes #63
2026-03-21 20:45:17 +01:00
Linus Rath
2547c10060
feat: add demo data for emails, files, filters, identities, mailboxes, vacation responses, and JMAP client interface
...
- Created demo emails with various states (inbox, sent, drafts, trash, etc.) in `emails.ts`.
- Added demo file nodes representing directories and files in `files.ts`.
- Implemented demo Sieve capabilities and scripts in `filters.ts`.
- Defined demo identities for users in `identities.ts`.
- Established demo mailboxes with permissions and counts in `mailboxes.ts`.
- Created a demo vacation response in `vacation.ts`.
- Introduced a comprehensive JMAP client interface in `client-interface.ts` to standardize interactions with the JMAP API.
2026-03-21 01:38:42 +01:00
Linus Rath
d68b81e6b8
chore: bump version to 1.4.5
2026-03-20 18:10:00 +01:00
Linus Rath
e26654a005
fix: enhance account switching logic and clear stores on account change
2026-03-20 16:29:32 +01:00
Linus Rath
c1c06c68bb
fix: improve draft handling in email composer and enhance session cookie verification logic
2026-03-20 15:45:25 +01:00
Linus Rath
c5b1731a63
feat: add attachment position setting in email settings
...
- Introduced a new setting for attachment position in email settings, allowing users to choose between displaying attachments beside the sender or below the header.
- Updated the settings store to include the new attachment position type and default value.
- Added translations for the new setting in multiple languages (de, en, es, fr, it, ja, nl, pt).
2026-03-19 21:14:18 +01:00
Linus Rath
34e495dde3
Fix email signature rendering
2026-03-19 17:20:39 +01:00
Linus Rath
0b721661e9
Fix logout redirects and unauthenticated home rendering
2026-03-19 17:01:27 +01:00