-
Notifications
You must be signed in to change notification settings - Fork 2
Add first-class operator or human principals for Discord ingress #50
Description
Summary
Clawdapus currently abstracts Discord bot identity through handles, but not human/operator ingress. If a pod wants humans to be able to mention traders in a Discord guild, authors still have to wire raw user IDs into channel://discord surfaces.
That is too low-level for the common “operators can talk to agents” case.
What Happened
In a live trading-desk pod:
- bot-to-bot mentions worked
- human mentions from the operator did not create a session
- the generated OpenClaw config only included the peer bot IDs in
channels.discord.guilds.<guild>.users
To make the operator able to mention traders, we had to explicitly add the human Discord user ID plus every bot ID to the guild allowlist.
Why This Feels Wrong
Today the abstraction boundary is:
handles: bot IDs, usernames, guild membership, mention patterns, peer bot allowlistchannelsurfaces: human routing ACLs via raw guild/channel/user IDs
That means a pod author has to know and repeat:
- the operator’s raw Discord user ID
n- every peer bot ID - the guild ID
- the channel ID
for what is conceptually just “let the desk operator talk to the traders in trading-floor”.
Expected
Clawdapus should have a higher-level way to express this. Examples:
- a first-class
operators/humans/principalsblock at pod level - a way to merge those principals into generated Discord guild users automatically
- a simpler channel-surface knob like
allow_operators: true - named principals instead of raw user IDs everywhere
Benefit
This would eliminate a lot of brittle Discord-specific config and make the common operator-to-agent path feel like an actual pod abstraction instead of raw OpenClaw plumbing.