Changeset 0.8.6 (#49)

This commit is contained in:
2026-02-22 16:52:19 +00:00
parent 633421708f
commit 15be26c516
17 changed files with 870 additions and 152 deletions

View File

@@ -218,24 +218,18 @@ Required for enterprise and compliance. Cheap to build, expensive to retrofit.
- [x] User personal provider models: simple enable/disable toggle
(same visibility toggle — hide from selector)
**Team Providers (0.8.6+)**
- [ ] `team_id` column on `api_configs` (nullable, symmetric with `user_id`)
- [ ] Team admins manage team-scoped provider configs
**Team Providers (0.8.6)**
- [x] `team_id` column on `api_configs` (nullable FK, indexed)
- [x] Team admins manage team-scoped provider configs
(add/remove API keys, toggle active, same UI as personal providers)
- [ ] `allow_team_providers` flag in `teams.settings` JSONB
— admin controls which teams can add their own API keys
- [ ] Team provider models use same 3-state visibility: enabled/disabled/team
— enabled: team members see in model selector (direct use)
— team: team admin can use for presets only (not direct member access)
disabled: hidden from everyone
Same cycle button, same bulk actions, scoped to team admin panel
- [ ] `ListEnabledModels` adds section: team provider models where
`visibility = 'enabled'` AND user is member of owning team
- [ ] Team preset builder shows team provider models where
`visibility IN ('enabled', 'team')` AND user is admin of owning team
- [ ] Three-tier provider hierarchy with uniform visibility semantics:
global (sys-admin) → team (team-admin) → personal (user)
- [ ] Model provenance badges: global / team:TeamName / personal
- [x] `allow_team_providers` check: global_settings + team.settings JSONB
- [x] Team provider models available in team preset builder (ListAvailableModels)
— grouped by source: Global Models / Team Provider Models (optgroup)
- [x] Team provider models NOT exposed directly in model selector
— team members access team models ONLY through curated presets
keeps model selector clean, avoids visibility confusion
- [x] Three-tier provider hierarchy: global → team (presets only) → personal
- [x] ListConfigs excludes team-scoped providers (team_id IS NULL filter)
**Usage / Cost Tracking**
- [ ] Capture from provider responses: prompt_tokens, completion_tokens,