Skip to content

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

@mdheller

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

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