The transcript records a message id and a reply reference #44

Merged
paulhitt merged 1 commits from feat/group-messages-carry-a-mid into main 2026-09-02 19:50:47 +00:00
paulhitt commented 2026-09-02 12:14:17 +00:00 (Migrated from gitlab.com)

The wire always carried both and Session.Line never stored them.
Content.groupText has taken a messageId since §6.9 shipped and parse
reads it back — the transcript was where it stopped. So nothing here
could name an earlier message: no replies to resolve, no reactions to
fold, no edits to apply. All three were "codec done" and none worked.

A reply from the iPhone app arrived as a bare message with the quote
silently removed, which is worse than the missing id: the reader had no
way to know anything had been dropped.

Also fixes a real bug in sendGroup. It built the envelope twice —
once to send, once for the outbox — so an id minted inside either would
differ between them, and a member who was offline would eventually
receive a DIFFERENT message from everybody else, which nothing could
reconcile with a reply or a reaction. One id, minted by the caller, used
by both.

Both fields written only when present: a null on every message would
grow the transcript for nothing and make "no id" indistinguishable from
"an id of nothing".

Refs paulhitt/flamenet-messenger-ios#58, #10

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

The wire always carried both and Session.Line never stored them. Content.groupText has taken a messageId since §6.9 shipped and parse reads it back — the transcript was where it stopped. So nothing here could name an earlier message: no replies to resolve, no reactions to fold, no edits to apply. All three were "codec done" and none worked. A reply from the iPhone app arrived as a bare message with the quote silently removed, which is worse than the missing id: the reader had no way to know anything had been dropped. Also fixes a real bug in sendGroup. It built the envelope twice — once to send, once for the outbox — so an id minted inside either would differ between them, and a member who was offline would eventually receive a DIFFERENT message from everybody else, which nothing could reconcile with a reply or a reaction. One id, minted by the caller, used by both. Both fields written only when present: a null on every message would grow the transcript for nothing and make "no id" indistinguishable from "an id of nothing". Refs paulhitt/flamenet-messenger-ios#58, #10 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
paulhitt commented 2026-09-02 12:14:18 +00:00 (Migrated from gitlab.com)

assigned to @paulhitt

assigned to @paulhitt
paulhitt commented 2026-09-02 19:50:36 +00:00 (Migrated from gitlab.com)

added 17 commits

  • bf3274e6...0dec0299 - 16 commits from branch main
  • 3b7e69c0 - The transcript records a message id and a reply reference

Compare with previous version

added 17 commits <ul><li>bf3274e6...0dec0299 - 16 commits from branch <code>main</code></li><li>3b7e69c0 - The transcript records a message id and a reply reference</li></ul> [Compare with previous version](/paulhitt/flamenet-messenger-android/-/merge_requests/17/diffs?diff_id=2000739698&start_sha=bf3274e6ee880b717094bc3e778d54fc51c209c0)
paulhitt commented 2026-09-02 19:50:48 +00:00 (Migrated from gitlab.com)

mentioned in commit 397f4fab04

mentioned in commit 397f4fab0486249d83c80af8bf6ae40e29e85db6
paulhitt (Migrated from gitlab.com) merged commit 397f4fab04 into main 2026-09-02 19:50:48 +00:00
paulhitt commented 2026-09-09 19:01:52 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
Sign in to join this conversation.