Prefs: owner defaults (model, backend, persona_id, reel span/length)
Closes #127. Grows user_ai_prefs with five nullable owner-default columns and makes them the server-side fallback layer: request param -> stored pref -> hard default, at insight generation (agentic + standard), all three insight-chat turn variants, and reel creation. - PUT /prefs accepts the fields with the existing three-state partial update semantics (TriState generalized to TriState<T> for the numeric reel_max_segments); validation (canonical BackendKind::parse, MemoriesSpan::from_str) runs before any write. - GET /prefs returns the new fields. - capture_prefs reads the existing row and carries the AI owner-defaults through unchanged (the upsert overwrites all columns), mirroring only the effective reel span/segments. - MemoriesSpan gains Display + FromStr so stored spans round-trip losslessly. 1463/0 tests (+27), clippy clean.
This commit is contained in:
1 parent
aa3c58f051
commit
a699c940b8
10 files changed
+863
-85
No files matched your search
@@ -533,6 +533,11 @@ POST /insights/chat (single-turn reply, non-streaming)
|
||||
POST /insights/chat/stream (SSE: text / tool_call / tool_result / truncated / done)
|
||||
GET /insights/chat/history?path=... (rendered transcript with tool invocations)
|
||||
POST /insights/chat/rewind (truncate transcript at a rendered index)
|
||||
|
||||
// User AI Prefs (owner defaults + passive mirror; src/prefs.rs)
|
||||
GET /prefs (current row; auth)
|
||||
PUT /prefs (partial update: omitted=unchanged, null=clear, value=set; auth)
|
||||
GET /timezones (IANA zone list from chrono-tz; unauthenticated)
|
||||
```
|
||||
|
||||
**Request Types:**
|
||||
|
||||
Reference in new issue
Block a user