Migrated from LOTUS_TODO.md on 2026-09-17 (the file is now reference-only).
[Med] [desktop]Thread / invite quick-reply misroutes. The reply target is the coalescing tag — ${roomId}:${threadId} for thread replies, 'lotus-invites' for invites (ClientNonUIFeatures.tsx:471,192) — not a real room id, so mx.sendMessage(tag, …) fails silently (useTauriToastActions.ts:37). Body-click navigation is correct (uses path). Fix: pass the real roomId separately (e.g. data.roomId) and have the shim (lib.rsNOTIFICATION_BRIDGE) + toast.rs use it for the reply target; keep tag for coalescing. Invite toasts should also drop the reply box (nothing to reply to).
_Migrated from `LOTUS_TODO.md` on 2026-09-17 (the file is now reference-only)._
**[Med] [desktop]** **Thread / invite quick-reply misroutes.** The reply target is the coalescing `tag` — `${roomId}:${threadId}` for thread replies, `'lotus-invites'` for invites (`ClientNonUIFeatures.tsx:471,192`) — not a real room id, so `mx.sendMessage(tag, …)` fails silently (`useTauriToastActions.ts:37`). Body-click navigation is correct (uses `path`). Fix: pass the real `roomId` separately (e.g. `data.roomId`) and have the shim (`lib.rs` `NOTIFICATION_BRIDGE`) + `toast.rs` use it for the reply target; keep `tag` for coalescing. Invite toasts should also drop the reply box (nothing to reply to).
jared
added this to the Desktop 2026-Q4 milestone 2026-09-17 23:24:13 -04:00
Fixed in c1ae01b + cinny 3b6de2fd. The bridge now passes tag, roomId and threadId separately; the reply target is the real room id, never the coalescing tag. Thread replies go into the thread (m.thread relation). Invite toasts (no room id) get no reply box.
Verified in the real app with the real bridge script and a stubbed invoke:
room message → tag=roomId, roomId
thread reply → tag=room:thread, roomId, threadId
invite → tag=lotus-invites, no roomId
quick reply with threadId → sent with rel_type: m.thread to the right root
Fixed in `c1ae01b` + cinny `3b6de2fd`. The bridge now passes `tag`, `roomId` and `threadId` separately; the reply target is the real room id, never the coalescing tag. Thread replies go into the thread (`m.thread` relation). Invite toasts (no room id) get no reply box.
Verified in the real app with the real bridge script and a stubbed `invoke`:
- room message → `tag=roomId, roomId`
- thread reply → `tag=room:thread, roomId, threadId`
- invite → `tag=lotus-invites`, no `roomId`
- quick reply with `threadId` → sent with `rel_type: m.thread` to the right root
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Migrated from
LOTUS_TODO.mdon 2026-09-17 (the file is now reference-only).[Med] [desktop] Thread / invite quick-reply misroutes. The reply target is the coalescing
tag—${roomId}:${threadId}for thread replies,'lotus-invites'for invites (ClientNonUIFeatures.tsx:471,192) — not a real room id, somx.sendMessage(tag, …)fails silently (useTauriToastActions.ts:37). Body-click navigation is correct (usespath). Fix: pass the realroomIdseparately (e.g.data.roomId) and have the shim (lib.rsNOTIFICATION_BRIDGE) +toast.rsuse it for the reply target; keeptagfor coalescing. Invite toasts should also drop the reply box (nothing to reply to).Fixed in
c1ae01b+ cinny3b6de2fd. The bridge now passestag,roomIdandthreadIdseparately; the reply target is the real room id, never the coalescing tag. Thread replies go into the thread (m.threadrelation). Invite toasts (no room id) get no reply box.Verified in the real app with the real bridge script and a stubbed
invoke:tag=roomId, roomIdtag=room:thread, roomId, threadIdtag=lotus-invites, noroomIdthreadId→ sent withrel_type: m.threadto the right root