Michael Brusegard
e35cd82f5f
fix(auth): verify external identity providers during handoff
...
Allow webmail-configured OAuth providers on separate hosts without trusting callback-supplied endpoints or broadly allowing sibling domains. Bind the client, JMAP server, issuer and token endpoint to HTTPS metadata from the selected webmail for both handoff and pairing.
2026-09-18 04:01:58 -07:00
Linus Rath
5b8c4353d8
Merge pull request #53 from lucletoffe/fix/calendar-description-links
...
fix(calendar): make URLs in the event description tappable
2026-09-09 22:20:23 +02:00
lucletoffe and Claude Opus 5
c2584c2bd5
fix(calendar): make URLs in the event description tappable
...
A meeting invitation puts the join URL in the description - Teams, Meet,
Zoom and the plain iTIP fallbacks all do - and the event detail sheet
rendered it as bare <Text>. The one actionable thing in the event could
not be tapped: you had to select the URL by hand and paste it into a
browser. The mail body already linkifies (plainTextToSafeHtml, rendered
in the WebView); only the calendar was left out.
`splitTextLinks` (lib/linkify-text) splits the text into runs and marks
the http(s) URLs, using the same rule as plainTextToSafeHtml so a message
linkifies identically in the body and in the calendar. DetailRow gains an
opt-in `linkify` prop - set on the description row only, not on rows the
app composed itself - and hands each URL to `openExternalUrl` with
`confirm: true`, the same guard the "Open link" button on the video row
already uses: scheme allow-list plus the host confirmation, since this
text arrives in someone else's data.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018QPPAw4SK4M9Z7euVPM2cL
2026-09-04 09:49:44 +02:00
Linus Rath
6c82130267
chore: update version number to 0.1.62
0.1.62
2026-08-30 00:37:37 +02:00
Linus Rath
f228257ec9
fix: stop the viewer crashing on any message with attachments by keeping store selectors referentially stable
2026-08-29 22:41:09 +02:00
Linus Rath
a02e7f8a49
test: add an opt-in live Stalwart integration suite
2026-08-29 22:28:42 +02:00
Linus Rath
ea1f53f550
fix: keep the created message id when the server answers a send with an implicit filing update
2026-08-29 22:28:41 +02:00
Linus Rath
4e035f3011
chore: update version number to 0.1.61
0.1.61
2026-08-29 20:25:25 +02:00
Linus Rath
e04bea451a
fix: check the GitHub CLI login before bumping so a failed release does not leave a bare tag
2026-08-29 20:20:54 +02:00
Linus Rath
5cb28f5d5d
chore: update version number to 0.1.60
0.1.60
2026-08-29 20:20:15 +02:00
Linus Rath
94c9a2e7a2
chore: update version number to 0.1.59
0.1.59
2026-08-29 20:19:36 +02:00
Linus Rath
3f2dfe83ee
chore: merge upstream fixes for reply threading, iOS session auth drop, calendar paging and the camera prompt ( #35 , #38 , #39 , #40 )
2026-08-29 20:16:33 +02:00
Linus Rath
99a20777b7
docs: tick the P1 summary and record the fix-pass status in the parity index
2026-08-29 18:56:47 +02:00
Linus Rath
96272b6e17
fix: confirm the host before opening meeting links from calendar events and invitations
2026-08-29 18:56:46 +02:00
Linus Rath
8e33808ded
docs: tick the calendar parity items fixed in this pass
2026-08-29 18:55:31 +02:00
Linus Rath
2abea9742e
feat: add a send-invitations switch and custom reminder offsets, keeping alerts the picker cannot show
2026-08-29 18:53:58 +02:00
Linus Rath
c705227611
chore: add the harvested and hand-written RN locale keys
2026-08-29 18:49:38 +02:00
Linus Rath
5fe8e407c7
feat: duplicate, share as .ics and copy the meeting link of an event; link imported UIDs instead of skipping them ( #113 )
2026-08-29 18:49:08 +02:00
Linus Rath
0159d6acc8
docs: tick the outbox and unified-inbox core items
2026-08-29 18:48:51 +02:00
Linus Rath
8fd709d308
docs: record the commit hashes for the mail-list parity items
2026-08-29 18:47:21 +02:00
Linus Rath
0205aa0e1c
feat: cross-account moves via blob import, shared-account offline sync, parked failed outbox ops with retry and back-off, archive replay with foldering, localized relative dates
2026-08-29 18:47:12 +02:00
Linus Rath
09c24fa805
feat: edit tasks with description, priority and due time, filter the list and overlay due tasks on the calendar
2026-08-29 18:44:36 +02:00
Linus Rath
86c3ab9f28
fix: escape the line-break regex in the quick-reply prefill
2026-08-29 18:42:26 +02:00
Linus Rath
9398b46795
docs: tick the viewer-side core items
2026-08-29 18:41:49 +02:00
Linus Rath
f9ae4423e9
fix: sweep stale export files at launch and carry quick-reply text into the composer
2026-08-29 18:41:49 +02:00
Linus Rath
8e1d03c746
feat: fire calendar and task reminders as local notifications
2026-08-29 18:41:06 +02:00
Linus Rath
a222e89611
refactor: merge the quick reply's email-body imports
2026-08-29 18:40:42 +02:00
Linus Rath
26786ca3e4
fix: add the reader's load-failed translation key
2026-08-29 18:40:02 +02:00
Linus Rath
6ae21d5690
feat: folder actions, tags and unified views in the drawer, folder parent/role editing, tag discovery and account-routed unified actions ( #404 , #498 , #495 , #175 , #658 , #855 )
2026-08-29 18:39:45 +02:00
Linus Rath
d6670c2b60
docs: tick the reader parity items
2026-08-29 18:39:29 +02:00
Linus Rath
d2ed27fd3b
feat: conversation view with collapsible cards, header details, auth chips, unsubscribe and read-receipt banners, attachment preview and zip, embedded-message and TNEF unwrap in the reader ( #480 , #830 , #891 )
2026-08-29 18:38:53 +02:00
Linus Rath
ee3b3ffcc3
test: mock the Expo native modules the stores reach transitively
2026-08-29 18:36:08 +02:00
Linus Rath
0f80e98fbc
feat: localize the calendar, add Saturday week start, ISO week numbers, month chips and 12h labels ( #666 )
2026-08-29 18:35:46 +02:00
Linus Rath
2b44936a17
chore: harvest new RN-only translation keys
2026-08-29 18:34:18 +02:00
Linus Rath
bf92a00199
test: cover the draft route-param builder and tick the composer parity items
2026-08-29 18:34:09 +02:00
Linus Rath
00fd0696b2
docs: note the deferred date-locale item in the parity checklist
2026-08-29 18:33:27 +02:00
Linus Rath
c659b5489c
feat: signature, read-receipt, empty-subject, autosave and sub-address settings, identity Reply-To/Bcc/HTML signature with a default identity, template category/favourite, and reschedule/send-now/edit on the scheduled screen ( #507 )
2026-08-29 18:33:22 +02:00
Linus Rath
3a8264c7f7
feat: translate the account security pane
2026-08-29 18:33:16 +02:00
Linus Rath
dc3ac4c7ed
feat: translate the downloads pane
2026-08-29 18:30:32 +02:00
Linus Rath
ae31a71e01
docs: tick settings pane, theme and sidebar-app items in the parity checklist
2026-08-29 18:30:09 +02:00
Linus Rath
0e63d45599
feat: expose a mobile sidebar-apps selector for the drawer
2026-08-29 18:30:08 +02:00
Linus Rath
22697fd111
feat: translate the appearance, reading, composing, identity, template, keyword and sidebar-app panes
2026-08-29 18:29:34 +02:00
Linus Rath
fe45a444d3
feat: port the webmail's built-in colour themes to the Themes pane
2026-08-29 18:29:18 +02:00
Linus Rath
bea3fc4c42
feat: message-list order presets with the Stalwart keyword-sort polarity probe, avatars-in-junk and folder-count toggles ( #718 , #498 )
2026-08-29 18:28:43 +02:00
Linus Rath
5b72c4d314
feat: drafts with autosave and a save/discard close guard, Bcc, signatures, templates, sub-addressing, From override, read receipts, upload progress, inline-image hydration and an undo-send snackbar in the composer ( #188 , #849 , #848 , #540 , #570 , #684 , #163 )
2026-08-29 18:28:38 +02:00
Linus Rath
3194b5ece1
feat: tags, pins, recipients, not-spam, delete confirm, folder-scoped search and draft editing in the mail list
2026-08-29 18:23:08 +02:00
Linus Rath
f07e039ef0
feat: flip $junk/$notjunk on spam, search all folders by default, keep the search across folders and coalesce refreshes in the mail store ( #850 , #788 , #553 , #175 )
2026-08-29 18:22:14 +02:00
Linus Rath
8206893860
feat: assess invitation trust, read the iTIP method from the ICS and pick the target calendar in the invitation banner
2026-08-29 18:22:00 +02:00
Linus Rath
65c73d82a1
docs: tick misc UI items in the parity checklist
2026-08-29 18:21:34 +02:00
Linus Rath
1d1ff35d1b
chore: harvest new RN-only translation keys
2026-08-29 18:21:17 +02:00