0.167.6
Fixed
- Структурирование выпадающего списка моделей в шапке чата. В выпадающем списке выбора модели на
/chat(web/src/lib/components/chat/ChatHeader.svelte) названия отображались неструктурно: использовался технический идентификаторmdl.name(например,claude-3-5-sonnet-20240620) вместо человеко-читаемогоdisplay_name, а плоская сортировка бэкенда поm.name(internal/store/sqlite.go:6554, PG-аналогpostgres.go:6431) после подстановкиdisplay_nameвыглядела хаотично из-за смешения моделей разных провайдеров. Все остальные места приложения (Настройки → Модели,agents/[id]/models,SubagentProfileEditor) уже использовали конвенциюdisplay_name || name— список в чате был единственным исключением. Фикс (только фронтенд, 1 файл): отображениеdisplay_name || nameв триггере и пунктах списка; разовая загрузкаapi.providerConfigs.list()при монтировании для построения картыprovider_id → LLMProviderConfig; сортировка моделей поdisplay_name(localeCompare); группировка по провайдеру с заголовком группы (имя провайдера) и бейджем провайдера в каждой строке; группы отсортированы по имени провайдера (стабильный порядок при переключении агентов); скролл для длинных списков (max-h-[70vh] overflow-y-auto), липкий заголовок «Выбор модели»; чек-иконка выбора добавлена и к пункту «По умолчанию». Устойчивость: если провайдеры не загрузились — плоский список сdisplay_name; если модель ссылается на неизвестного провайдера — заголовок «Другой провайдер»; ошибка загрузки логируется вconsole.warn. Backend, API endpoint, типModelиuseChatSwitch.svelte.tsне менялись. Связанный техдолг: (P3) —handleModelSwitchоптимистично обновляетselectedModelIdи глотает ошибку сохранения (предсуществующий код, обнаружен приocr review).