matrix-org / matrix-org/matrix-hookshot
Activity sidepanel widget (gitter-like)
- Dominant language
- TypeScript
- Stars
- 450
- Forks
- 95
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 23
Description
We'd like to aim to have something a bit similar to:

To have parity with Gitter. Hookshot already handles incoming notifications from a variety of services and posts them into rooms, but this feature would be about showing a filtered timeline in the side-panel, for specific events. One way of achieving this could be a Widget that listens for the specific timeline events for hookshot messages, and presents them in a nice way.
The way I'd go about this would be:
- Create a new widget type in hookshot "activity" which is created by a command (for now, we could add a button in the room config widget to spawn one also).
- The widget asks to listen for m.room.message events in the room.
- The widget will then listen for each message, and look for events containing hookshot event data, and then presents them in the side panel.
- We may need to ensure that we reliably posting this extra metadata in all notifications. We might, at this point in time, ensure that we're also sending extensible events.
- We may also need to find a way to show these events in the activity window *only*, which may be best handled by sending extensible events *without* fallbacks to prevent clients from rendering them.
Contributor guide
Research direction
Start by tracing the widget-creation command and the room config widget, then review how hookshot notifications carry event data. Done means an activity widget can be created, filters relevant hookshot messages, and presents them in the side panel without unwanted client rendering; verify that notifications consistently include the required metadata.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100