Open
Description
Summary of the new feature / enhancement
Command names and aliases may collide. Today, we don't handle it, so an exception will be thrown when collision happens. We should handle the name/alias collision gracefully.
AIShell/shell/AIShell.Kernel/Command/CommandRunner.cs
Lines 61 to 67 in b10735a
AIShell/shell/AIShell.Kernel/Command/CommandRunner.cs
Lines 89 to 94 in b10735a
Proposed technical implementation details (optional)
We load commands from an agent when switching to the agent and unload its commands when switching away from it. So, at a given time, only commands from one agent will co-exist with the core commands. Therefore, we shouldn't allow a name/alias to overwrite an existing one and hence we should throw a good error when collision happens.