Перейти к основному содержимому

Следы доказательств и происхождение

Engram отделяет доказательства от утверждённой памяти. След (trace) сохраняет очищенную запись об источнике; память остаётся утверждённой человеком инструкцией или справкой, которая ссылается на эти доказательства.

Контракт утверждённой памяти​

Новые утверждённые воспоминания используют схему v3. Устаревшие файлы v1 и v2 остаются читаемыми и никогда не переписываются молча.

schema_version: 3
authority: instruction | reference
evidence_refs: [tr_...]
derived_from: [session-id]
revision: 1
supersedes: [older-memory-id]
superseded_by: newer-memory-id
valid_from: YYYY-MM-DD
valid_until: YYYY-MM-DD | null
last_confirmed: YYYY-MM-DD

Поля контракта: schema_version, authority, evidence_refs, derived_from, revision, supersedes, superseded_by, valid_from, valid_until и last_confirmed.

Контракт неизменяемого следа​

Каждый файл traces/<trace-id>.jsonl содержит ровно одну каноническую запись и создаётся эксклюзивно, поэтому существующий идентификатор следа нельзя перезаписать. Поля trace_id, session_id, source_hash, trust_level, sensitivity и retention сохраняют идентичность, происхождение, целостность, уровень доверия, приватность и жизненный цикл. authority: evidence — это только данные, они никогда не действуют как инструкция.

{
"trace_id": "tr_...",
"authority": "evidence",
"session_id": "session-id",
"source_hash": "sha256:...",
"trust_level": "human",
"sensitivity": "private",
"retention": "30d"
}

CLI и Web UI остаются синхронизированными​

engram observe и хуки транскриптов очищают данные до сохранения. CLI выводит идентификатор созданного следа, а save-session переносит evidence_refs и derived_from в утверждённую память. Entry Web UI читает тот же индекс и показывает в панели сведений о памяти авторитет, идентификаторы доказательств, происхождение сессии, ревизию, срок действия и ссылки замещения.

Безопасность и миграция​

По умолчанию при ручном сохранении используются trust_level: human, sensitivity: private и retention: 30d, если не настроено иное. Истёкшие или отсутствующие доказательства блокируют новые утверждённые записи. Существующие обёртки наблюдений остаются удобным материалом для проверки, указывающим на следы, а при инициализации подходящие устаревшие обёртки мигрируют один раз.

Целостность продвижения и область действия​

Обёртка во входящих — это редактируемый материал для проверки, а не источник доказательств. При save-session --file Engram повторно открывает неизменяемый след, проверяет хеш обёртки, если он есть, и использует текст следа, сессию и метаданные источника. Правка ## Raw Note не может изменить продвигаемое содержимое. Сохранение на основе следа привязано к рабочему пространству или глобальной области следа; конфликтующий явный --scope отклоняется. Идентификаторы устаревших следов и сессий получают пространство имён по области действия, чтобы избежать коллизий происхождения.