echo6-docs/hookshot_room_targeting_discovery.md
echo6-autocommit a5299d09a2 auto: docs sync 2026-06-15T20:08:44+00:00
Files changed: .obsidian/workspace.json PHASE6_DECISION.md PLAN.md appservices.md archive_receiver_discovery.md archivist.md archivist_discovery.md argus.md docs/hardware/environment.md docs/services/services.md docs/software/recon.md echo6-landing-page-data-export.md hookshot_deployment_discovery.md hookshot_e2ee_discovery.md hookshot_payload_discovery.md hookshot_room_targeting_discovery.md matrix_host.md mautrix_signal.md pp_comparison.json projects/headscale-full-deployment.md projects/utility-caddy-initial-setup.md projects/vaultwarden-deployment.md runbooks/add-peertube-channel.md runbooks/authentik-oidc-application.md runbooks/proxmox-create-ubuntu-vm.md runbooks/proxmox-onboard-node.md runbooks/recon-operations.md runbooks/recon-service-integration.md scribd_session.json synapse.md synapse_retention_discovery.md
2026-06-15 20:08:44 +00:00

3.1 KiB

Hookshot Room Targeting Discovery

Generated: 2026-04-09 (Phase 6.0, Questions 5 + 7)

NOTE: Hookshot is BLOCKED for this use case (E2EE + MAS incompatibility).

This file documents targeting mechanics for completeness.

Per-Room vs Wildcard Configuration

Per-Room Model

Hookshot uses a per-room connection model. Each outbound webhook is stored as a Matrix room state event (type: uk.half-shot.matrix-hookshot.generic.hook).

To add an outbound webhook to a room:

  1. Invite hookshot bot to the room
  2. Create a webhook connection via bot command or state event
  3. Each room gets its own URL + auth token

NO Wildcard / All-Rooms Option

There is NO built-in wildcard, glob, or "all rooms the bot is in" option. Each room must be individually configured.

Static Connections (Config File)

Connections CAN be defined statically in config.yml:

connections:
  - connectionType: uk.half-shot.matrix-hookshot.generic.hook
    stateKey: archive-hook
    roomId: "!XUeWZuPdWQQnUYLJBJ:echo6.co"
    state:
      name: Signal Archive

But each roomId must be specified explicitly. No pattern matching.

Space Membership

No space-following option. Hookshot cannot be configured to "archive all rooms in the Signal Bridge space."

Workflow for Auto-Created Portals

Given that mautrix-signal auto-creates portals on incoming messages:

  1. Hookshot would need to be invited to each new portal
  2. An outbound webhook connection would need to be created per portal
  3. No automation path exists for this within hookshot itself
  4. Would require external automation:
    • Monitor Synapse for new rooms matching bridge namespace
    • Invite hookshot bot
    • Create webhook connection via hookshot API or state event
    • This is essentially building the custom bot that Phase 6 originally proposed

Current Portal List (Question 7)

6 portals as of 2026-04-09:

Signal Group Matrix Room ID Type
(DM 1) !tSvEWQcXxJItLGAXDr:echo6.co dm
(DM 2) !hiDxGpfsYESpVDQXKW:echo6.co dm
COMMS LP group !XUeWZuPdWQQnUYLJBJ:echo6.co group
Left Preppers !JfxIRowNkLbBlNPjVX:echo6.co group
Liberal_Preppers_OG !RvWNPmcKtPImhKPYcA:echo6.co group
The Weekly Topic !vBXtbgfYcptEuimrmn:echo6.co group

More portals will auto-create as messages arrive in other Signal groups.

Can Hookshot Join Existing Rooms?

Yes — hookshot can be invited to existing rooms after the fact, not just newly created ones. The outbound webhook connection is created per-room regardless of when the room was created. No migration path needed beyond:

  1. Invite bot
  2. Create connection
  3. Events forward from that point (no backfill)

Backfill Limitation

Hookshot outbound webhooks only forward NEW events from the point of connection. Historical events already in the room are NOT replayed. Any archive tool that needs historical data must use Synapse's admin API or database access.

Source