Dynamically registered extension slash commands show `unknown command` even when they execute successfully
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
## Summary
When an extension adds a slash command dynamically after session startup, Copilot CLI can show an `unknown command` error in the UI even though the command still executes successfully in the extension.
This looks like the local slash-command validation path is out of sync with the dynamically registered command list.
## Environment
- Copilot CLI: 1.0.25
- OS: Windows
## Reproduction
I reproduced this with a Telegram bridge extension that:
1. joins the session with `joinSession(...)`
2. then registers `/telegram` afterward via a follow-up `session.resume` request with a `commands` payload
3. handles the command through the extension command event path
Relevant pattern in the extension:
```js
await sess.connection.sendRequest("session.resume", {
sessionId: sess.sessionId,
commands: [{ name: "telegram", description: "Telegram bridge" }],
hooks: true,
});
sess.on("command.execute", (event) => {
const { requestId, commandName, args } = event.data;
if (commandName !== "telegram") return;
// handle command...
});
```
Then in Copilot CLI:
1. start the CLI with the extension loaded
2. run `/telegram`
## Actual behavior
Copilot CLI displays an `unknown command` style error, but the extension still receives and executes the command correctly.
So the command both:
- appears unknown in the UI
- and still works as intended
## Expected behavior
One of these should happen consistently:
1. the command is recognized normally with no error, or
2. if dynamically added commands are not supported in this way, the command should not execute either
## Notes
This seems related to extension commands being added after startup rather than being available in the initial command set.
In this case, the extension uses `session.resume` because `joinSession(...)` does not expose a direct way to provide slash commands up front.
That makes this look like either:
- a bug in Copilot CLI command discovery/validation for extension-added commands, or
- a gap in the extension API contract around dynamic slash-command registration.
If helpful, I can provide a reduced repro extension.
Hướng dẫn đóng góp
Đánh giá
Issue này chưa được đánh giá.