Skip to content

fix(composer): serialize sends and snapshot drafts across the composer - #1567

Queued
eleboucher wants to merge 3 commits into
stack/5-extract-composer-messagefrom
stack/6-serialize-composer-sends
Queued

fix(composer): serialize sends and snapshot drafts across the composer#1567
eleboucher wants to merge 3 commits into
stack/5-extract-composer-messagefrom
stack/6-serialize-composer-sends

Conversation

@eleboucher

@eleboucher eleboucher commented Aug 1, 2026

Copy link
Copy Markdown
Member

Description

sends weren't serialized so a slow one could interleave with the next, and the editor cleared before the send resolved so a failure lost your draft.

sends go through a per-composer queue now, draft and reply are snapshotted on submit and put back if it fails.

attachments, polls, location and audio all send through one onSubmit so they share the queue. location and poll dialogs show errors and disable while sending.

sendDelayedMessage takes an event type instead of hardcoding m.room.message.

Fixes #

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

AI disclosure:

  • Partially AI assisted (clarify which code was AI assisted and briefly explain what it does).
  • Fully AI generated (explain what all the generated code does in moderate detail).

@eleboucher
eleboucher force-pushed the stack/6-serialize-composer-sends branch from 3a6b501 to 31fa012 Compare August 1, 2026 15:33
@eleboucher
eleboucher force-pushed the stack/6-serialize-composer-sends branch 2 times, most recently from 0584d76 to c6a21a2 Compare August 4, 2026 09:26
@eleboucher
eleboucher force-pushed the stack/6-serialize-composer-sends branch from c6a21a2 to 72eec74 Compare August 4, 2026 12:02
@eleboucher
eleboucher force-pushed the stack/6-serialize-composer-sends branch from 72eec74 to 3ff80a0 Compare August 5, 2026 22:11
@7w1
7w1 force-pushed the stack/6-serialize-composer-sends branch from 3ff80a0 to 41c8be5 Compare August 6, 2026 02:13
@7w1
7w1 force-pushed the stack/6-serialize-composer-sends branch from 41c8be5 to b26d5c9 Compare August 6, 2026 02:29
@7w1
7w1 force-pushed the stack/6-serialize-composer-sends branch from b26d5c9 to f994ac2 Compare August 6, 2026 02:36
@7w1
7w1 force-pushed the stack/6-serialize-composer-sends branch from f994ac2 to 4f1f2ef Compare August 6, 2026 02:46
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Deploying with  Cloudflare Workers  Cloudflare Workers

Status Preview URL Commit Alias Updated (UTC)
✅ Deployment successful! https://pr-1567-sable.raspy-dream-bb1d.workers.dev 31e30c7 pr-1567 Thu, 06 Aug 2026 03:13:26 GMT

@7w1
7w1 added this pull request to the merge queue Aug 6, 2026
Any commits made after this event will not be merged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants