Linus Rath
0b1463b7d5
feat: show attachment and code chips as Gmail pills in Mountain View
2026-10-25 12:48:49 +01:00
Linus Rath
9c360694bf
fix: send paragraphs with the spacing the composer shows #1340
2026-10-25 12:27:13 +01:00
Linus Rath
a49ab079ec
fix: sanitize quoted and signature HTML in re-opened drafts (GHSA-g35q-3gpc-x2rr)
2026-10-24 22:13:19 +02:00
Linus Rath
6d459674f8
Merge pull request #1109 from hildebrandttk/fix/group-identity-sent-copy
...
fix: save a group identity's drafts in the group account's Drafts (#1…
2026-10-24 17:55:10 +02:00
Linus Rath
b594a354a0
Merge remote-tracking branch 'origin/main'
2026-10-21 16:56:59 +02:00
Linus Rath
68047e7fdb
fix: open the contact card in place instead of sliding in from the top left
2026-10-21 16:54:29 +02:00
Linus Rath
24317a7d92
test: drag the composer's plugin panels with pointer events
2026-10-20 21:25:18 +02:00
Linus Rath
b812fe62f4
fix: keep the composer's editor-ready handler stable so a repeated report can't loop
2026-10-20 21:25:17 +02:00
Linus Rath
69ae5200dc
test: drag the composer's plugin panels with pointer events
2026-10-20 21:24:27 +02:00
Linus Rath
617b9b3b51
fix: keep the composer's editor-ready handler stable so a repeated report can't loop
2026-10-20 21:24:03 +02:00
Linus Rath
c083c7e075
Merge pull request #1297 from dealerweb/fix/hover-actions-after-delete
...
fix: show the hover actions on a row that moves under a resting pointer
2026-10-20 21:15:03 +02:00
Linus Rath
976f3ea543
feat: keep the reader's side panel open across messages with its toggle in the toolbar
2026-10-20 19:12:20 +02:00
Linus Rath
b825a54a73
fix: close the reader's toolbar menus when a click goes into the message or a plugin panel
2026-10-20 18:58:55 +02:00
Linus Rath
e7a622d4ee
feat: run the reader toolbar over the side panels to the right edge
2026-10-20 18:52:50 +02:00
Linus Rath
ad3e529b8e
feat: tell reader plugin frames whether they are on a phone, a tablet or a desktop
2026-10-20 17:21:13 +02:00
Linus Rath
b89c127ed6
fix: tell a plugin that a composer panel is not on screen on a phone
2026-10-20 17:21:13 +02:00
Linus Rath
95003fd28b
feat: let a plugin panel start folded until the user or the plugin opens it
2026-10-20 17:21:13 +02:00
Linus Rath
95bfb1681c
feat: let a plugin's panel frame fill the panel and scroll inside
2026-10-20 17:21:13 +02:00
Linus Rath
2319f6a0f0
feat: let the user drag the composer's plugin panels wider or narrower
2026-10-20 17:21:13 +02:00
Linus Rath
2bb5a62ac4
feat: let a plugin open, close and toggle the panel its slot sits in
2026-10-20 17:21:13 +02:00
Linus Rath
8deb887e95
feat: let plugins see and act on text selected in a message, with a right-click menu and the side panel's selection
2026-10-20 17:21:12 +02:00
Linus Rath
00142540f6
feat: let plugins add entries to the right-click menu on selected text in the composer
2026-10-20 17:21:12 +02:00
Linus Rath
a2136319fb
feat: hand composer plugin panels the composer id, the draft and the selected text
2026-10-20 17:21:12 +02:00
dealerweb
2b01866399
fix: show the hover actions on a row that moves under a resting pointer
2026-10-20 11:38:34 +02:00
Linus Rath
b5964ac544
fix: find the invited attendee under any sending identity when answering an invite #1283
2026-10-19 18:41:05 +02:00
Stefan Hildebrandt
04efcfc1f3
fix: save a group identity's drafts in the group account's Drafts ( #1090 )
...
Drafts were always created in the primary account, so a message composed as
a group identity sat in the member's own Drafts while its Sent copy (since the
previous commit) went to the group.
- createDraft takes { accountId, previousDraftAccountId }: the draft goes to
the account that owns the From identity (resolveSendAccountId, now public
and briefly caching the identity lists for autosave), and the replaced
version is destroyed in the account it lives in.
- The composer tracks draftAccountId next to draftId (save, re-resolve of
attachment blobs, send, discard, stashed state), since draft ids are only
unique within one account.
- sendEmail destroys the sent draft in options.draftAccountId; discarding
(inline and Pro tab) deletes it there, through the identity's login.
- Re-opening a draft from a group/shared Drafts folder (or a stamped
aggregate row) keeps its account.
- resolveSendAccountId is optional on IJMAPClient; without it drafts stay in
the primary account.
- Tests: client unit tests for draft placement / replacement / send cleanup,
E2E spec 18 draft cases (autosave + send, discard).
2026-10-19 16:33:27 +02:00
VasilisNtovolos
a73ac09035
fix: route conversation blobs by originating message
2026-10-19 15:43:38 +03:00
Linus Rath
391ed6c018
Merge branch 'fix/security-audit-2026-10'
2026-10-19 12:58:50 +02:00
Linus Rath
62c6a3666a
fix: keep the quote containment styles in the editor and out of the sent mail
2026-10-19 01:44:29 +02:00
Linus Rath
29b33eb46c
fix: show attachment names without directional override characters
2026-10-19 01:32:30 +02:00
Linus Rath
ff98865f90
fix: keep a quoted original from painting over the composer with a fixed-position overlay
2026-10-19 01:15:39 +02:00
Linus Rath
bf64f4d48a
fix: leave oversized winmail.dat and embedded message parts as attachments instead of decoding them on open
2026-10-19 01:15:05 +02:00
Linus Rath
29cb6b7f61
fix: keep a crafted style attribute or read-receipt header from freezing the message view
2026-10-19 00:54:24 +02:00
Linus Rath
aeb2aeda66
fix: stop a click on a mention chip from opening the mailto handler in Firefox
2026-10-19 00:47:05 +02:00
Linus Rath
38c983a886
fix: open the mention card on click and show on hover that the chip is clickable
2026-10-19 00:38:01 +02:00
Linus Rath
eb18a13878
feat: show the contact card for @mentions in the composer and in received mail
2026-10-18 18:23:45 +02:00
Linus Rath
bfe98b49a0
fix: act on the clicked row when another account has a message with the same id (GHSA-8x23-qw3w-mhrx)
2026-10-18 17:54:48 +02:00
Linus Rath
fbae8acfb8
feat: turn @mentions into chips with a hover card
2026-10-18 17:52:11 +02:00
Linus Rath
0ac7bcb385
feat: show the message list as columns with one-line conversation rows #262
2026-10-18 17:37:21 +02:00
Linus Rath
8791fa5176
feat: offer contacts in @ mentions and add the picked one as a recipient
2026-10-18 16:36:28 +02:00
Linus Rath
ea1d1e2870
fix: stop re-rendering every row when a search starts
2026-10-18 16:01:43 +02:00
Linus Rath
be06956398
test: cover the From pick when replying to another connected account
2026-10-18 14:39:59 +02:00
Linus Rath
811e175cd0
fix: tell today's mail by the time zone setting in the sender line #1259
2026-10-18 14:39:58 +02:00
Linus Rath
2f7873e756
test: update the inline image reply test for the current composer mocks
2026-10-18 14:39:07 +02:00
Linus Rath
402188a4d5
Merge pull request #1125 from guisea/fix/inline-attachments-reply-forward
...
fix(email-composer): normalize bracketed content-ids for inline reply/forward images
2026-10-18 14:38:13 +02:00
Linus Rath
7dd8e93949
Merge pull request #1270 from vixh/fix/multi-account-self-reply
...
fix: reply to a message from another connected account goes to that account
2026-10-18 14:34:22 +02:00
Linus Rath
58eff0e879
Merge pull request #1258 from HOLOEYE-JZ/feat/archive-feature-gate
...
feat: admin policy gate to turn off archiving #1257
2026-10-18 14:29:27 +02:00
Linus Rath
5411a9ef50
Merge pull request #1272 from Peterka35/fix/mark-as-read-delay-thread-expand
...
fix: mark shared conversations read on the owner account, and follow markAsReadDelay when expanding a conversation
2026-10-18 14:21:50 +02:00
Linus Rath
89001ededa
fix: open the reader's Move, Tag and Rules flyouts on the side with room #1261
2026-10-18 13:46:48 +02:00
Peterka35
bbc3c2123e
fix: follow markAsReadDelay when expanding a conversation or opening a Pro folder row
...
Expanding a conversation in the message list (row click, expand chevron,
or the `x` shortcut) and clicking a row in a Pro folder tab marked the
messages read straight away. They ignored "Mark as read: Never" and any
delay, which the reading pane and the conversation view follow.
Route them through one helper, scheduleAutoMarkAsRead: -1 never marks,
0 marks at once, any other value marks after that many milliseconds and
returns a cancel function.
- New store action autoMarkExpandedThreadAsRead keeps one pending timer
per thread key. Collapsing the thread, or collapsing all threads, drops
it. Both expansion paths (EmailList and the `x` handler in MailApp) use
it.
- MailApp's handleEmailSelect drops the pending mark of every expanded
thread other than the one the newly opened message belongs to, through
cancelAutoMarkThreadAsRead. Moving on with `j`/`k` or a click no longer
lets the delayed mark land on a conversation the user has left. The
thread stays expanded.
- ProFolderTabBody schedules the row mark through the helper and drops a
pending one when another row is opened or the tab unmounts.
2026-10-17 21:01:34 +02:00