Planning
- Milestone: Phase 3
- Priority: P2
- Size: M
- Estimate: 3 SP
Goal
Forward an existing room message to another room/conversation (Element-style Forward), including sane content sanitization.
Background — Forward vs Share (Element)
Research element-hq/element-web before implementation:
| Action |
Meaning in Element |
| Forward |
In-app: pick target room(s), send a new event with copied/sanitized content from an existing message. Strips relations (m.relates_to), recalculates/strips m.mentions so context does not leak (PR #30884, ForwardDialog). |
| Share |
Broader: e.g. /share?msg= route to compose new text/HTML/markdown into Matrix via the same room picker (PR #29874); also room invite links / matrix.to — not the same as forward. |
This issue covers Forward only. External/share-extension flows → #106.
Scope
- Forward action on messages (action bar / menu).
- Target room picker (joined rooms; filter spaces vs DMs as needed).
- Content transform before send (strip reply/thread relations; mention sanitization per Element approach).
- Support text first; media/location forward as follow-up in same issue or noted stretch.
- i18n EN/DE.
Branch
feature/message-forward
Acceptance Criteria
Test Checklist
Unit
Manuell / E2E
Notes
- Spike: read Element
ForwardDialog + transformEvent helpers first.
Epic
Sub-issue of #3 (Phase 3).
Planning
Goal
Forward an existing room message to another room/conversation (Element-style Forward), including sane content sanitization.
Background — Forward vs Share (Element)
Research element-hq/element-web before implementation:
m.relates_to), recalculates/stripsm.mentionsso context does not leak (PR #30884, ForwardDialog)./share?msg=route to compose new text/HTML/markdown into Matrix via the same room picker (PR #29874); also room invite links / matrix.to — not the same as forward.This issue covers Forward only. External/share-extension flows → #106.
Scope
Branch
feature/message-forwardAcceptance Criteria
m.mentions).Test Checklist
Unit
m.relates_to, handlesm.mentions.Manuell / E2E
@mentiondoes not ping wrong user in target room.Notes
ForwardDialog+transformEventhelpers first.Epic
Sub-issue of #3 (Phase 3).