diff --git a/CLAUDE.md b/CLAUDE.md index 312b5c9..e7f1f5a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -208,9 +208,12 @@ git branch -d 003-feature-name ## Known Issues - olm-3.2.16 marked insecure (permitted via nixpkgs.config.permittedInsecurePackages) -- conduwuit log level set to "debug" (intended for troubleshooting, consider reverting to "info") - Fresh database required after conduwuit version upgrades (wipe /var/lib/matrix-continuwuity/db/) +## Resolved Issues +- ✅ conduwuit debug logging (reverted to "info" 2025-10-26) +- ✅ Manual sender_localpart fix (automated in mautrix-slack.nix 2025-10-26) + ## Testing Guidelines - Test message latency: Should be <5 seconds (FR-001, FR-002) - Test reactions, edits, file attachments @@ -219,42 +222,25 @@ git branch -d 003-feature-name -## Manual Configuration Workarounds +## Configuration Notes -### mautrix-slack Registration File Fix (KNOWN ISSUE) +### mautrix-slack Registration File Fix (RESOLVED) -**Problem:** The bridge's registration generator creates a random `sender_localpart` instead of using the configured `bot.username` value. +**Issue:** The bridge's registration generator (`-g` flag) creates a random `sender_localpart` instead of using the configured `bot.username` value. -**Current Manual Fix (Required on Fresh Deploy):** -```bash -# After bridge service starts and generates registration -ssh root@45.77.205.49 'systemctl stop mautrix-slack' +**Root Cause:** mautrix-slack generates registration independently of `config.yaml` settings. -# Edit registration file to fix sender_localpart -ssh root@45.77.205.49 "sed -i 's/^sender_localpart: .*/sender_localpart: slackbot/' /var/lib/matrix-appservices/mautrix_slack_registration.yaml" +**Solution:** ✅ Automated fix implemented in `modules/mautrix-slack.nix` (lines 339-341) -# Re-register appservice in Matrix admin room -# In Element, send to admin room: -# !admin appservices unregister slack -# !admin appservices register -# - -# Restart homeserver to load new registration -ssh root@45.77.205.49 'systemctl restart matrix-continuwuity' - -# Start bridge -ssh root@45.77.205.49 'systemctl start mautrix-slack' -``` - -**Root Cause:** mautrix-slack's `-g` flag generates registration independently of `config.yaml` settings. - -**Potential Permanent Fix:** Patch `modules/mautrix-slack.nix` to post-process registration file after generation: +The module now automatically patches the sender_localpart during registration generation: ```nix # In ExecStartPre, after registration generation: -${pkgs.gnused}/bin/sed -i 's/^sender_localpart: .*/sender_localpart: ${cfg.appservice.senderLocalpart}/' "$REG_PATH" +${pkgs.gnused}/bin/sed -i "s/^sender_localpart: .*/sender_localpart: ${cfg.appservice.senderLocalpart}/" "$REG_PATH" ``` -**Impact:** Without this fix, registration sender_localpart won't match bridge config, causing authentication failures. +**Status:** No manual intervention required on fresh deploys. The fix is applied automatically during service startup. + +**Verification:** Tested 2025-10-26 - registration file correctly generated with `sender_localpart: slackbot` matching configuration. --- diff --git a/configurations/dev-vps.nix b/docs/examples/alternative-deployments/dev-vps.nix similarity index 100% rename from configurations/dev-vps.nix rename to docs/examples/alternative-deployments/dev-vps.nix diff --git a/configurations/vultr-dev.nix b/docs/examples/alternative-deployments/vultr-dev.nix similarity index 100% rename from configurations/vultr-dev.nix rename to docs/examples/alternative-deployments/vultr-dev.nix diff --git a/hosts/ops-jrz1.nix b/hosts/ops-jrz1.nix index f45164c..7f5587d 100644 --- a/hosts/ops-jrz1.nix +++ b/hosts/ops-jrz1.nix @@ -11,8 +11,6 @@ # Matrix platform modules ../modules/matrix-continuwuity.nix ../modules/mautrix-slack.nix - ../modules/mautrix-whatsapp.nix - ../modules/mautrix-gmessages.nix ../modules/dev-services.nix ../modules/security/fail2ban.nix ../modules/security/ssh-hardening.nix diff --git a/modules/dev-services.nix b/modules/dev-services.nix index 3403e41..bea7e71 100644 --- a/modules/dev-services.nix +++ b/modules/dev-services.nix @@ -116,7 +116,7 @@ in allow_federation = false database_backend = "rocksdb" database_path = "/var/lib/matrix-continuwuity/db/" - log = "debug" + log = "info" admin_room_tag = "m.server_notice" EOF ''; diff --git a/modules/mautrix-slack.nix b/modules/mautrix-slack.nix index f77f8bb..1eea0d8 100644 --- a/modules/mautrix-slack.nix +++ b/modules/mautrix-slack.nix @@ -335,6 +335,11 @@ PY if [ ! -f "$REG_PATH" ]; then mkdir -p $(dirname "$REG_PATH") ${cfg.package}/bin/mautrix-slack -c config.yaml -g -r "$REG_PATH" + + # Fix sender_localpart to match config (bridge generates random value) + # See: https://github.com/mautrix/slack/issues - registration -g ignores config.yaml + ${pkgs.gnused}/bin/sed -i "s/^sender_localpart: .*/sender_localpart: ${cfg.appservice.senderLocalpart}/" "$REG_PATH" + chown ${cfg.user}:matrix-appservices "$REG_PATH" chmod 640 "$REG_PATH" fi diff --git a/specs/002-slack-bridge-integration/quickstart.md b/specs/002-slack-bridge-integration/quickstart.md index cfb74dd..4940b14 100644 --- a/specs/002-slack-bridge-integration/quickstart.md +++ b/specs/002-slack-bridge-integration/quickstart.md @@ -4,6 +4,8 @@ **Target Environment**: ops-jrz1 VPS (45.77.205.49) **Estimated Time**: 30-45 minutes +**✅ DEPLOYMENT STATUS**: This bridge was successfully deployed on 2025-10-26. For actual troubleshooting steps and manual fixes required, see `docs/worklogs/2025-10-26-slack-bridge-deployment-complete.org` and manual workarounds in `CLAUDE.md`. This guide represents the ideal deployment path. + ## Overview This guide provides step-by-step instructions for deploying the mautrix-slack bridge from scratch. Follow these steps in order to achieve a working Slack↔Matrix bridge. @@ -63,10 +65,10 @@ cat /run/current-system/configuration.nix | grep -A 20 "mautrix-slack" systemctl list-unit-files | grep mautrix-slack ``` -**Current State** (as of 2025-10-22): +**Current State** (as of 2025-10-26): - Module exists: `modules/mautrix-slack.nix` -- Configured for "delpadtech" workspace (needs update) -- Service exits with code 11 (missing credentials) +- Configured for "chochacho" workspace +- Service running and authenticated via Socket Mode --- diff --git a/specs/002-slack-bridge-integration/tasks.md b/specs/002-slack-bridge-integration/tasks.md index f0c757c..e31ac4d 100644 --- a/specs/002-slack-bridge-integration/tasks.md +++ b/specs/002-slack-bridge-integration/tasks.md @@ -1,5 +1,7 @@ # Tasks: Matrix-Slack Bridge Integration +**⚠️ DEPLOYMENT STATUS**: This feature was deployed successfully on 2025-10-26 following a manual troubleshooting process rather than this task list. For the actual deployment path taken, see `docs/worklogs/2025-10-26-slack-bridge-deployment-complete.org`. This task list represents the original planned approach and is preserved for reference. + **Input**: Design documents from `/specs/002-slack-bridge-integration/` **Prerequisites**: plan.md, spec.md, research.md, data-model.md, contracts/, quickstart.md