Move personas off the mobile client into ImageApi as first-class records, and scope entity_facts by persona so each one builds its own voice over a shared entity graph. The new include_all_memories flag lets a persona opt back into the full hive-mind pool for human browsing of /knowledge/*; agentic generation always stays in-voice. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
1.8 KiB
SQL
44 lines
1.8 KiB
SQL
-- Drop the persona-scoping column on entity_facts via the table-rebuild
|
|
-- dance for SQLite-version portability (matches the pattern in
|
|
-- 2026-04-20-000000_add_backend_to_insights/down.sql).
|
|
DROP INDEX IF EXISTS idx_entity_facts_persona;
|
|
|
|
CREATE TABLE entity_facts_backup AS
|
|
SELECT id, subject_entity_id, predicate, object_entity_id, object_value,
|
|
source_photo, source_insight_id, confidence, status, created_at
|
|
FROM entity_facts;
|
|
|
|
DROP TABLE entity_facts;
|
|
|
|
CREATE TABLE entity_facts (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
subject_entity_id INTEGER NOT NULL,
|
|
predicate TEXT NOT NULL,
|
|
object_entity_id INTEGER,
|
|
object_value TEXT,
|
|
source_photo TEXT,
|
|
source_insight_id INTEGER,
|
|
confidence REAL NOT NULL DEFAULT 0.6,
|
|
status TEXT NOT NULL DEFAULT 'active',
|
|
created_at BIGINT NOT NULL,
|
|
CONSTRAINT fk_ef_subject FOREIGN KEY (subject_entity_id) REFERENCES entities(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_ef_object FOREIGN KEY (object_entity_id) REFERENCES entities(id) ON DELETE SET NULL,
|
|
CONSTRAINT fk_ef_insight FOREIGN KEY (source_insight_id) REFERENCES photo_insights(id) ON DELETE SET NULL,
|
|
CHECK (object_entity_id IS NOT NULL OR object_value IS NOT NULL)
|
|
);
|
|
|
|
INSERT INTO entity_facts
|
|
SELECT id, subject_entity_id, predicate, object_entity_id, object_value,
|
|
source_photo, source_insight_id, confidence, status, created_at
|
|
FROM entity_facts_backup;
|
|
|
|
DROP TABLE entity_facts_backup;
|
|
|
|
CREATE INDEX idx_entity_facts_subject ON entity_facts(subject_entity_id);
|
|
CREATE INDEX idx_entity_facts_predicate ON entity_facts(predicate);
|
|
CREATE INDEX idx_entity_facts_status ON entity_facts(status);
|
|
CREATE INDEX idx_entity_facts_source_photo ON entity_facts(source_photo);
|
|
|
|
DROP INDEX IF EXISTS idx_personas_user;
|
|
DROP TABLE IF EXISTS personas;
|