State 与 Repositories
internal/state 是一个 Anyy profile 的 persistence layer。它应向 gateway、runtime、dashboard、TUI、
channels 和 tools 隐藏 SQL shape。
Repository Pattern
为每个 query 或 mutation 添加 focused repository methods。SQL 留在 state packages 中,并返回 typed records。
Callers 应传入 context 并使用 repository errors,而不是打开自己的 SQLite connections。
Migrations
Schema setup 和 migrations 与 repository code 放在一起。新增 tables 或 columns 需要 migration SQL、 repository tests,以及旧数据可能存在时的 compatibility tests。
不要因为 storage 变化就修改 public protocol payloads。
Retention
Retention code 拥有 archive、prune、summary、raw deletion coverage 和 active window checks。它必须保留 audit 和 recovery 需要的 evidence。
不要从 prompt/context code 中 prune。使用 maintenance commands 和 repository logic。
Blob Store
Blob storage 在 SQLite 外保存 large payloads。Records 通过 hash 或 raw reference 引用 blobs,并为 UI/model-visible content 保留 bounded previews。
Blob writes 和 deletions 应足够 atomic,使 maintenance 后续可以 reconcile state 与 raw/blob storage。
Debug Bundles
Debug bundles 和 diagnostics 必须 bounded 且 redacted。它们可以包含 status、doctor output、selected metadata 和 error summaries。
不要包含 raw secrets、OAuth tokens、channel tokens、完整 private messages 或 unbounded provider payloads。