Changeset 0.22.7 (#149)
This commit is contained in:
@@ -109,6 +109,11 @@ v0.22.5 Surfaces + Go Templates + Admin Bug Fixes ✅
|
||||
│
|
||||
v0.22.6 Split Deployment Fix + CI Timeout + Code Pruning ✅
|
||||
│
|
||||
|
|
||||
v0.22.7 Surface Prototypes (Theme + ChatPane + Splash) ✅
|
||||
|
|
||||
v0.22.8 Surface Integration (Wire into existing JS)
|
||||
|
|
||||
v0.23.0 Multi-Participant Channels + Presence
|
||||
│
|
||||
v0.24.0 Auth Strategy (mTLS/OIDC) + Full RBAC + Group permissions
|
||||
@@ -1102,6 +1107,97 @@ replaced by server-rendered surfaces.
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## v0.22.7 — Surface Prototypes (Theme + ChatPane + Splash) ✅
|
||||
|
||||
Foundation CSS/JS for the v0.22.5 surface architecture: theme system,
|
||||
reusable chat pane component, splash/login redesign, and UI primitive
|
||||
extensions. All files target the correct tree locations established in
|
||||
v0.22.5. Settings surface gains BYOK and User Personas feature gates.
|
||||
|
||||
Depends on: surfaces + Go templates (v0.22.5), code pruning (v0.22.6).
|
||||
|
||||
**Theme System:**
|
||||
- [x] `theme.css`: CSS custom properties for light/dark themes via `[data-theme]` attribute
|
||||
- [x] System preference auto-detection (`prefers-color-scheme` media query)
|
||||
- [x] Variable bridge: new vars (`--bg`, `--text`) alias old vars (`--bg-primary`, `--text-primary`)
|
||||
- [x] Shared component styles: toast stack, badges, buttons, icon buttons, form fields, confirm dialog, theme toggle, avatar upload, section headers
|
||||
- [x] Surface layout styles: splash, chat-pane, admin, settings, editor
|
||||
- [x] Google Fonts: DM Sans (UI) + JetBrains Mono (code)
|
||||
- [x] `base.html`: `data-theme` on `<html>`, `theme.css` before `styles.css`
|
||||
|
||||
**ChatPane Component:**
|
||||
- [x] `chat-pane.js`: factory pattern — `ChatPane.create(opts)` returns self-contained instance
|
||||
- [x] Instance API: renderMessages, appendChunk, finalizeStream, appendTyping, removeTyping, scrollToBottom, showWelcome, clear, getInputValue, setInputValue, focusInput, destroy
|
||||
- [x] Lookup: `ChatPane.get(id)`, `ChatPane.forChannel(channelId)`, `ChatPane.active()`
|
||||
- [x] `components/chat-pane.html`: Go template partial for server-rendered mount points
|
||||
- [x] Editor surface: `chat-pane` template in assist pane with `ChatPane.create()` boot
|
||||
|
||||
**Splash / Login:**
|
||||
- [x] `login.html` rewritten: split hero + auth card layout
|
||||
- [x] Animated grid canvas (40px grid, scrolling offset, `--border` color)
|
||||
- [x] Auth tabs (Login / Register) with server-gated registration
|
||||
- [x] Register form: username, display name, email, password, avatar upload
|
||||
- [x] `pages-splash.js`: `Pages.initSplash()`, grid animation, POST login, POST register + PUT avatar
|
||||
- [x] `PageData` gains `InstanceName`, `LogoURL`, `Tagline`, `RegistrationOpen`
|
||||
- [x] `loadBranding()` + `isRegistrationOpen()` from GlobalConfig
|
||||
|
||||
**UI Primitives Additions:**
|
||||
- [x] `Toast`: show/success/error/warning/info with auto-dismiss, stacking
|
||||
- [x] `renderBadge()`: 6 color variants (accent, success, danger, warning, purple, muted)
|
||||
- [x] `renderIcon()`: 20+ SVG icon set
|
||||
- [x] `renderIconBtn()`: icon button factory with active state
|
||||
- [x] `Theme`: init/set/get/resolved/renderToggle with localStorage
|
||||
- [x] `showConfirmDialog()`: enhanced with variant, onConfirm/onCancel
|
||||
- [x] `mountAvatarUpload()`: file input with preview, onUpload callback
|
||||
|
||||
**Settings Surface Gates:**
|
||||
- [x] BYOK gate: My Providers, Model Roles, Usage tabs shown when `user_providers.enabled`
|
||||
- [x] User Personas gate: My Personas tab shown when `user_presets.enabled`
|
||||
- [x] Models tab added to base navigation
|
||||
- [x] `SettingsPageData` gains `BYOKEnabled`, `UserPersonasEnabled` from GlobalConfig
|
||||
- [x] BYOK status indicator in nav footer
|
||||
|
||||
**Go Changes:**
|
||||
- [x] `PageData`: Theme, SurfaceSettings, InstanceName, LogoURL, Tagline, RegistrationOpen
|
||||
- [x] `Render()` defaults Theme to "dark"
|
||||
- [x] `RenderLogin()` populates splash fields from GlobalConfig
|
||||
- [x] `settingsLoader()` reads feature gates
|
||||
|
||||
---
|
||||
|
||||
## v0.22.8 — Surface Integration (Wire into Existing JS)
|
||||
|
||||
Connect v0.22.7 prototypes to the existing frontend JS modules.
|
||||
ChatPane.primary replaces singleton UI.* calls. Theme system wired
|
||||
into appearance settings. Admin surface hybrid loader completed.
|
||||
|
||||
Depends on: surface prototypes (v0.22.7).
|
||||
|
||||
**ChatPane Bridge:**
|
||||
- [ ] `ChatPane.primary` creation in `startApp()` from server-rendered mount points
|
||||
- [ ] `ui-core.js` delegation: `UI.renderMessages` → `ChatPane.primary.renderMessages`, etc.
|
||||
- [ ] `editor-mode.js` ChatPane creation for workspace chat
|
||||
- [ ] Branding init from `window.__SETTINGS__` (instanceName, logoURL)
|
||||
|
||||
**Theme Integration:**
|
||||
- [ ] Wire `Theme` into appearance settings save/load cycle
|
||||
- [ ] CM6 theme sync on theme change
|
||||
- [ ] Persist theme preference to user settings API
|
||||
|
||||
**Admin Surface:**
|
||||
- [ ] Complete hybrid section loaders for all JS-loaded sections
|
||||
- [ ] Admin surface stats/overview server-rendered content
|
||||
|
||||
**Settings Surface:**
|
||||
- [ ] Models visibility toggles (API.saveModelPreferences)
|
||||
- [ ] User Personas CRUD (add/edit/delete with confirm dialogs)
|
||||
- [ ] BYOK provider CRUD in settings context
|
||||
- [ ] Teams tab content
|
||||
|
||||
---
|
||||
|
||||
## v0.23.0 — Multi-Participant Channels + Presence
|
||||
|
||||
The channel foundation for workflows and real-time collaboration. Today
|
||||
|
||||
Reference in New Issue
Block a user