Changelog
All notable changes to the Argon Bot API.
1.10.0
2026-06-05User Locale & GIF Messages
Added
User objects now carry an optional locale field — the user's current app language as a BCP-47 tag (e.g. "en", "ru", "ja"). Use it to reply in the user's language or pick a voice in calls. It reflects the user's live session choice (not persisted), can change between events, and may be null when unknown.
Added
IEvents locale is present on the user object in CommandInteraction, ControlInteraction, SelectInteraction, ModalSubmit, MemberJoin, MemberUpdate, PresenceUpdate, VoiceJoin, and VoiceLeave events
Added
IMessages Message senders now carry locale on the user object in MessageCreate events and message history
Added
IEvents CallIncoming event now includes a nullable fromLocale — the caller's language, for choosing a voice in calls
Added
IMessages New GIF message entity (type "gif") — messages can include GIFs with gifId, previewUrl, downloadUrl, width, height, fileId, and hmac
1.9.0
2026-04-26Voice State on Interactions
Added
New BotVoiceStateV1 DTO — contains channelId, joinedAt timestamp, and channel member state flags
Added
IEvents ControlInteraction event now includes nullable VoiceState — present when the interacting user is in a voice channel
Added
IEvents SelectInteraction event now includes nullable VoiceState
Added
IEvents ModalSubmit event now includes nullable VoiceState
Added
IEvents CommandInteraction event now includes nullable VoiceState
Changed
IEvents Contract updated for ControlInteraction, SelectInteraction, ModalSubmit, and CommandInteraction events (VoiceState field added)
1.8.0
2026-04-18Reactions
Added
IReactions New IReactions/v1 interface — add, remove, and list emoji reactions on messages
Added
IReactions POST /Add — add a reaction to a message (max 20 unique emoji per message)
Added
IReactions DELETE /Remove — remove the bot's own reaction from a message
Added
IReactions GET /List — list all reactions on a message with count and user preview
Added
IEvents New ReactionAdd event — fired when a user adds a reaction (requires Reactions intent)
Added
IEvents New ReactionRemove event — fired when a user removes a reaction (requires Reactions intent)
Added
IMessages Message history now includes reactions array with emoji, count, and user preview (up to 3 IDs)
Added
Reaction user preview — userIds array capped at 3 entries on the wire; use count field for the full total
Added
IReactions Rate limit: 60 requests/min
1.7.0
2026-04-14Control Archetype Constraints
Added
IMessages New requiredArchetypeId field on controls — restrict button/select interaction to members with a specific archetype
Added
IInteractions Controls sent via Reply and EditMessage now support requiredArchetypeId
Added
Backend enforcement: InteractWithControl and InteractWithSelect return ARCHETYPE_REQUIRED error when user lacks the required archetype
Added
Administrator bypass: users with ManageServer permission can always interact with archetype-constrained controls
Added
Client visibility hint: requiredArchetypeId can be used by clients to hide controls from users without the archetype
Changed
IMessages Contract hash updated (RequiredArchetypeId added to BotControlV1)
Changed
IInteractions Contract hash updated (RequiredArchetypeId added to BotControlV1)
1.6.0
2026-04-14Archetypes API & Events
Added
IArchetypes New IArchetypes/v1 interface — list and inspect archetypes (roles) in a space
Added
IArchetypes GET /List — list all visible archetypes with id, name, colour, isMentionable, isDefault
Added
IArchetypes GET /Get — get a single archetype by ID
Added
IArchetypes GET /ListMembers — list all members assigned to a specific archetype
Added
IArchetypes Permissions bitmask only exposed when bot has ManageArchetype entitlement
Added
IEvents New ArchetypeCreate event — fired when a new archetype is created in a space
Added
IEvents New ArchetypeUpdate event — fired when an archetype is modified in a space
Added
IArchetypes Rate limit added: 30 requests/min
1.5.0
2026-04-14Typing Indicators
Added
ITyping New ITyping/v1 interface — send typing indicators to channels
Added
ITyping POST /Start — trigger a typing indicator with optional kind (typing, thinking, uploading, searching)
Added
ITyping POST /Stop — explicitly stop the typing indicator (auto-expires after 8 seconds)
Added
IEvents New TypingStart event — fired when a user or bot starts typing in a channel
Added
IEvents New TypingStop event — fired when a user or bot stops typing in a channel
Added
ITyping Rate limit added: 60 requests/min
Added
Bot typing auto-stop — typing indicator automatically expires after 8 seconds if not refreshed
1.4.0
2026-04-13Selects, Modals & Interaction Lifecycle
Added
IInteractions POST /Ack — acknowledge an interaction, client shows brief confirmation
Added
IInteractions POST /Defer — defer an interaction, client shows loading state until bot follows up
Added
IInteractions POST /Modal — show a modal dialog with text inputs, selects, and checkboxes to the invoking user
Added
IEvents New SelectInteraction event — fired when a user submits a select menu (String, User, Archetype, Channel)
Added
IEvents New ModalSubmit event — fired when a user submits a modal form
Added
IEvents New MessageEdit event — fired when a message is edited in a channel
Added
Select controls — StringSelect, UserSelect, ArchetypeSelect, ChannelSelect with customId, placeholder, min/max values, and options
Added
Modal components — TextInput (short/paragraph), StringSelect, UserSelect, ArchetypeSelect, ChannelSelect, Checkbox
Added
InteractWithSelect channel method — submit select menu values, validated against allowed options
Added
SubmitModal channel method — submit modal form values by interaction ID
Changed
IInteractions Contract hash updated (Ack, Defer, Modal routes added)
Changed
IMessages Contract hash updated (MessageEdit event added)
Fixed
EditBotMessage now broadcasts MessageEdited event via SignalR to connected clients
Added
Interaction responses delivered via SignalR 'interactionResponse' method (Ack, Deferred, ShowModal)
1.3.0
2026-04-13Rate Limit Overhaul
Changed
Switched from token bucket to sliding window algorithm — no background timers, lazy window advancement
Changed
Added global concurrency limiter (10 parallel requests per bot) instead of unused global token bucket
Changed
IMessages Rate limit increased from 20 to 120 requests/min
Changed
IInteractions Rate limit increased from 15 to 120 requests/min
Changed
ICommands Rate limit increased from 10 to 60 requests/min
Changed
IChannels Rate limit increased from 10 to 60 requests/min
Changed
ISpaces Rate limit increased from 5 to 30 requests/min
Changed
IMembers Rate limit increased from 5 to 30 requests/min
Changed
IVoice Rate limit increased from 5 to 20 requests/min
Added
IBotSelf Rate limit added: 15 requests/min
Added
ICalls Own rate limit policy: 20 requests/min (was shared with IVoice)
Added
IVoiceEgress Own rate limit policy: 10 requests/min (was shared with IVoice)
Added
IEvents Rate limit added: 5 requests/min
1.2.0
2026-04-13Interactive Controls & IInteractions API
Added
IInteractions New IInteractions/v1 interface — Reply to interactions, edit message text and controls
Added
IMessages SendMessage now accepts optional 'controls' — rows of interactive buttons attached to messages
Added
IMessages Message history now includes 'controls' in the response
Added
IEvents New ControlInteraction event — fired when a user clicks a Callback button
Added
IEvents New ControlInteractions intent (bit 13, value 8192)
Changed
IMessages Contract hash updated (controls field added to Send request and History response)
Changed
IEvents CommandInteraction event now includes interactionId as correlation token
Added
Message Constructor — interactive playground in docs for building messages with entities and controls
Added
OKLCH colour model for theme-adaptive button colours (L 0.40–0.80, C 0.00–0.37, H 0–360°)
Added
IInteractions rate limit: 15 requests/min
1.1.0
2026-04-13Bot Lifecycle Events, Slash Commands & Rate Limits
Added
IEvents New botInstallingToSpace and botUninstallingFromSpace lifecycle events — sent directly to the bot when it is installed or removed from a space
Added
IEvents CommandInteraction event — dispatched when a user invokes a slash command registered by the bot
Changed
ICommands Rate limiting applied: 10 requests per minute
Changed
IChannels Rate limiting applied: 10 requests per minute
Changed
IMembers Rate limiting applied: 5 requests per minute
Changed
IVoice Rate limit defaults now included in manifest (5 requests per minute)
1.0.0
2026-04-09Initial Bot API Release
Added
IBotSelf Bot identity endpoints: GetMe, GetSpaces
Added
IMessages Send messages and query message history
Added
IChannels List, create, and delete channels
Added
ISpaces Get space info, list and get members
Added
IMembers Kick members, manage archetypes
Added
IEvents SSE event stream with intent filtering and resume
Added
ICommands Slash command registration and management
Added
IVoice Voice channel streaming token generation