Discord — converse, capture, restitute
The Discord integration binds one or more authorized channels to your OPERA workspace. Strict scope: conversation, capture, restitution, engagement proposals. Never an external action from Discord — the bot's only capability is replying in the channel the message came from.
Install
- Create a bot on the Discord developer portal and enable the Message Content intent.
- Invite it to your server, note the authorized channel ids.
- Export the token (never in a git-tracked file) and declare the channels:
export MEMIA_DISCORD_TOKEN="<bot token>"
memia discord exemple-config > discord-channels.json
# edit: channelId, name, "capture": true for inbox-style channels
memia discord run --root ~/MEMIA --config discord-channels.json # Node ≥ 22
Inside a channel
memia restitution # ⏳ due · 📌 no date · ❓ doubtful
memia engagements # open engagements
memia recherche contract # OPERA search
memia confirmer eng-… 2026-09-01
memia refuser eng-…
Any other message in a channel with "capture": true is analyzed locally: score > 80 → detecte engagement (card posted); 40-80 → proposal to confirm; < 40 → silence, journal only. Provenance (channel #inbox) stays on every entity.
Verifiable isolation: an undeclared channel = total silence. The bot never posts anywhere but the message's channel. The logic is tested offline (injected transport); the WebSocket transport is validated on your machine in one command — nothing is promised before that.