Skip to content

Keep wire speakers on unauthenticated sealed history - #227

Merged
itz4blitz merged 2 commits into
mainfrom
fix/legacy-saved-speaker-attribution
Nov 8, 2026
Merged

itz4blitz merged 2 commits into
mainfrom
fix/legacy-saved-speaker-attribution

Conversation

@itz4blitz

Copy link
Copy Markdown
Collaborator

What changed and why

Unauthenticated sealed cache hits (device-link archive / decrypt fallback) were clearing sender.id and labeling every row Saved message. continues() then treated those empty ids as the same speaker, so a back-and-forth DM rendered as one monologue under the chat title. Mapping now keeps the wire author for display (still saved_history, edits still blocked), and empty ids no longer group.

Type

  • fix

Platforms

  • windows
  • macos
  • linux

Proof

Scenario: e2e/scenarios/legacy-saved-speakers

Lab run:

Compatibility

Older servers unchanged. Client-only mapping of existing sealed history rows.

Risk and rollback

Wrong wire authors could show on unauthenticated history until MLS auth returns; edits stay blocked via saved_history. Revert this PR.

Release note

Encrypted history from a linked device keeps who said what instead of one Saved message wall.

itz4blitz and others added 2 commits November 7, 2026 13:30
Legacy/archive cache hits were clearing sender id to empty "Saved message", so continues() collapsed a back-and-forth DM into one monologue.

Co-authored-by: Cursor <cursoragent@cursor.com>
@itz4blitz
itz4blitz force-pushed the fix/legacy-saved-speaker-attribution branch from 7e3929b to 8745c13 Compare November 8, 2026 20:01
@itz4blitz
itz4blitz merged commit 220926f into main Nov 8, 2026
7 checks passed
@itz4blitz
itz4blitz deleted the fix/legacy-saved-speaker-attribution branch November 8, 2026 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant