feat: summon on a mention of a role this account holds #924
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!924
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-866-role-mention-summons"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A member who @s the agent's role is addressing the agent. Only a mention of the account itself summoned.
What changed
mentionsBotnow also readsMentionRolesoff the Gateway payload against the roles Discord reports for this account in that guild.@everyonedoes not summon. Its role id is the guild's and every member holds it, so an announcement would otherwise address every agent in the channel. This is the one part with a real blast radius, and it has its own test.GuildCreatewithoutGUILD_MEMBERS. A state miss falls back to oneGuildMemberREST read written back to state, so a guild costs at most one lookup and then none.The access-policy question, which is the one #127 is about
Nothing downstream changes. A role mention is a message in a channel: same
access.Evaluate, same allowlist, same admission budget keyed onorigin.Key(). That is what separates this from the slash-command path, which bypasses the mention gate by construction.docs/access-policy.reference.yamlstates that a reader must be able to enumerate every summon path from it rather than from the code, and it listed six. It now lists seven. Leaving it would have made that file read as authoritative while being incomplete, which is the failure #127 describes.Tests
rolemention_test.go: a held role summons, another role does not,@everyonedoes not, and an ordinary message reads no member.Mutation: removing the
@everyoneguard failsTestAnEveryoneMentionDoesNotSummon. Verified.just gatePASS.closes #866