Stefan Hildebrandt and Linus Rath
94b1f5aa48
refactor: model composer recipients as arrays instead of delimited strings
...
Alternative to the quote-aware string fix: represent committed To/Cc/Bcc
recipients as Recipient[] ({name?, email}) with a separate input-text
string per field, instead of a single comma-joined string parsed with
split(','). Structured recipients can never be torn apart on a delimiter,
so a display name containing a comma ("Doo, John <john@doo.org >", as
produced on Reply-All) stays a single chip.
- email-composer-utils: add Recipient type, parseRecipient/formatRecipient,
and parseRecipientList/formatRecipientList for the (de)serialization
boundary (ComposerDraftData stays a string; quoting keeps it lossless).
Remove the now-unused string-chip helpers.
- email-composer: to/cc/bcc are Recipient[]; toInput/ccInput/bccInput hold
the in-progress text. Reply/forward init, autocomplete, chip edit, drag &
drop (payload now carries the structured recipient), send/draft/validation
and template paths all operate on arrays. withInput() folds uncommitted
typed text into the send/validation set.
- Tests updated for the array contract; add comma-in-name chip coverage.
2026-06-15 22:59:46 +02:00
Linus Rath
c51c3655d5
feat: add "All Mail" view
2026-06-15 18:42:23 +02:00
Linus Rath
404a1e847c
fix: move "Plain Text Only" setting from Reading to Composing #422
2026-06-15 17:39:18 +02:00
Linus Rath
dcea4fdd5e
feat: show recipient address in chip drag preview
2026-06-15 15:28:03 +02:00
Linus Rath
701f96adb3
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-15 15:23:09 +02:00
Stefan Hildebrandt and Linus Rath
1ebfb286ad
feat: drag and drop recipient chips between To/CC/BCC fields
...
Adds native HTML5 drag-and-drop so users can move recipient email
address chips between the To, CC, and BCC fields in the composer.
Chips dragged onto the Cc/Bcc toggle buttons auto-reveal the hidden
field and place the chip there.
2026-06-15 15:23:00 +02:00
Linus Rath
b5f15dfdb7
i18n: add missing translation keys across 17 locales
2026-06-15 15:18:47 +02:00
Stefan Hildebrandt and Linus Rath
aee4bd78db
feat: add Edit contact button to email viewer contact sidebar
...
Clicking an email address in the viewer already shows a contact detail
sidebar. An "Edit" button now appears there (for known contacts) that
navigates directly to the contact edit form via the existing URL-param
intent system (?contactId=…&view=edit), removing the need to open the
Contacts page manually and search for the contact.
2026-06-15 15:06:35 +02:00
Linus Rath
798a33495e
refactor: remove JMAP status from admin dashboard
2026-06-14 17:15:52 +02:00
Linus Rath
4c6c1aab60
feat: manage shared/group account settings from Accounts page
2026-06-14 17:05:29 +02:00
Linus Rath
848ed9774d
feat: show avatars in recipient autocomplete suggestions
2026-06-14 14:54:27 +02:00
Linus Rath
b32e102ff9
feat: include directory users in recipient autocomplete
2026-06-14 14:52:13 +02:00
Linus Rath
e8feb11983
feat: add telemetry to web setup wizard
2026-06-14 14:35:48 +02:00
Linus Rath
3e12fca517
fix: make telemetry opt-in
2026-06-14 14:31:26 +02:00
Linus Rath
8df483d8c7
fix: don't send connected-account key as JMAP accountId when sharing files #408
2026-06-12 00:36:45 +02:00
Linus Rath
1e63e2469a
fix: strip build-time basePath from router.push redirects after login #390
2026-06-12 00:23:00 +02:00
Linus Rath
e1c28e767a
fix: context menu invisible on first right-click after page load
2026-06-12 00:21:09 +02:00
Linus Rath
fe5645c818
refactor: redesign custom recurrence editor to match modal UI
2026-06-12 00:15:54 +02:00
Linus Rath
38570b1723
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-12 00:03:52 +02:00
Linus Rath
a4f476945d
feat: JMAP file/folder sharing in Files app #408
2026-06-12 00:02:45 +02:00
Linus Rath
20fd9ff4de
fix: prevent wide email tables from rendering with rotated headers #409
2026-06-11 19:24:05 +02:00
Linus Rath
569dde9985
fix: preserve folder list when mailbox refetch hits concurrent-request limit
2026-06-11 19:10:06 +02:00
Linus Rath
08f344403b
feat: recurrence editor, set-default calendar, and timezone-aware calendar queries
2026-06-11 19:05:11 +02:00
Linus Rath
be58cee989
fix: dedupe scheduling emails, Stalwart-compatible calendar filters
2026-06-11 18:24:43 +02:00
Max Hao and Linus Rath
7c11e2b3c9
add localized translation placeholders
2026-06-10 19:06:44 +02:00
Max Hao and Linus Rath
f2913a7c7d
feat: add email display name support to the composer.
2026-06-10 19:06:44 +02:00
Linus Rath
a27a5be3dd
fix: correct dark-mode background-image inversion and height clipping in email viewer
2026-06-08 15:53:44 +02:00
Linus Rath
964136b540
feat: require re-authentication for device pairing and SSO
2026-06-05 19:23:06 +02:00
Linus Rath
569f688fbf
feat: QR-code SSO login between webmail and mobile app
2026-06-05 18:33:20 +02:00
Linus Rath
1d050f8469
feat: add QR code device pairing for mobile app login
2026-06-05 17:41:55 +02:00
Linus Rath
2e4c0f9eea
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-05 16:09:12 +02:00
Linus Rath
fd0b866339
fix: open recent contact emails at "/" instead of 404ing on "/mail"
2026-06-05 16:07:38 +02:00
Maarten and Linus Rath
1518ba04dd
fix(nav): hide Add App button when sidebarAppsEnabled is false
2026-06-05 14:32:56 +02:00
Norbert Balák-Horváth and Linus Rath
c5672c64fb
res lock file
2026-06-04 19:52:42 +02:00
Norbert Balák-Horváth and Linus Rath
5997579f54
rem lock file
2026-06-04 19:52:42 +02:00
Norbert Balák-Horváth and Linus Rath
f77d2e9103
Fix HU i18n
2026-06-04 19:52:42 +02:00
Linus Rath
6350e9dabc
chore: update version to 1.7.4
2026-06-04 12:59:28 +02:00
Linus Rath
7723c134ff
chore: update version to 1.7.4
2026-06-04 12:39:50 +02:00
Linus Rath
d11ed904a9
feat: calendar agenda plugin sidecar + persist email detail sidebar state
2026-06-04 12:35:56 +02:00
Linus Rath
9db7b6b55f
docs: clarify signature byte cap comment is Stalwart-specific
1.7.3
2026-06-04 10:40:42 +02:00
Linus Rath
1460706e60
docs: update README
2026-06-04 10:31:42 +02:00
Linus Rath
27d624758a
chore: update version to 1.7.3
2026-06-04 10:15:50 +02:00
Linus Rath
5288821605
i18n: register Hungarian locale and backfill files.migration_* keys
2026-06-04 00:56:50 +02:00
Norbert Balák-Horváth and Linus Rath
58e3ecc97a
fix struct
2026-06-04 00:48:18 +02:00
Norbert Balák-Horváth and Linus Rath
38c0694a08
Audit HU translation
2026-06-04 00:48:18 +02:00
Norbert Balák-Horváth and Linus Rath
71d25bb62f
Add Hungarian lang support
2026-06-04 00:48:18 +02:00
Linus Rath
ef825b801a
fix: list Files via FileNode/get ids:null so folders are visible
2026-06-04 00:45:08 +02:00
Linus Rath
50cbd66bfd
fix: treat blob-less FileNode as the only folder signal; migrate legacy dir-markers
2026-06-04 00:30:38 +02:00
Linus Rath
d564c874a3
feat: migrate legacy flat-named Files into real hierarchy on load #379
2026-06-03 21:20:25 +02:00
Linus Rath
568abb0e33
fix: remove flatname workaround, store Files as real FileNode #379
2026-06-03 20:53:03 +02:00