docs(personas): define v2 memory schema baseline
This commit is contained in:
@@ -10,13 +10,13 @@ Updated: 2026-03-25T19:34:59Z
|
||||
- Checks: npm run check, npm run test:v2
|
||||
- Summary: Done: persistence per-file, merge legacy partiel -> per-file, loaders retryables, clones defensifs, tests de non-regression, scripts smoke/build alignes.
|
||||
|
||||
## lot-202-memory-schema [pending]
|
||||
## lot-202-memory-schema [in_progress]
|
||||
- Description: Formaliser un schema memory persona v2 avec working memory et archival memory
|
||||
- Depends on: lot-201-runtime-hardening
|
||||
- Owner: Personas
|
||||
- Execution: manual
|
||||
- Checks: npm run check, npm run test:v2
|
||||
- Summary: A lancer apres hardening du store local.
|
||||
- Summary: Schema v2 et layout cibles documentes; migration douce du runtime memory reste a implementer.
|
||||
|
||||
## lot-203-memory-policy [pending]
|
||||
- Description: Ajouter un moteur de policies pour extraction, summarization, pruning et evaluation memory
|
||||
|
||||
@@ -10,13 +10,13 @@ Updated: 2026-03-25T19:34:59Z
|
||||
- Open tasks: none
|
||||
|
||||
## lot-202-memory-schema
|
||||
- Status: pending
|
||||
- Status: in_progress
|
||||
- Owner: Personas
|
||||
- Execution: manual
|
||||
- Checks: npm run check, npm run test:v2
|
||||
- Open tasks:
|
||||
- schema-v2 [pending] (P1, Personas)
|
||||
- storage-layout [pending] (P1, Backend API)
|
||||
- schema-v2 [done] (P1, Personas)
|
||||
- storage-layout [done] (P1, Backend API)
|
||||
- migration-soft [pending] (P2, Coordinateur)
|
||||
|
||||
## lot-203-memory-policy
|
||||
|
||||
@@ -12,8 +12,8 @@ Updated: 2026-03-25T19:34:59Z
|
||||
- [x] docs-sync (done) | owner: Coordinateur | severity: P2
|
||||
|
||||
## lot-202-memory-schema
|
||||
- [ ] schema-v2 (pending) | owner: Personas | severity: P1
|
||||
- [ ] storage-layout (pending) | owner: Backend API | severity: P1
|
||||
- [x] schema-v2 (done) | owner: Personas | severity: P1
|
||||
- [x] storage-layout (done) | owner: Backend API | severity: P1
|
||||
- [ ] migration-soft (pending) | owner: Coordinateur | severity: P2
|
||||
|
||||
## lot-203-memory-policy
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# lot-202-memory-schema
|
||||
|
||||
- Date: 2026-03-25T19:34:59Z
|
||||
- Owner: Personas
|
||||
- Status: in_progress
|
||||
|
||||
## Etat actuel
|
||||
|
||||
- La memoire persona active reste hors runtime v2-local:
|
||||
- stockage: `data/persona-memory/{Nick}.json`
|
||||
- schema: `{ nick, facts[], summary, lastUpdated }`
|
||||
- Les consommateurs actifs sont encore couples a ce schema:
|
||||
- `apps/api/src/ws-persona-router.ts`
|
||||
- `apps/api/src/ws-conversation-router.ts`
|
||||
- `apps/api/src/ws-commands-info.ts`
|
||||
- `apps/api/src/ws-commands-chat.ts` (`/memory-wipe`)
|
||||
- Le stockage est adresse par `nick`, pas par `personaId`.
|
||||
|
||||
## Schema cible v2
|
||||
|
||||
```ts
|
||||
interface PersonaMemoryRecordV2 {
|
||||
version: 2;
|
||||
personaId: string;
|
||||
personaNick: string;
|
||||
updatedAt: string;
|
||||
workingMemory: {
|
||||
facts: string[];
|
||||
summary: string;
|
||||
lastSourceMessages: string[];
|
||||
};
|
||||
archivalMemory: {
|
||||
facts: Array<{
|
||||
text: string;
|
||||
firstSeenAt: string;
|
||||
lastSeenAt: string;
|
||||
source: "chat";
|
||||
}>;
|
||||
summaries: Array<{
|
||||
text: string;
|
||||
createdAt: string;
|
||||
}>;
|
||||
};
|
||||
compat: {
|
||||
facts: string[];
|
||||
summary: string;
|
||||
lastUpdated: string;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Layout cible
|
||||
|
||||
- Nouveau dossier: `data/v2-local/persona-memory/`
|
||||
- Un fichier par persona: `data/v2-local/persona-memory/{personaId}.json`
|
||||
- La vue `compat` sert de pont temporaire pour `/memory`, `/stats` et `withPersonaMemory()`
|
||||
|
||||
## Migration douce recommandee
|
||||
|
||||
1. Introduire un repo/shared module `persona-memory-store.ts`
|
||||
2. Faire lire ce module a `ws-persona-router.ts`
|
||||
3. Migrer automatiquement `data/persona-memory/{Nick}.json` vers `data/v2-local/persona-memory/{personaId}.json` au premier load
|
||||
4. Basculer `/memory-wipe` vers ce module au lieu d ecrire le fichier a la main
|
||||
5. Garder la vue `compat` pendant la transition puis retirer l ancien schema
|
||||
|
||||
## Sous-taches cloturees
|
||||
|
||||
- `schema-v2`: done
|
||||
- `storage-layout`: done
|
||||
|
||||
## Sous-tache restante
|
||||
|
||||
- `migration-soft`: pending
|
||||
@@ -25,15 +25,15 @@
|
||||
{
|
||||
"id": "lot-202-memory-schema",
|
||||
"description": "Formaliser un schema memory persona v2 avec working memory et archival memory",
|
||||
"summary": "A lancer apres hardening du store local.",
|
||||
"status": "pending",
|
||||
"summary": "Schema v2 et layout documentes; migration douce du runtime memory encore pending.",
|
||||
"status": "in_progress",
|
||||
"owner": "Personas",
|
||||
"execution": "manual",
|
||||
"checks": ["npm run check", "npm run test:v2"],
|
||||
"depends_on": ["lot-201-runtime-hardening"],
|
||||
"tasks": [
|
||||
{ "id": "schema-v2", "query": "Definir les blocs working memory et archival memory par persona", "status": "pending", "owner": "Personas", "severity": "P1" },
|
||||
{ "id": "storage-layout", "query": "Etablir le layout de persistance memory sans recroiser la source editoriale", "status": "pending", "owner": "Backend API", "severity": "P1" },
|
||||
{ "id": "schema-v2", "query": "Definir les blocs working memory et archival memory par persona", "status": "done", "owner": "Personas", "severity": "P1" },
|
||||
{ "id": "storage-layout", "query": "Etablir le layout de persistance memory sans recroiser la source editoriale", "status": "done", "owner": "Backend API", "severity": "P1" },
|
||||
{ "id": "migration-soft", "query": "Preparer une migration douce depuis les structures runtime actuelles", "status": "pending", "owner": "Coordinateur", "severity": "P2" }
|
||||
]
|
||||
},
|
||||
|
||||
@@ -52,22 +52,22 @@
|
||||
}
|
||||
},
|
||||
"lot-202-memory-schema": {
|
||||
"status": "pending",
|
||||
"status": "in_progress",
|
||||
"depends_on": [
|
||||
"lot-201-runtime-hardening"
|
||||
],
|
||||
"owner": "Personas",
|
||||
"tasks": {
|
||||
"schema-v2": {
|
||||
"status": "pending",
|
||||
"attempts": 0,
|
||||
"output": "",
|
||||
"status": "done",
|
||||
"attempts": 1,
|
||||
"output": "ops/v2/personas-runtime-20260325/outputs/lot-202-memory-schema/summary.md",
|
||||
"last_error": ""
|
||||
},
|
||||
"storage-layout": {
|
||||
"status": "pending",
|
||||
"attempts": 0,
|
||||
"output": "",
|
||||
"status": "done",
|
||||
"attempts": 1,
|
||||
"output": "ops/v2/personas-runtime-20260325/outputs/lot-202-memory-schema/summary.md",
|
||||
"last_error": ""
|
||||
},
|
||||
"migration-soft": {
|
||||
|
||||
Reference in New Issue
Block a user