Skip to content

Implement Matrix adapter with E2EE posture and bridge metadata preservation #2

Description

@mdheller

Agent work order

@copilot @codex please implement this as a focused adapter lane after PR #1 lands or by branching from seed/agentterm-chatops-core if instructed.

Goal

Implement the first live Matrix adapter for AgentTerm.

Context

AgentTerm is Matrix-first. Slack/Discord are bridge targets, not the canonical substrate. The adapter must preserve Matrix event metadata rather than flattening room messages into plain chat text.

Required scope

  • Read/write Matrix room events behind the AgentTermAdapter boundary.
  • Preserve room ID, alias, event ID, sender MXID, thread/root event where available, membership changes, redactions, bridge metadata, and encryption state.
  • Surface encrypted-room posture before any sensitive context is released to agents.
  • Store normalized events through EventStore.
  • Add config loading from configs/agent-term.example.json shape or a minimal compatible subset.
  • Add tests using fake Matrix payloads; do not require a live homeserver in CI.

Non-goals

  • Do not implement Slack/Discord first.
  • Do not hardwire Matrix SDK objects into cli.py.
  • Do not leak encrypted-room content when posture is unknown.

Validation

ruff check .
pytest

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions