Changeset 0.10.5 (#61)

This commit is contained in:
2026-02-25 00:18:03 +00:00
parent e5ee78c498
commit d2ec55b16d
16 changed files with 1643 additions and 801 deletions

View File

@@ -2,6 +2,53 @@
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 `<select>`s)
and `settings-handlers.js` (1 dynamic build + 2 endpoint maps). All now
sourced from `Providers` registry in `ui-primitives.js`.
- Provider list rendering uses event delegation instead of inline `onclick`
handlers. Each list returns `{ refresh, getCache }` control handles.
- Role configuration uses `data-role-*` attributes for event delegation
instead of `id`-based selectors and global `onchange` handlers.
- Usage dashboards accept options for compact/full mode, custom API calls,
and extension-provided extra columns.
- All 16 `confirm()` calls replaced with `showConfirm()` — styled modal
dialog matching the app design instead of browser-native dialog. Supports
`danger` styling, Escape/Enter keys, click-outside dismiss.
- Sidebar collapse icon now always visible (dimmed) next to the logo,
brightens on hover. Previously the icon replaced the logo on hover only.
When sidebar is collapsed, only the collapse icon shows (logo hidden).
- New `.popup-menu` + `.popup-menu-item` shared CSS base for all dropdown
and flyout menus. `createPopupMenu(anchor, opts)` primitive available for
future menu creation with consistent behavior.
- Removed ~360 lines of duplicated code across `admin-handlers.js`,
`settings-handlers.js`, `ui-admin.js`, and `ui-settings.js`.
- Removed ~40 lines of static HTML form markup from `index.html`.
## [0.10.4] — 2026-02-24
### Added