forked from phil65/agentpool
-
Notifications
You must be signed in to change notification settings - Fork 9
RFC-0032: ACP Slash Commands Protocol Compliance #33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Leoyzen
merged 4 commits into
develop/agentic
from
feature/rfc-0032-acp-slash-commands-session-update
May 26, 2026
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
63eef39
docs(rfc): add RFC-0032 for ACP slash commands protocol compliance
Leoyzen ec4305b
feat(acp): remove slash_commands from initialize, rely on session/update
Leoyzen a54635c
fix(acp): bridge skill commands into ACPSession command_store
Leoyzen 4aa43e0
fixup! fix(acp): address review feedback on skill command bridge
Leoyzen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
616 changes: 616 additions & 0 deletions
616
docs/rfcs/draft/RFC-0032-acp-slash-commands-session-update.md
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Critical Bug: Skill Commands are Completely Lost and Never Advertised
By removing
slash_commands=skill_commandsfrom theinitializeresponse, skill commands are now completely lost and will never be advertised to the client or be executable.Why this happens:
ACPSession.send_available_commands_update()only sends commands returned byself.get_acp_commands(), which lists commands fromself.command_store. However,self.command_storeis statically initialized withget_all_commands(), which does not include skill commands.command_store, any attempt to execute them viaexecute_slash_commandwill fail asself.command_store.get_command(command_name)will returnNone.new_session(),session.init_client_skills()is scheduled as an asynchronous background task. Even if there were a mechanism to register skill commands dynamically,send_available_commands_update()is scheduled concurrently and does not wait for skills to be loaded, nor doesinit_client_skills()trigger a command update notification once it completes.Recommendation:
To align with the ACP specification while preserving skill command functionality, we must bridge skill commands into the session's
command_storeand trigger an update when they are loaded:ACPSessionto listen to the pool'sskill_commandsregistry changes (similar to howAgentPoolACPAgentdoes via_setup_skill_bridge).command_storeand callawait self.send_available_commands_update().References