Verified on the local dev homeserver with Playwright (scripts/dev-homeserver.sh), capturing every request to /typing/ and /receipt/ while typing in the main composer and in the…
Verified on the local dev homeserver with Playwright (scripts/dev-homeserver.sh), capturing every request to /typing/ and /receipt/ while typing in the main composer and in the…
From the #141 verification: each thread read receipt is POSTed twice for the same event (observed 4 /receipt/ requests for 2 events, identical bodies). ThreadPanel.tsx:150-176 runs…
From #163: media posted inside threads never appears in the Media Gallery — thread replies are partitioned out of the room timeline by the SDK (room.partitionThreadedEvents), so neither the…
Reproduced and fixed — d929143f
Reproduction (Playwright against a local Synapse, scripts/dev-homeserver.sh + scripts/dev-seed.py, 400-message room with 40 images):
Built and verified — f528e5e4
Facts from the raw sources (not summaries): matrix.to/src/open/clients/Cinny.js hard-codes https://app.cinny.in/ and emits ?via=a,b; Element.js is the…
Research findings (2026-09-17)
What Lotus produces today
Four places copy a link, all through src/app/plugins/matrix-to.ts and all https://matrix.to/#/…:
Root cause (confirmed in code, 2026-09-17)
The gallery paginates the room's live timeline — the very object the message list is rendering:
// src/app/features/room/MediaGallery.tsx:…
Already implemented upstream: RoomTimeline.tsx sets focusItem.highlight when jumping to an event (permalink, search result, reply click) and Message renders the highlight state. Nothing to…