From d345bc6cb876f2256d957ce834444792a38b886e Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 20 Jan 2026 15:00:19 -0800 Subject: [PATCH] docs: add worklog for musiclink matrix pivot --- .../2026-01-20-musiclink-matrix-pivot.org | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 docs/worklogs/2026-01-20-musiclink-matrix-pivot.org diff --git a/docs/worklogs/2026-01-20-musiclink-matrix-pivot.org b/docs/worklogs/2026-01-20-musiclink-matrix-pivot.org new file mode 100644 index 0000000..9c5842e --- /dev/null +++ b/docs/worklogs/2026-01-20-musiclink-matrix-pivot.org @@ -0,0 +1,43 @@ +#+TITLE: MusicLink Integration - Matrix Pivot and Testing +#+DATE: 2026-01-20 +#+KEYWORDS: musiclink, matterbridge, matrix, slack-socket-mode, bot-integration, mautrix-slack +#+COMMITS: 2 +#+COMPRESSION_STATUS: uncompressed + +* Session Summary +** Date: 2026-01-20 +** Focus Area: Integration of MusicLink bot into ops-jrz1 infrastructure + +* Accomplishments +- [X] Pivoted from direct Slack connection (Matterbridge RTM) to Matrix-mediated bridging due to Slack App Socket Mode requirement. +- [X] Configured `musiclink-matterbridge` to connect to Matrix as `@musiclink:clarun.xyz` via `[matrix]` protocol. +- [X] Registered `@musiclink:clarun.xyz` and granted Server Admin privileges via Conduwuit console to bypass invite-only restrictions (temporarily/workaround). +- [X] Successfully joined Matterbridge to the bot testing room `!whU7Geg7JPrBL5wHcW:clarun.xyz`. +- [X] Verified bot connectivity: MusicLink binary is connected to Matterbridge WebSocket. +- [X] Enabled outbound posting (`gateway.inout`) for the testing room. +- [X] Verified posting capability by sending messages (text and image events) to the room via Matrix API using the bot's token. + +* Key Decisions + +** Decision 1: Use Matrix as Universal Bus +- Context: Matterbridge (stable) does not support Slack Socket Mode, which our Slack App requires. `mautrix-slack` (already running) handles Slack <-> Matrix bridging perfectly. +- Rationale: Instead of fighting Matterbridge's Slack limitations, we connect MusicLink to Matrix. The flow becomes: `Slack User` -> `mautrix-slack` -> `Matrix Room` -> `Matterbridge` -> `MusicLink`. +- Impact: Solves the connectivity issue without code changes to MusicLink or custom Matterbridge builds. + +** Decision 2: Admin Privileges for Bot Join +- Context: The portal room bridging Slack is invite-only. We lacked an easy way to issue an invite from the bridge bot. +- Rationale: Granted `@musiclink` server admin rights (`user make-admin`) to allow it to join any room, bypassing the need for an explicit invite from the bridge. +- Impact: Bot successfully joined the room. (Note: Admin rights should be revoked later for least-privilege). + +* Problems & Solutions +| Problem | Solution | Learning | +|---------+----------+----------| +| `not_allowed_token_type` on Slack connection | Abandoned direct Slack connection in Matterbridge; switched to Matrix | Matterbridge's Slack RTM is incompatible with modern Socket Mode-only apps. | +| Bot couldn't join invite-only portal room | Used `conduwuit` admin console to make bot an admin, then joined via API | Admin privileges can bypass join restrictions on some homeservers/configurations. | +| Posted image links unfurled but didn't load | Attempted to upload to Media Repo, but source URLs were flaky (403/404) | Content hosting matters; direct uploads to Matrix Media Repo are reliable if the source download works. | + +* Next Steps +- [ ] Verify `MusicLink` logic: Does it correctly process music links sent in the room? +- [ ] Revoke admin privileges from `@musiclink:clarun.xyz` once it is stably in the required rooms. +- [ ] Resolve git access for `musiclink` flake input (currently using local path). +- [ ] Close related beads tasks.