fix: Remove Matrix integration — notifications move to forge + OpenClaw (#732)

Remove all Matrix/Dendrite infrastructure:
- Delete lib/matrix_listener.sh (long-poll daemon), lib/matrix_listener.service
  (systemd unit), lib/hooks/on-stop-matrix.sh (response streaming hook)
- Remove matrix_send() and matrix_send_ctx() from lib/env.sh
- Remove MATRIX_HOMESERVER auto-detection, MATRIX_THREAD_MAP from lib/env.sh
- Remove [matrix] section parsing from lib/load-project.sh
- Remove Matrix hook installation from lib/agent-session.sh
- Remove notify/notify_ctx helpers and Matrix thread tracking from
  dev/dev-agent.sh and action/action-agent.sh
- Remove all matrix_send calls from dev-poll.sh, phase-handler.sh,
  action-poll.sh, vault-poll.sh, vault-fire.sh, vault-reject.sh,
  review-poll.sh, review-pr.sh, supervisor-poll.sh, formula-session.sh
- Remove Matrix listener startup from docker/agents/entrypoint.sh
- Remove append_dendrite_compose() and setup_matrix() from bin/disinto
- Remove --matrix flag from disinto init
- Clean Matrix references from .env.example, projects/*.toml.example,
  formulas/*.toml, AGENTS.md, BOOTSTRAP.md, README.md, RESOURCES.md,
  PHASE-PROTOCOL.md, and all agent AGENTS.md/PROMPT.md files

Status visibility now via Codeberg PR/issue activity. Human interaction
via vault items through forge. Proactive alerts via OpenClaw heartbeats.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
openhands 2026-03-26 14:53:56 +00:00
parent 7996bb6c06
commit 23949083c0
43 changed files with 73 additions and 1157 deletions

View file

@ -6,7 +6,7 @@
#
# Trigger: action issue created by planner or any formula.
# The action-agent picks up the issue, executes these steps, writes a draft
# to vault/outreach/{platform}/drafts/, notifies the human via Matrix,
# to vault/outreach/{platform}/drafts/, notifies the human via the forge,
# and closes the issue.
#
# YAML front matter in the dispatching action issue:
@ -150,21 +150,17 @@ Write the drafted content to the outreach directory, commit, and push.
[[steps]]
id = "notify-human"
title = "Notify human via Matrix"
title = "Notify human and create PR"
needs = ["write-draft"]
description = """
Notify the human, create a PR, and hand off to the orchestrator for CI.
Create a PR for the draft and hand off to the orchestrator for CI.
1. Read saved state:
DRAFT_FILE=$(cat /tmp/rent-a-human-path)
DRAFT_TITLE=$(cat /tmp/rent-a-human-title)
BRANCH=$(cat /tmp/rent-a-human-branch)
2. Send the Matrix notification:
source "$FACTORY_ROOT/lib/env.sh"
matrix_send "rent-a-human" "New {{platform}} {{action_type}} draft ready: ${DRAFT_TITLE}"
3. Create a PR for the draft:
2. Create a PR for the draft:
PR_RESPONSE=$(curl -sf -X POST \
-H "Authorization: token ${FORGE_TOKEN}" \
-H "Content-Type: application/json" \

View file

@ -8,12 +8,12 @@
#
# Key differences from planner/gardener:
# - Runs every 20min — lightweight health check
# - Primarily READS state, rarely WRITES (no PRs, just Matrix + journal)
# - Primarily READS state, rarely WRITES (no PRs, just journal)
# - Checks vault state for pending procurement items
# - Conversation memory via Matrix thread and journal
# - Conversation memory via journal
name = "run-supervisor"
description = "Factory health monitoring: assess metrics, fix issues, report via Matrix, write journal"
description = "Factory health monitoring: assess metrics, fix issues, write journal"
version = 1
model = "sonnet"
@ -174,20 +174,16 @@ needs = ["health-assessment"]
[[steps]]
id = "report"
title = "Post health summary to Matrix"
title = "Log health summary"
description = """
Post a status summary to Matrix. Use the matrix_send function:
source "$FACTORY_ROOT/lib/env.sh"
matrix_send "supervisor" "<message>"
Log a status summary to the journal.
### When everything is healthy
Post a brief "all clear" only if the PREVIOUS run had alerts (check journal).
Do NOT post "all clear" every 20 minutes that would be noise.
Log a brief "all clear" only if the PREVIOUS run had alerts (check journal).
Do NOT log "all clear" every 20 minutes that would be noise.
### When there are findings
Post a summary grouped by priority:
matrix_send "supervisor" "Supervisor health check:
Log a summary grouped by priority with:
Fixed:
- <what was auto-fixed>
@ -195,18 +191,12 @@ Post a summary grouped by priority:
- [P2] <description>
- [P3] <description>
Status: RAM=<X>MB Disk=<Y>% Load=<Z>"
Status: RAM=<X>MB Disk=<Y>% Load=<Z>
### When vault items were filed (P0-P2 unresolved)
Note the vault items in the status summary:
matrix_send "supervisor" "Supervisor health check:
Note the vault items in the status summary.
Filed vault items:
- vault/pending/<id>.md <summary>
Status: RAM=<X>MB Disk=<Y>% Load=<Z>"
Keep messages concise. Do not post identical messages to what was posted
Keep messages concise. Do not log identical messages to what was logged
in the previous run (check journal for prior messages).
"""
needs = ["decide-actions"]