feat(tui): model picker UX polish (filters, sizing, search)

This commit is contained in:
2025-10-17 04:52:38 +02:00
parent 1948ac1284
commit 9588c8c562
4 changed files with 789 additions and 184 deletions

View File

@@ -6,7 +6,7 @@ use crate::widgets::model_picker::FilterMode;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum AppCommand {
OpenModelPicker(FilterMode),
OpenModelPicker(Option<FilterMode>),
OpenCommandPalette,
CycleFocusForward,
CycleFocusBackward,
@@ -26,19 +26,19 @@ impl CommandRegistry {
commands.insert(
"model.open_all".to_string(),
AppCommand::OpenModelPicker(FilterMode::All),
AppCommand::OpenModelPicker(None),
);
commands.insert(
"model.open_local".to_string(),
AppCommand::OpenModelPicker(FilterMode::LocalOnly),
AppCommand::OpenModelPicker(Some(FilterMode::LocalOnly)),
);
commands.insert(
"model.open_cloud".to_string(),
AppCommand::OpenModelPicker(FilterMode::CloudOnly),
AppCommand::OpenModelPicker(Some(FilterMode::CloudOnly)),
);
commands.insert(
"model.open_available".to_string(),
AppCommand::OpenModelPicker(FilterMode::Available),
AppCommand::OpenModelPicker(Some(FilterMode::Available)),
);
commands.insert("palette.open".to_string(), AppCommand::OpenCommandPalette);
commands.insert("focus.next".to_string(), AppCommand::CycleFocusForward);
@@ -93,7 +93,7 @@ mod tests {
);
assert_eq!(
registry.resolve("model.open_cloud"),
Some(AppCommand::OpenModelPicker(FilterMode::CloudOnly))
Some(AppCommand::OpenModelPicker(Some(FilterMode::CloudOnly)))
);
}