matrix-org / matrix-org/matrix-hookshot

Activity sidepanel widget (gitter-like)

Open
#631 3 comments 16 reactions 0 assignees View on GitHub
T-Enhancement Widgets / Provisioning
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:

![image](https://user-images.githubusercontent.com/2072976/212896791-fa272b76-5859-4c1c-8a99-ceb589e9ae47.png)

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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.