Changeset 0.10.4 (#60)

This commit is contained in:
2026-02-24 22:01:20 +00:00
parent ba2cd42428
commit e5ee78c498
18 changed files with 152 additions and 31 deletions

View File

@@ -2,6 +2,35 @@
All notable changes to Chat Switchboard.
## [0.10.4] — 2026-02-24
### Added
- **`model_type` field across the full pipeline.** Models now carry a type
classification (`chat`, `embedding`, `image`) sourced from provider APIs
at sync time — no hardcoded lists. Venice's `/v1/models` returns `type`
per model; OpenAI-compatible APIs pass through the field when present.
- New DB column: `model_catalog.model_type VARCHAR(20) DEFAULT 'chat'`
- Migration: `005_model_type.sql`
- Propagation: `providers.Model.Type``CatalogSyncEntry.ModelType`
`CatalogEntry.ModelType``UserModel.ModelType` → frontend `model_type`
### Fixed
- **Admin role save didn't refresh UI.** `adminSaveRole()` showed "✓ Saved"
but never called `UI.loadAdminRoles()`, so dropdowns appeared stale after
save. Now reloads the roles panel after a successful save.
- **Role model dropdowns showed all models regardless of type.** Embedding
role showed chat models, utility role showed embedding models. Both admin
and user role UIs now filter the model dropdown by `model_type`:
- "embedding" role → only `model_type === 'embedding'` models
- "utility" role → only `model_type === 'chat'` models
### Changed
- Venice provider now reads the `type` field from each model in the API
response and normalizes it (`text``chat`, `embedding``embedding`,
`image``image`).
- OpenAI provider wire type extended with optional `type` field for
OpenAI-compatible APIs that include it.
## [0.10.3] — 2026-02-24
### Changed