1.5.0
Added (#392)
- Каталог моделей
/settings/models(«Все модели»): поддержка изображений и фоллбэк видны прямо в строке списка, плюс фильтры (#392). Бейдж «vision» (success) / «текст» (новый нейтральный вариантmutedуBadge) выводится у каждой LLM-модели по эффективному значению — раньше бейдж горел только при явном ручном флаге, модели из синхронизации (auto/null) не бейджились вовсе; суффикс «· auto» помечает значения, определённые реестром capabilities, а не вручную. Для этого в API добавлено вычисляемое (не хранится в БД) полеsupports_vision_effective— резолв вынесен в общую функциюproviders.EffectiveSupportsImage(name, override)(переиспользуется рантаймом агента вместо дублирования вsupportsImageInput), поле заполняется во всех выдающих модели эндпоинтах (GET /models,GET/PUT/POST /models/{id},GET /agents/{id}/models). Фоллбэк-цепочка — компактно в мета-строке карточки (первые 2 метки черезcachedModelLabel+ «+N»), полная остаётся в «Детали»; распарсенный JSON кэшируется$derived-картой (фильтр, подписи строк и «Детали» не репарсятfallback_model_idsна каждый тик). Новые фильтры каталога: по vision (Все / Поддерживает / Не поддерживает; применяется только к LLM — при активном фильтре на вкладках «Все»/«Embedding» показывается подсказка, а embedding-модели отсекаются) и по фоллбэку (Все / С фоллбэком / Без фоллбэка), в комбинации с существующими kind-табами; пустой список при активных фильтрах показывает «Ничего не найдено» вместо сбивающего «Нет моделей». - Нейтральный бейдж счётчика «Агенты» в сайдбаре (#392):
.sidebar-count-badgeпереведён с зелёных pine-токенов (--c-pine-bg/-border/-) на нейтральные--c-dimmed/--c-label/--c-field— статичное значение (число агентов) больше не конкурирует за внимание с активным состоянием навигации; обе темы используют существующие токены без новых.
Docs (#392)
docs/features-matrix.md: §18 — строки «Каталог моделей: vision/фоллбэк в строке + фильтры (#392)» и «Нейтральный бейдж счётчика в сайдбаре (#392)»; §Models — уточнена строка фоллбэк-цепочки (UI в строке каталога); §API —GET /v1/modelsдополнен вычисляемымsupports_vision_effective.
Review (#392)
- ocr review (3 прогона) — закрыты: high «
AgentModelHandler.Listотдаёт zero-valuesupports_vision_effective» (пакетнаяresolveEffectiveVision, вызывается из обоих хендлеров); medium «фильтр/vision drop embedding без объяснения» (inline-подсказка «Vision-фильтр применяется только к LLM» + EmptyState «Ничего не найдено» с расширенной подсказкой); medium «репарсfallback_model_idsна каждый тик» (fallbackIDCache/fallbackSummaries$derived-карты — единый парс для фильтра, строк и «Детали»); medium «TS-тип противоречит wire-контракту» (поле сделано обязательным — Go сериализует всегда безomitempty, литералы в тестах дополнены). Отклонены с обоснованием: low «de-emphasis бейджа сайдбара» — это и есть цель изменения (статичное значение); low «повреждённая фоллбэк-цепочка в фильтре неотличима» — осознанное упрощение, бэкенд нормализует raw при первом сохранении (зафиксировано комментарием); low «pluralisation+N» — формат счётчика стандартен для UI. Проверки:go test ./...(37 пакетов),golangci-lint(0 issues),npm run check(0/0),npm test(888),make build-all,make build-cross(6 платформ) — зелёные.