feat(db): schema v2 — contacts, memory_facts_archive, entity_refs, pompeo_note

- New table: contacts (multi-tenant person graph with aliases, details, GIN indexes)
- New table: memory_facts_archive (expired facts cleanup destination)
- memory_facts: added pompeo_note TEXT and entity_refs JSONB columns
- Applied live to Patroni primary (postgres-1, namespace persistence, DB pompeo)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-21 15:43:46 +00:00
parent 668210694f
commit 70b668954e
2 changed files with 90 additions and 3 deletions

View File

@@ -4,6 +4,25 @@ Tutte le modifiche significative al progetto ALPHA_PROJECT sono documentate qui.
---
## [2026-03-21] Schema DB v2 — contacts, memory_facts_archive, entity_refs
### Nuove tabelle
- **`contacts`**: grafo di persone multi-tenant. Ogni riga modella una relazione `user_id → subject` con `relation`, `city`, `country`, `profession`, `aliases[]`, `born_year`, `details` (narrativa libera per LLM) e `metadata` JSONB. Traversabile ricorsivamente per inferire relazioni di secondo grado (es. Martin → zio Mujsi → figlio Euris → cugino di primo grado da parte di madre). Indici GIN su `subject` (trigram) e `aliases` per similarity search.
- **`memory_facts_archive`**: destinazione del cleanup settimanale dei fatti scaduti. Struttura identica a `memory_facts` + `archived_at` + `archive_reason` (`expired` | `superseded` | `merged`). I fatti archiviati vengono poi condensati in un episodio Qdrant settimanale.
### Colonne aggiunte a `memory_facts`
- **`pompeo_note TEXT`**: inner monologue dell'LLM al momento dell'insert — il "perché" del fatto (già in uso nel Calendar Agent, ora standardizzato su tutti i source).
- **`entity_refs JSONB`**: entità estratte dal fatto strutturato — `{people: [], places: [], products: [], amounts: []}`. Permette query SQL su persone/luoghi senza full-text scan (es. `entity_refs->'people' ? 'euris vruzhaj'`).
### Applicato a
- `alpha/db/postgres.sql` aggiornato (schema v2)
- Live su Patroni primary (`postgres-1`, namespace `persistence`, DB `pompeo`)
---
## [2026-03-21] Actual Budget — Import Estratto Conto via Telegram
### Nuovi workflow