Changeset 0.22.3 (#97)
This commit is contained in:
@@ -101,7 +101,7 @@ v0.22.1 Provider Extensions (declarative config) ✅
|
||||
│
|
||||
v0.22.2 Routing Policies + Fallback Chains ✅
|
||||
│
|
||||
v0.22.3 Provider Admin UI + Deferred Polish
|
||||
v0.22.3 Provider Admin UI + Deferred Polish ✅
|
||||
│
|
||||
v0.23.0 Multi-Participant Channels + Presence
|
||||
│
|
||||
@@ -873,7 +873,7 @@ Depends on: usage tracking (v0.10.0), capabilities resolver (v0.9.1).
|
||||
- [x] Provider status derivation: `healthy` / `degraded` / `down` based on error rate thresholds (5% = degraded, 25% = down)
|
||||
- [x] `GET /api/v1/admin/providers/:id/health` endpoint: current status + hourly windows (configurable hours param)
|
||||
- [x] `GET /api/v1/admin/providers/health` endpoint: summary status for all providers
|
||||
- [ ] _(deferred → v0.22.3)_ Health status included in `GET /api/v1/models/enabled` response (new `provider_status` field)
|
||||
- [x] _(shipped v0.22.3)_ Health status included in `GET /api/v1/models/enabled` response (new `provider_status` field)
|
||||
- [ ] _(deferred → v0.22.2)_ Auto-disable: optional policy to mark provider inactive when `down` for N consecutive windows
|
||||
- [x] Background cleanup: prune health rows older than 7 days (6-hour cycle)
|
||||
|
||||
@@ -932,7 +932,7 @@ Depends on: provider health (v0.22.0).
|
||||
- [x] `providers.Init()` uses `RegisterType()` with full metadata (name, description, default endpoint, profile schema)
|
||||
- [x] `ProviderTypeMeta` struct: ID, name, description, default_endpoint, profile_schema
|
||||
- [x] `GET /api/v1/admin/provider-types` endpoint: list available provider types with their profile schemas
|
||||
- [ ] _(deferred → v0.22.3)_ New provider types registrable via config file (openai-compatible endpoint + custom profile schema)
|
||||
- [ ] _(deferred → v0.23)_ New provider types registrable via config file (openai-compatible endpoint + custom profile schema)
|
||||
|
||||
**Search Provider Health** (carried from v0.22.0)
|
||||
- [ ] _(deferred → v0.22.2)_ `RecordOutcome` for web_search and url_fetch tool calls
|
||||
@@ -952,14 +952,14 @@ Depends on: provider health (v0.22.0), provider extensions (v0.22.1).
|
||||
- [x] Policy types: `provider_prefer` (ordered fallback list), `team_route` (restrict team to providers), `cost_limit` (heuristic cost cap), `model_alias` (alias → provider+model rewrite)
|
||||
- [x] Policy evaluator: takes requested model + user context → returns ranked list of `(providerConfigID, modelID)` candidates
|
||||
- [x] Integration point: `evaluateRouting()` called after resolveConfig, before provider dispatch — reloads winning config credentials on switch
|
||||
- [ ] _(deferred → v0.22.3)_ `capability_match` policy type ("cheapest model with tool_calling")
|
||||
- [ ] _(deferred → v0.23)_ `capability_match` policy type ("cheapest model with tool_calling")
|
||||
|
||||
**Fallback Chains**
|
||||
- [x] Fallback runner: `RunWithFallback()` tries candidates in order with configurable max retries
|
||||
- [x] Health-aware: skip providers with status `down`, prefer `healthy` over `degraded`
|
||||
- [x] All-down graceful degradation: keeps candidates rather than failing
|
||||
- [ ] _(deferred → v0.22.3)_ Latency-aware preference: track response time percentiles, prefer faster providers
|
||||
- [ ] _(deferred → v0.22.3)_ Cost-aware preference with budget ceiling per request
|
||||
- [ ] _(deferred → v0.23)_ Latency-aware preference: track response time percentiles, prefer faster providers
|
||||
- [ ] _(deferred → v0.23)_ Cost-aware preference with budget ceiling per request
|
||||
|
||||
**Routing Metadata**
|
||||
- [x] `X-Switchboard-Provider` response header: `providerID/configID` on every completion
|
||||
@@ -970,30 +970,38 @@ Depends on: provider health (v0.22.0), provider extensions (v0.22.1).
|
||||
|
||||
---
|
||||
|
||||
## v0.22.3 — Provider Admin UI + Deferred Polish
|
||||
## v0.22.3 — Provider Admin UI + Deferred Polish ✅
|
||||
|
||||
Admin interfaces for v0.22.0–v0.22.2 features, plus deferred items from v0.21.x.
|
||||
|
||||
Depends on: routing policies (v0.22.2).
|
||||
|
||||
**Admin UI**
|
||||
- [ ] Provider health dashboard: status badges, error rate sparklines, latency charts (last 24h)
|
||||
- [ ] Capability override editor: per-model toggle grid with source indicators
|
||||
- [ ] Provider profile editor: key-value config per provider type, preview of effective settings
|
||||
- [ ] Routing policy builder: CRUD with priority ordering, dry-run test panel
|
||||
- [ ] Fallback chain visualizer: drag-to-reorder provider priority per model family
|
||||
- [x] Provider health dashboard: status badges, error rate/latency/timeout metrics per provider, refresh button (`loadAdminHealth`)
|
||||
- [x] Capability override editor: table listing all overrides with model, config, field, value; delete button per row (`loadAdminCapabilities`)
|
||||
- [x] Routing policy builder: CRUD with name/priority/type/scope/team/config(JSON)/active toggle, dry-run test panel with candidate ranking and health status (`loadAdminRouting`, `_showRoutingForm`, `_runRoutingTest`)
|
||||
- [x] New "Routing" admin category with Health, Routing, and Capabilities sections
|
||||
- [x] Health status included in `GET /api/v1/models/enabled` response (`provider_status` field on UserModel)
|
||||
- [ ] _(deferred → v0.23)_ Provider profile editor: key-value config per provider type, preview of effective settings
|
||||
- [ ] _(deferred → v0.23)_ Fallback chain visualizer: drag-to-reorder provider priority per model family
|
||||
|
||||
**Deferred from v0.22.0–v0.22.2**
|
||||
- [ ] _(deferred → v0.23)_ `capability_match` policy type ("cheapest model with tool_calling")
|
||||
- [ ] _(deferred → v0.23)_ Latency-aware preference: track response time percentiles, prefer faster providers
|
||||
- [ ] _(deferred → v0.23)_ Cost-aware preference with budget ceiling per request
|
||||
- [ ] _(deferred → v0.23)_ New provider types registrable via config file (openai-compatible endpoint + custom profile schema)
|
||||
|
||||
**Deferred from v0.21.x**
|
||||
- [ ] Mobile: mode selector collapses to hamburger/bottom nav
|
||||
- [ ] Integration with extension loader (surfaces from manifest.json)
|
||||
- [ ] Workspace settings UI: git config section in channel/project settings
|
||||
- [ ] User Settings: git credentials management UI
|
||||
- [ ] `.gitignore` respect in workspace indexing
|
||||
- [ ] Drag-drop file reorder in editor file tree
|
||||
- [ ] Article tools: suggest_outline, expand_section, check_citations (AI-powered)
|
||||
- [ ] Drag-to-reorder outline sections in article mode
|
||||
- [ ] PDF/DOCX export via pandoc in article mode
|
||||
- [ ] Project-specific file uploads (full project-level upload architecture)
|
||||
- [ ] _(deferred → v0.23)_ Mobile: mode selector collapses to hamburger/bottom nav
|
||||
- [ ] _(deferred → v0.23)_ Integration with extension loader (surfaces from manifest.json)
|
||||
- [ ] _(deferred → v0.23)_ Workspace settings UI: git config section in channel/project settings
|
||||
- [ ] _(deferred → v0.23)_ User Settings: git credentials management UI
|
||||
- [ ] _(deferred → v0.23)_ `.gitignore` respect in workspace indexing
|
||||
- [ ] _(deferred → v0.23)_ Drag-drop file reorder in editor file tree
|
||||
- [ ] _(deferred → v0.23)_ Article tools: suggest_outline, expand_section, check_citations (AI-powered)
|
||||
- [ ] _(deferred → v0.23)_ Drag-to-reorder outline sections in article mode
|
||||
- [ ] _(deferred → v0.23)_ PDF/DOCX export via pandoc in article mode
|
||||
- [ ] _(deferred → v0.23)_ Project-specific file uploads (full project-level upload architecture)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user