Repository navigation
Group /models by inference mode in ACP clients - #264
Conversation
/models printed one flat list: fifteen cloud rows that each repeated
"siGit Code Cloud" three times, then the on-device models. It now sends
one collapsible tool-call card per mode, titled with the mode name,
"(active)" on the active one and the selected model. The raw input names
the mode ("On-device inference", "Onde Cloud inference"). The usage hint
goes out as system status.
Cloud rows drop the repeated prefix, description and cloud badge. Row
numbers stay the global picker index, so /models N selects what is
listed. The TUI picker already groups by mode and is unchanged.
Closes #257
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: siGit Code v1.7.5-acp <noreply@sigit.si>
There was a problem hiding this comment.
This change refactors the /models command output in ACP clients to group models by inference mode, presenting each group as a collapsible tool-call card. Cloud and on-device models are now clearly separated, with cloud rows simplified and on-device rows retaining more detail. The code introduces a new ModelGroup struct and splits the rendering logic into render_models_list, which is now tested with two new unit tests. The /models command handler now uses send_models_list to send the grouped cards and a usage hint. The TUI picker is not affected. Previous findings about grouping and clarity are addressed by this change, and the new tests verify the grouping logic and output format.
Automated review by siGit Code Review · commit 66ace18 · see the review dashboard
/modelsin an ACP client printed one long flat list: fifteen cloud rows that each repeated "siGit Code Cloud" three times, then the on-device models.It now sends one collapsible tool-call card per inference mode. Zed only folds tool-call cards, not fenced code blocks, so that is what the cards are for.
·.2. Prism tool calling ← current.Use /models N to switch models.hint is sent as system status./models Nselects what is listed.The TUI picker already groups by mode and is untouched.
Closes #257
Tested: fmt, clippy and the two new
render_models_listtests pass; the full suite passed on the first version of this change. I checked the cards by hand in Zed against a debug build, except the last tweak (raw input text and the system-status hint), which has not been looked at in Zed yet.