feat(cli): add type-to-search filtering to select/multiselect dialogs (#6862)

Signed-off-by: Harrison <hcstebbins@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
harry
2026-02-05 16:01:37 -05:00
committed by GitHub
parent 688e3a206e
commit ca879da3ba
@@ -565,6 +565,7 @@ pub async fn configure_provider_dialog() -> anyhow::Result<bool> {
let provider_name = cliclack::select("Which model provider should we use?")
.initial_value(&default_provider)
.items(&provider_items)
.filter_mode()
.interact()?;
// Get the selected provider's metadata
@@ -784,6 +785,7 @@ pub fn toggle_extensions_dialog() -> anyhow::Result<()> {
.collect::<Vec<_>>(),
)
.initial_values(enabled_extensions)
.filter_mode()
.interact()?;
// Update enabled status for each extension
@@ -1122,6 +1124,7 @@ pub fn remove_extension_dialog() -> anyhow::Result<()> {
.map(|(name, _)| (name, name.as_str(), MULTISELECT_VISIBILITY_HINT))
.collect::<Vec<_>>(),
)
.filter_mode()
.interact()?;
for name in selected {
@@ -1427,6 +1430,7 @@ pub async fn configure_tool_permissions_dialog() -> anyhow::Result<()> {
.map(|ext| (ext.clone(), ext.clone(), ""))
.collect::<Vec<_>>(),
)
.filter_mode()
.interact()?;
let config = Config::global();
@@ -1507,6 +1511,7 @@ pub async fn configure_tool_permissions_dialog() -> anyhow::Result<()> {
})
.collect::<Vec<_>>(),
)
.filter_mode()
.interact()?;
// Find the selected tool
@@ -1947,6 +1952,7 @@ fn remove_provider() -> anyhow::Result<()> {
let selected_id = cliclack::select("Which custom provider would you like to remove?")
.items(&provider_items)
.filter_mode()
.interact()?;
remove_custom_provider(selected_id)?;