# Changelog All notable changes to Chat Switchboard. ## [0.10.5] — 2026-02-24 ### Added - **`ui-primitives.js` — shared rendering primitives and registries.** Single source of truth for provider types, role definitions, and reusable UI components. Extension-ready via registry pattern (`Providers.add()`, `Roles.add()`). Primitives follow the `renderPresetForm()` pattern: `(container, options) → control object` with `getValues/setValues/clear`. - `Providers` registry — types, labels, default endpoints (was 5 places → 1) - `Roles` registry — names, type filters, hints (was hardcoded in 2 places → 1) - `renderCapBadges(caps, opts)` — consolidates 3 badge builders (compact + detailed) - `renderProviderForm(container, opts)` — replaces 3 form implementations - `renderProviderList(container, opts)` — replaces 3 list renderers - `renderRoleConfig(container, opts)` — replaces 2 role UIs + 4 handlers - `renderUsageDashboard(container, opts)` — replaces 3 usage renderers ### Fixed - **Admin provider form now auto-fills endpoint on type change.** Was missing from admin (worked in user BYOK and team forms). Now all three scopes use the same primitive with identical behavior. - **Team provider form consolidated.** Was two separate HTML forms (create + edit) with separate listeners. Now a single dual-mode form matching the pattern used by admin and user BYOK scopes. ### Changed - Provider type definitions removed from `index.html` (2 static `