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
Agent work order
@copilot @codex please implement this as a focused adapter lane after PR #1 lands or by branching from
seed/agentterm-chatops-coreif 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
AgentTermAdapterboundary.EventStore.configs/agent-term.example.jsonshape or a minimal compatible subset.Non-goals
cli.py.Validation
ruff check . pytest