Closed
feat: implement AI settings page with providers management UI#25328
Commits
Commits on May 19, 2026
feat(enterprise/coderd): add AI providers and keys HTTP CRUD
Show description for d963a86committedfixup(coderd/database/migrations): update bedrock fixture to discriminated form
Show description for 2270247committedrefactor(enterprise/coderd/ai_providers): drop reserved-names validation
Show description for 1aefde2committedfeat(enterprise/coderd/ai_providers): log error branches for operator visibility
Show description for c9db89bcommittedrefactor: move AI provider db-to-SDK converter into db2sdk
Show description for 90a666fcommittedrefactor: move AI provider request validation into codersdk
Show description for e9cdf37andcommittedstyle: invert nested ifs in AI provider validation and merge
Show description for 16c8468andcommittedrefactor(enterprise/coderd/ai_providers): polish provider handler
Show description for e7e9a59andcommittedrefactor: move AI provider key db-to-SDK converter into db2sdk
Show description for bb8081eandcommittedrefactor(enterprise/coderd): split AI provider keys handlers into ai_provider_keys.go
Show description for 8ded3e6andcommittedrefactor: move AI provider HTTP CRUD into OSS coderd
Show description for 4e49435andcommittedchore(coderd/ai_providers): regen API docs, fix slog uuid field names
Show description for e483707andcommittedrefactor(coderd/ai_providers): manage API keys through provider endpoints
Show description for ad2d83candcommittedrefactor(coderd/ai_providers): use ptr.NilToDefault for pointer deref
Show description for d52754eandcommittedfeat(coderd/ai_providers): address keys by ID and amend via mutation list
Show description for 60f3009andcommittedfix(coderd/ai_providers): return 400 for syntactically invalid id/name
Show description for 6117ec5andcommittedfix(coderd/ai_providers): reject Bedrock settings on non-anthropic providers
Show description for 34d21c8andcommittedfix(codersdk/aiproviders): reject API keys with surrounding whitespace
Show description for fbfc3fdandcommittedfix(coderd/ai_providers): allow PATCH to clear Bedrock secrets
Show description for 7830ca0andcommittedfix(coderd/ai_providers): exclude soft-deleted providers' keys from list
Show description for ebc8e32andcommittedfix(coderd/ai_providers): clean up error messaging in update + delete paths
Show description for a55a8d2andcommittedchore(coderd/ai_providers): tighten delete-idempotency comment
Show description for c6050f5andcommittedfix(coderd/ai_providers_test): assert real JSON field names for Bedrock secret redaction
Show description for 527e928andcommittedchore(coderd/database/dbauthz): update GetAIProviderKeys mock call for include_deleted arg
Show description for a1a65c8andcommitted
Commits on May 20, 2026
🤖 feat(site/src/pages/AISettingsPage): scaffold AI providers admin page
Show description for 4edcd76committed🤖 fix(site/src/pages/AISettingsPage): null-safe AIProviderSettings reads
Show description for 3357de4committed🤖 feat(site/src/pages/AISettingsPage): render the API-supplied masked key for openai/anthropic
Show description for 57cc88ccommitted🤖 fix(site/src/pages/AISettingsPage): restore Model and Small fast model descriptions
Show description for e084e27committed🤖 fix(site/src/pages/AISettingsPage): show the masked openai/anthropic key as text
Show description for af9a74ecommitted🤖 fix(site/src/pages/AISettingsPage): truncate long provider names with tooltip
Show description for b797203committed🤖 fix(site/src/pages/AISettingsPage): drop trash-column placeholder, let it collapse
Show description for cbe46cacommitted🤖 fix(site/src/pages/AISettingsPage): prefer display_name in user-facing strings
Show description for 887d38fcommitted🤖 fix(site/src/components/PageHeader): propagate min-w-0 through hgroup
Show description for c4e249acommitted🤖 fix(site/src/pages/AISettingsPage): edit form labels display_name, not name
Show description for 873eb30committed🤖 fix(site/src/pages/AISettingsPage): restore third grid cell for empty trash slot
Show description for f2b68d3committed🤖 fix(site/src/pages/AISettingsPage): wrap title in block span so truncate works
Show description for 72d07a5committed🤖 fix(site/src/pages/AISettingsPage): show new name in update toast
Show description for fa8934dcommitted🤖 fix(site/src/pages/AISettingsPage): stack credential fields like FormField
Show description for da75637committed🤖 refactor(site/src/pages/AISettingsPage): drop organization scoping from provider pages
Show description for ded1e11committed🤖 feat(site/src/pages/AISettingsPage): require Endpoint for all provider types
Show description for 221d1fecommitted🤖 feat(site/src/pages/AISettingsPage): split slug and display name on Add
Show description for 4046e5acommitted🤖 fix(site/src/pages/AISettingsPage): restrict endpoint scheme to http/https
Show description for 03dd8dfcommitted🤖 fix(site/src/pages/AISettingsPage): drop strict Bedrock URL regex
Show description for 31b3812committed🤖 fix(site/src/pages/AISettingsPage): derive Bedrock region from URL, ask explicitly otherwise
Show description for 885b5f5committed🤖 feat(codersdk/aiproviders): require region in Bedrock settings
Show description for f8661b3committed🤖 test(site/src/pages/AISettingsPage): cover providerFormApiMap and Bedrock region parser
Show description for d758d5dcommitted- committed
🤖 feat(site/src/pages/AISettingsPage): split Add into per-type pages with provider dropdown
Show description for 313d2accommitted- committed
🤖 refactor(site/src/pages/AISettingsPage): hide unsupported provider types from the Add menu
Show description for 106863fcommitted- committed
🤖 refactor(site/src/pages/AISettingsPage): drop trash button, clear credential on focus
Show description for c448c3fcommitted🤖 refactor(site/src/pages/AISettingsPage): hide enabled switch when creating a provider
Show description for 3c3a9a8committed- committed
- committed
- committed
- committed
- committed
- committed
- committed
- committed
🤖 refactor(site/src/pages/AISettingsPage): prefill canonical endpoint, share with placeholder
Show description for 25beaffcommitted🤖 refactor(site/src/pages/AISettingsPage): prefill provider name from providerDefaults
Show description for 93a1dabcommitted🤖 refactor(site/src/pages/AISettingsPage): drop Bedrock region field, infer from endpoint
Show description for d70aef5committed🤖 feat(codersdk,site/src/pages/AISettingsPage): expose OpenAI-compatible provider types
Show description for de87855committed🤖 refactor(site/src/pages/AISettingsPage): send api_keys as a declarative mutation list on update
Show description for 87dd8c2committed🤖 fix(codersdk,site/src/pages/AISettingsPage): collapse OpenAI-compatible UI types to type=openai on the wire
Show description for f16205bcommitted🤖 feat(site/src/pages/AISettingsPage): recover OpenAI-compatible icons from base_url
Show description for 894969bcommitted🤖 feat(site): add Vercel icon for the AI providers list
Show description for 84cf102committed- committed
- committed
- committed
- committed
- committed
🤖 revert(codersdk/aiproviders): drop server-side Bedrock region validator
Show description for e5e4b12committed🤖 refactor(site/src/pages/AISettingsPage): use the generated AIProviderType for the addable dropdown
committed- committed
- committed
- committed
- committed
- committed
- committed
- committed
Commits on May 21, 2026
- committed
- committed
feat(site): implement AI settings page with providers management UI
Show description for 6e439e7committed🤖 feat(site/src): warn before leaving a dirty AI provider form
Show description for 74a485bcommittedfeat(site): add top-level AI admin section with sidebar navigation
Show description for 93fec84committedfix(site): align back button arrow with page content
Show description for 45dd396committedfix(site): disable submit button until form is dirty and valid
Show description for cf53492committed- committed
fix(site): replace model count with generic model settings link
Show description for 9c3ef4acommittedfix(site): link agents sidebar Providers item to /ai/settings
Show description for 3a897d0committed🤖 fix(site/src/pages/AISettingsPage/ProvidersPage/components): clear dirty form after a successful save
Show description for a138d6acommitted- committed
- committed
feat(site): add unsaved-changes prompt to provider forms
Show description for 4059559committed🤖 Merge branch 'tracyjohnsonux/ai-settings-ui' into jakehwll/ai-settings
Show description for a5af128committed