跳到主要内容

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。