Changeset 0.10.2 (#58)
This commit is contained in:
63
ROADMAP.md
63
ROADMAP.md
@@ -23,7 +23,7 @@ v0.9.4 API Key Encryption + Vault
|
||||
│
|
||||
v0.10.0 Model Roles (utility + embedding) + Usage Tracking
|
||||
│
|
||||
v0.10.1 Summarize & Continue (first utility role consumer)
|
||||
v0.10.2 Summarize & Continue (first utility role consumer)
|
||||
│
|
||||
┌───────┴──────────────┐
|
||||
│ │
|
||||
@@ -404,16 +404,56 @@ Three tracks of infrastructure that everything downstream depends on.
|
||||
|
||||
---
|
||||
|
||||
## v0.10.1 — Summarize & Continue
|
||||
## ✅ v0.10.1 — Polish + UX
|
||||
|
||||
Spit and polish release: admin system prompt injection, team management modal
|
||||
extraction, persona tab, side panel enhancements, code download, and critical
|
||||
OpenAI streaming usage race fix.
|
||||
|
||||
- [x] Admin system prompt (global, injected before user/preset prompts)
|
||||
- [x] Personas tab (moved from Models, policy-gated)
|
||||
- [x] Team Management modal (extracted from Settings, tabbed, multi-team picker)
|
||||
- [x] Preview pane: clear button, fullscreen toggle, resizable
|
||||
- [x] Code block: download button (infers extension from language tag)
|
||||
- [x] Personal Usage scoped to BYOK only
|
||||
- [x] OpenAI streaming usage race fix (deferred Done event until usage chunk)
|
||||
- [x] Usage logging zero-token guard removal
|
||||
|
||||
---
|
||||
|
||||
## v0.10.2 — Summarize & Continue + Role Cleanup
|
||||
|
||||
First consumer of the utility model role. User-triggered conversation
|
||||
compaction — not automatic (that's v0.15.0).
|
||||
|
||||
- [ ] "Summarize and continue" button (appears alongside context length warning)
|
||||
- [ ] Calls utility role to summarize conversation history
|
||||
- [ ] Summary inserted as system message, earlier messages hidden from context
|
||||
- [ ] Original messages preserved in DB (viewable via "show full history" toggle)
|
||||
- [ ] Respects team-level role overrides for utility model selection
|
||||
Depends on: utility model role (v0.10.0).
|
||||
|
||||
**Summarize & Continue**
|
||||
- [x] "Summarize and continue" button in context warning bar (≥75% context)
|
||||
- [x] `POST /channels/:id/summarize` — calls utility role with conversation history
|
||||
- [x] Summary inserted as tree node with `metadata.type = "summary"` + boundary metadata
|
||||
- [x] `loadConversation` recognizes summary boundaries: replaces pre-summary messages with summary system message
|
||||
- [x] Multiple summaries stack (re-summarize after context fills again)
|
||||
- [x] Fork-aware: summary is a tree node, branches have independent boundaries
|
||||
- [x] Original messages preserved: "show full history" toggle reveals collapsed messages
|
||||
- [x] Usage logged against utility role with cost tracking
|
||||
|
||||
**BYOK Role Overrides**
|
||||
- [x] Personal role resolution chain: personal → team → global
|
||||
- [x] User Settings → Model Roles tab (BYOK providers only)
|
||||
- [x] Stored in `user.settings` JSONB (`model_roles` key, same shape as team overrides)
|
||||
- [x] Only utility and embedding roles (generation removed)
|
||||
|
||||
**Generation Role Removal**
|
||||
- [x] `RoleGeneration` removed from `ValidRoles` (was "generation" for image/media)
|
||||
- [x] Removed from admin Roles tab UI
|
||||
- [x] Image gen will be extension-managed (v0.11.0), not a role slot
|
||||
|
||||
**Utility Rate Limiting**
|
||||
- [x] `utility_rate_limit` global setting (default: 20 calls/hour/user, 0 = unlimited)
|
||||
- [x] Check against `usage_log` before executing org-funded utility calls
|
||||
- [x] BYOK calls exempt (user's own key, user's own cost)
|
||||
- [x] 429 response with clear message when exceeded
|
||||
|
||||
---
|
||||
|
||||
@@ -681,6 +721,15 @@ based on need.
|
||||
- GDPR-style "download my data"
|
||||
- Backup/restore CronJob manifests
|
||||
|
||||
**UX / Multi-Seat**
|
||||
- Per-chat model/preset persistence (server-side). Currently a localStorage
|
||||
bandaid (v0.10.2) that doesn't roam across devices. Proper fix: store
|
||||
`last_selector_id` in `channels.settings` JSONB on each send. On chat
|
||||
selection, resolve from `channel.settings.last_selector_id` → match against
|
||||
available models/presets → fall back to `channel.model` → global default.
|
||||
Eliminates device-local state entirely. Needs `updateChannel` PATCH on
|
||||
completion success (single extra column merge, no migration).
|
||||
|
||||
**Platform**
|
||||
- Rate limiting per user/team/tier (token budgets)
|
||||
- Provider health monitoring + key rotation
|
||||
|
||||
Reference in New Issue
Block a user