Goal
Let room members pin important messages and browse them from the room header, similar to Element and Discord.
Scope
- Read and display pinned messages for the active room
- Open a pinned-messages panel from the room header toolbar
- Pin and unpin messages from the message action bar when room power levels allow it
- Jump from a pinned entry to the message in the main timeline
- English and German UI strings
- Replace the current disabled pin placeholder in
ChatRoomHeaderToolbar
Out of scope for this issue:
- Premium-only features
- Pinned message search or filters beyond a simple chronological list
Branch
feature/pinned-messages
Acceptance Criteria
Test Checklist
Unit
Integration
E2E
Notes
- Shipped:
matrixRoomPinnedEvents, matrixPinnedMessageEntries, ChatPinnedMessagesPanel, header toolbar + action bar pin/unpin, jumpToMessageInRoom with timeline pagination, EN/DE i18n, unit/component/E2E coverage.
- Pin time in the list uses the pinned message's timestamp (not per-pin state history).
- Follow the existing room header toolbar and right-sidebar patterns used for threads and members.
- Matrix room state
m.room.pinned_events is the expected protocol baseline; align with Element behavior where practical.
Goal
Let room members pin important messages and browse them from the room header, similar to Element and Discord.
Scope
ChatRoomHeaderToolbarOut of scope for this issue:
Branch
feature/pinned-messagesAcceptance Criteria
Test Checklist
Unit
Integration
E2E
Notes
matrixRoomPinnedEvents,matrixPinnedMessageEntries,ChatPinnedMessagesPanel, header toolbar + action bar pin/unpin,jumpToMessageInRoomwith timeline pagination, EN/DE i18n, unit/component/E2E coverage.m.room.pinned_eventsis the expected protocol baseline; align with Element behavior where practical.