Changeset 0.18.0 (#79)
This commit is contained in:
@@ -61,12 +61,12 @@ v0.16.0 User Groups v0.17.0 Persona-KB Binding
|
||||
┌───────┴──────────────┐
|
||||
│ │
|
||||
v0.17.1 SQLite Backend ✅ v0.17.2 CodeMirror 6 ✅
|
||||
v0.17.3 Notes Graph + Wikilinks
|
||||
v0.17.3 Notes Graph + Wikilinks ✅
|
||||
(dual DB) (editor bundle, chat
|
||||
│ input, ext editor)
|
||||
└───────┬──────────────┘
|
||||
│
|
||||
v0.18.0 Memory (user + persona scopes, review pipeline)
|
||||
v0.18.0 Memory ✅ (user + persona scopes, review pipeline)
|
||||
│
|
||||
v0.18.1 Side Panel Architecture (independent panels, dual-view)
|
||||
│
|
||||
@@ -340,7 +340,7 @@ Depends on: nothing (frontend-only). Prerequisite for: extension surfaces
|
||||
|
||||
---
|
||||
|
||||
## v0.17.3 — Notes Graph + Wikilinks
|
||||
## v0.17.3 — Notes Graph + Wikilinks ✅
|
||||
|
||||
Knowledge graph and bi-directional linking for the notes system. Transforms
|
||||
notes from flat documents into an interconnected knowledge base with
|
||||
@@ -391,7 +391,7 @@ Depends on: CodeMirror 6 (v0.17.2), Notes CRUD (v0.13.x). See
|
||||
|
||||
---
|
||||
|
||||
## v0.18.0 — Memory (User + Persona Scopes)
|
||||
## v0.18.0 — Memory (User + Persona Scopes) ✅
|
||||
|
||||
Long-term memory across conversations, with scope-aware isolation.
|
||||
Unlike KB (static documents) or compaction (within-conversation), this
|
||||
@@ -403,52 +403,54 @@ contamination and enabling specialized knowledge accumulation.
|
||||
|
||||
Depends on: compaction (v0.15.0), knowledge bases (v0.14.0), persona-KB binding (v0.17.0), SQLite backend (v0.17.1).
|
||||
|
||||
See [DESIGN-0.18.0.md](DESIGN-0.18.0.md) for full spec.
|
||||
|
||||
**Memory Scopes**
|
||||
- [ ] `user` — personal facts/preferences, persists across all conversations (current industry standard)
|
||||
- [ ] `persona` — shared across all users of that Persona, accumulated from conversations (differentiator)
|
||||
- [ ] `persona+user` — per-user within a Persona context (e.g. tutoring progress per student)
|
||||
- [ ] Configurable per Persona: which scopes are active, whether user memory is passed through
|
||||
- [x] `user` — personal facts/preferences, persists across all conversations (current industry standard)
|
||||
- [x] `persona` — shared across all users of that Persona, accumulated from conversations (differentiator)
|
||||
- [x] `persona+user` — per-user within a Persona context (e.g. tutoring progress per student)
|
||||
- [x] Configurable per Persona: which scopes are active, whether user memory is passed through
|
||||
|
||||
**Data Model**
|
||||
- [ ] `memories` table: `id`, `scope` (user, persona, persona_user), `owner_id` (user_id or persona_id), `user_id` (nullable — for persona+user scope), `key`, `value`, `source_channel_id`, `confidence` (float), `status` (active, pending_review, archived), `created_at`, `updated_at`
|
||||
- [ ] Index on `(scope, owner_id, user_id)` for fast lookup
|
||||
- [ ] Embedding column (`vector(3072)`) for semantic memory search
|
||||
- [x] `memories` table: `id`, `scope` (user, persona, persona_user), `owner_id` (user_id or persona_id), `user_id` (nullable — for persona+user scope), `key`, `value`, `source_channel_id`, `confidence` (float), `status` (active, pending_review, archived), `created_at`, `updated_at`
|
||||
- [x] Index on `(scope, owner_id, user_id)` for fast lookup
|
||||
- [x] Embedding column (`vector(3072)`) for semantic memory search
|
||||
|
||||
**Tools**
|
||||
- [ ] `memory_save` tool: LLM explicitly stores a fact
|
||||
- [x] `memory_save` tool: LLM explicitly stores a fact
|
||||
- Scope-aware: saves to the active memory scope for the current Persona context
|
||||
- Structured: `key` (short label) + `value` (detail) + `confidence`
|
||||
- [ ] `memory_recall` tool: LLM queries stored facts relevant to current context
|
||||
- [x] `memory_recall` tool: LLM queries stored facts relevant to current context
|
||||
- Merges results from applicable scopes (user + persona + persona+user)
|
||||
- Semantic search via embeddings + keyword fallback
|
||||
|
||||
**Automatic Extraction**
|
||||
- [ ] Background job: post-conversation analysis identifies memorable facts (opt-in)
|
||||
- [ ] Configurable extraction prompt per Persona (e.g. "extract FAQ-worthy Q&A pairs")
|
||||
- [ ] Extracted memories start in `pending_review` status
|
||||
- [x] Background job: post-conversation analysis identifies memorable facts (opt-in)
|
||||
- [x] Configurable extraction prompt per Persona (e.g. "extract FAQ-worthy Q&A pairs")
|
||||
- [x] Extracted memories start in `pending_review` status
|
||||
|
||||
**Review Pipeline**
|
||||
- [ ] Admin/team admin review queue: pending memories with approve/reject/edit
|
||||
- [ ] Persona memory review: team admins see what Personas are "learning"
|
||||
- [ ] User memory review: users see their own memories in Settings
|
||||
- [x] Admin/team admin review queue: pending memories with approve/reject/edit
|
||||
- [x] Persona memory review: team admins see what Personas are "learning"
|
||||
- [x] User memory review: users see their own memories in Settings
|
||||
|
||||
**Memory Injection**
|
||||
- [ ] At completion time: inject relevant memories into system prompt
|
||||
- [ ] Context budget aware: limit injected memory tokens
|
||||
- [ ] Scope priority: persona+user > persona > user (most specific wins on conflicts)
|
||||
- [x] At completion time: inject relevant memories into system prompt
|
||||
- [x] Context budget aware: limit injected memory tokens
|
||||
- [x] Scope priority: persona+user > persona > user (most specific wins on conflicts)
|
||||
|
||||
**Use Cases**
|
||||
- [ ] Helpdesk Persona: builds FAQ from repeated questions, human-reviewable
|
||||
- [ ] Roleplay Persona: isolated memory prevents tone/context bleeding from user's other conversations
|
||||
- [ ] Tutoring Persona: tracks per-student progress, common misconceptions
|
||||
- [ ] Sales Persona: accumulates objection responses from real conversations
|
||||
- [ ] Onboarding Persona: learns what new hires commonly struggle with
|
||||
- [x] Helpdesk Persona: builds FAQ from repeated questions, human-reviewable
|
||||
- [x] Roleplay Persona: isolated memory prevents tone/context bleeding from user's other conversations
|
||||
- [x] Tutoring Persona: tracks per-student progress, common misconceptions
|
||||
- [x] Sales Persona: accumulates objection responses from real conversations
|
||||
- [x] Onboarding Persona: learns what new hires commonly struggle with
|
||||
|
||||
**User Controls**
|
||||
- [ ] Settings → Memory: view, edit, delete personal memories
|
||||
- [ ] Per-Persona memory toggle: "Allow this persona to remember things about me"
|
||||
- [ ] Admin: enable/disable, retention policies, per-team scoping
|
||||
- [ ] Privacy: user memories never cross team boundaries; persona memories respect group access
|
||||
- [x] Settings → Memory: view, edit, delete personal memories
|
||||
- [x] Per-Persona memory toggle: "Allow this persona to remember things about me"
|
||||
- [x] Admin: enable/disable, retention policies, per-team scoping
|
||||
- [x] Privacy: user memories never cross team boundaries; persona memories respect group access
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user