记忆系统
Zava 用工作记忆、短期记忆和持久 journal 分离热数据与可恢复状态。普通会话输入会
追加到 journal,/memory 查询持久条目,/save 执行 fsync。
数据路径
CLI/HTTP input
-> working memory
-> short-term ring
-> memory.journal (CRC + trailer)
-> recall Top-N
实现入口:runtime/memory/working_memory.asm、short_term.asm、journal.asm、
recall.asm、forget.asm 和 dream.asm。
journal 布局
所有多字节字段均为 little-endian。
Header (64 bytes)
00 magic "MEMv" 04 version
08 entry_count 10 total_size
18 created_at 20 last_entry
28 crc32 2C flags
30 reserved[16]
Entry
00 timestamp 08 type
0C flags 10 payload_len
14 payload_crc 18 session_id
20 payload[...] trailer_crc
Header CRC 覆盖 [0x00,0x28);payload CRC 必须与 trailer 一致。条目损坏时 Runtime
必须拒绝该条目,禁止把截断内容交给推理或 DREAM。
CLI 查询
无参数返回总条目数;有参数最多返回 8 个 recall 结果。HTTP 对应接口见 HTTP API。
持久化铁律
- 每个测试必须使用独立
--data-dir。 - journal 只允许追加,禁止用文本编辑器修改。
- 复制数据目录前必须先执行
/save并退出 Runtime。 - CRC 或版本不匹配必须 fail closed。