lucletoffe and Claude Opus 5.5
bd1b2f3fd3
fix(calendar): keep app-scheme meeting links and match service labels exactly
...
A virtual location in an app scheme (msteams:, zoommtg:) is kept as a last
resort instead of hiding the meeting row; script schemes never are. A
location only joins the meeting when the whole label is a service name, so
"Salle Teams" still opens the maps. Recognise Zoom's /wc/ join path.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-24 09:59:58 +02:00
lucletoffe and Claude Opus 5.5
7c4b584d9c
fix(calendar): join the meeting and open the location from the event sheet
...
Invitations - Teams above all - leave virtualLocations empty: LOCATION reads
"Microsoft Teams Meeting" and the join URL sits in the description between
help and dial-in links, so the sheet showed no meeting button. Find the
join URL of known conferencing services (Teams, Zoom, Meet, Webex, Jitsi,
Whereby, GoTo) in the location or description, unwrapping Outlook Safe
Links, and offer it as the meeting link. Nothing is written to the event.
The location was plain text. Tapping it now opens it: a URL opens as a
link, a location that only names the service joins the meeting, anything
else is searched in the maps app (geo: intent on Android, Google Maps
universal link elsewhere). Long-press copies it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-24 09:47:15 +02: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