MemoryGuard
面向编程 Agent 的受治理共享记忆。
本地优先的 MCP 记忆层,提供自动整理、范围规则、证据链和可逆治理。
English
> Agent 可以正常写入,MemoryGuard 负责分类、去重、冲突识别、隔离和版本治理。
> 每次变化保留证据,之后仍可修正、恢复或回滚。
>
> **无账号、无远端服务器、无远程遥测。可选的用量遥测仅保存在本地,且只记录有界的隐私保护汇总。**
快速开始 ·
升级 ·
知识库 ·
系统架构 ·
隐私边界
神经图展示受治理投影;原始对话正文不会直接进入图谱或自动注入上下文。
## v0.7.12 更新
v0.7.12 改进 MCP 发现面、有界读取和本地用量计量,同时保留现有治理动作与
MCP name:`io.github.irisxc4/memoryguard`。
- **11 个默认工具和完整目录:** 新 MCP 客户端通过 `tools/list` 获取 11 个日常
工具,包括能力发现和治理调用。`memoryguard_capabilities` 提供分页的 MCP
操作与经审查的 headless GUI 操作元数据;高级 MCP 名称仍可按精确名称兼容调用。
- **有界读取响应:** 可重放的成功读取以完整 MCP envelope 的 24,000 UTF-8
字节为上限;合格的超大读取才会返回短期进程内存的 `response_ref`,不截断原始数据;
无法安全重放或超过快照上限的读取返回有界的缩小查询提示。私有引用每页都在当前可信
session 和 binding 下复核;写入和
`context_bootstrap` 保留完整 receipt/强制规则合约,不能请求响应分页。
- **缓存感知用量:** 分开记录宿主上报的 cache-read 和 cache-write input,并给出
`complete`、`partial`、`unavailable` 覆盖状态;实测 0 保持为 0,缺失数据保持未知。
确定性单位估算明确标为估算,不声称实测 token 降幅。
- **治理调用:** 变更类 broker 目标仍要求确认和非空 idempotency key,并由目标继续执行既有
权限、作用域和 readiness 检查。
详见 [v0.7.12 发布说明](docs/releases/v0.7.12.md) 与
[更新日志](CHANGELOG.md)。
更早版本的细节请见[更新日志](CHANGELOG.md)和
[GitHub Releases](https://github.com/irisxc4/memoryguard/releases)。
### Token 证据与演示
仅在已授权的本地工作区运行基准:
```powershell
python scripts/benchmark_usage_telemetry.py --workspace . --window-days 7 --sync
```
请阅读[用量基准说明](docs/benchmarks/README.md)了解宿主上报、派生、估算和不支持状态,
并按[演示录制清单](docs/benchmarks/demo-script.md)制作脱敏演示。仓库中的神经图是合成插图,
不是实际产品录屏,也不能作为用量或节省证据。
## v0.6.0 重大 V2 重构
v0.6.0 不是单纯的存储升级,而是生产数据平面的整体重构:
- **权威 V2 分域:** Memory、Rules、Evidence、Content、Runtime、Projection、Assets、CodeGraph、Skills、System 分离为明确的 SQLite 域,并由治理边界统一约束。
- **显式切换:** `V1_ACTIVE → V2_BUILDING → V2_READY → V2_ACTIVE` 全程 fail-closed;进入 READY/ACTIVE 后不会静默回落旧存储,也不会双写。
- **无损迁移:** frozen-source 准备使用一致的 SQLite online backup,校验源/目标证据,复核 live-source drift,并保留 V1 数据与 migration-backups 以支持回滚。
- **Native 路由收口:** MCP、CLI、GUI、Hook 全部显式分类;233 个切换面中 138 个实现、95 个退休,neutral/blocker 均为 0。
- **治理智能链路:** Rule lifecycle、RuleMerge、抽取/富化、External MCP 导入、provider 控制面、会话历史、Knowledge Library 与 GUI 治理统一走 V2 evidence/decision 流程。
- **运维证据:** Reference Audit、分域 SQLite 健康检查、受保护维护、回滚证据和未绑定 Agent 的安全诊断共同参与 readiness 与运维。
## 为什么需要 MemoryGuard
持久化只解决“存下来”,没有解决“以后还能不能可靠复用”。
| 没有治理 | 使用 MemoryGuard |
|---|---|
| 笔记持续堆积,没有规范状态 | 写入会被分类、去重、覆盖或标记冲突 |
| 纠错直接覆盖旧值 | 证据和 supersede 链保留变化原因 |
| Token、凭证可能继续活跃 | 敏感内容进入隔离区,不参与活跃召回 |
| 每条写入都要人工审批 | Agent 正常工作,人只治理异常和结果 |
| 原始聊天自动混入未来上下文 | 对话历史独立保存,只能显式读取 |
## 系统架构
```mermaid
%%{init: {"theme":"base","themeVariables":{"background":"#071521","fontFamily":"Arial, sans-serif","fontSize":"14px","primaryTextColor":"#EEF4F8","lineColor":"#557287","edgeLabelBackground":"#071521","clusterBkg":"#0A1A29","clusterBorder":"#27445A"},"flowchart":{"htmlLabels":true,"curve":"basis","nodeSpacing":32,"rankSpacing":48,"padding":14}}}%%
flowchart TB
Hosts["编程 AGENT
Claude Code · Codex · Cursor · TRAE "]:::host
Gateway["本地接入
MCP stdio · 重定向规则 · 生命周期 Hook "]:::gateway
subgraph Core["治理核心 "]
direction LR
Identity["信任边界
身份 · 范围 "]:::core
MemoryAPI["长期记忆
受治理读写 "]:::active
Rules["规则
分配 · 作用域 "]:::rule
HistoryAPI["对话证据
搜索 · 时间线 "]:::history
Knowledge["知识库
切片 · FTS · 图谱 "]:::knowledge
Identity --> MemoryAPI
Identity --> Rules
Identity --> HistoryAPI
Identity --> Knowledge
end
Stores[("V2 分域存储
Memory · Rules · Evidence · Content · Runtime · Projection ")]:::store
Bootstrap["有界上下文
强制规则包 · 相关记忆 · 相关知识 "]:::bootstrap
Control["人工治理
CLI · 桌面控制台 "]:::surface
Hosts --> Gateway --> Identity
MemoryAPI --> Stores
Rules --> Stores
HistoryAPI --> Stores
Knowledge --> Stores
Stores --> Bootstrap
Control --> Identity
classDef host fill:#12243A,stroke:#38D5C8,color:#EEF4F8,stroke-width:1.4px;
classDef gateway fill:#0D3338,stroke:#38D5C8,color:#EEF4F8,stroke-width:2.4px;
classDef core fill:#12243A,stroke:#557287,color:#EEF4F8,stroke-width:1.4px;
classDef active fill:#0D383A,stroke:#38D5C8,color:#EEF4F8,stroke-width:2px;
classDef rule fill:#3B2C18,stroke:#F3B562,color:#EEF4F8,stroke-width:1.8px;
classDef history fill:#102F45,stroke:#73C7F5,color:#EEF4F8,stroke-width:1.8px;
classDef knowledge fill:#24351D,stroke:#9BD36A,color:#EEF4F8,stroke-width:1.8px;
classDef store fill:#0B1624,stroke:#7F96A8,color:#EEF4F8,stroke-width:1.4px;
classDef bootstrap fill:#EEF4F8,stroke:#38D5C8,color:#071521,stroke-width:2.4px;
classDef surface fill:#EEF4F8,stroke:#38D5C8,color:#071521,stroke-width:2px;
style Core fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
linkStyle default stroke:#557287,stroke-width:1.4px;
```
## 快速开始
### MCP Registry 元数据
本包以 `io.github.irisxc4/memoryguard` 提供本地 stdio MCP 服务,注册表元数据见
[`server.json`](server.json)。上方 marker 随 PyPI 包 README 一并发布;发布由 GitHub
OIDC 推送至 PyPI 和官方 MCP Registry。请以公开页面实时核验当前包版本与
`io.github.irisxc4/memoryguard` 的 active/latest 状态。
### 1. 安装
```bash
python -m pip install agent-memguard
```
需要桌面治理台:
```bash
python -m pip install "agent-memguard[gui]"
```
### 2. 授权当前项目
```bash
memoryguard source add .
```
### 3. 连接 / 修复编程 Agent
全局 Provider 配置始终从用户级 canonical data home 的真实 binding 重建;重复执行是幂等的,也会清理被全局配置取代的 MemoryGuard 项目级覆盖。
```bash
# 单独修复
memoryguard provider repair claude
memoryguard provider repair codex
memoryguard provider repair cursor
memoryguard provider repair trae
# 一次修复全部已检测 Provider
memoryguard provider repair all
```
重启宿主后验证:
```bash
memoryguard doctor
memoryguard mcp-status
memoryguard hooks status --provider all
```
启动桌面治理台:
```bash
memoryguard gui
```
`memoryguard-gui .` 仍可用于桌面快捷方式。裸 `memoryguard gui` 始终打开固定用户级
控制目录(Windows 默认 `%LOCALAPPDATA%\MemoryGuard`),因此无论从项目目录还是
`C:\Windows\System32` 启动都不会静默切换数据库。`MEMORYGUARD_WORKSPACE` 是显式
运维覆盖;需要指定隔离工作区时仍可使用 `memoryguard gui ` 或
`memoryguard gui --workspace `。
它不再记住上次项目,也不会从启动目录推断工作区或弹出文件夹选择器。
在 Windows 上,`memoryguard gui` 会把原生窗口独立到后台进程,关闭 PowerShell 不会关闭 GUI。
详细说明:[Claude Code](docs/install-claude-code.md) ·
[Codex](docs/install-codex.md) · [Cursor](docs/install-cursor.md)
### 稳定的 Codex / Router 绑定
Codex/Router 绑定的是本机稳定的 Codex 程序与控制安装。账号 Profile 只是
endpoint/alias,不会成为新的记忆所有者:切换 Profile 时会自动发现或修复该
Profile,并复用已验证的 Agent 绑定和当前 active group。请求身份仍然
fail-closed;这不会让不同机器或任意账号共享记录。
## 升级
当前版本通过 Python 包管理器升级:
```bash
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctor
```
安装过 GUI extra 时:
```bash
python -m pip install --upgrade "agent-memguard[gui]"
```
目前**没有**包级自更新命令。包管理器是正式升级入口;下面的
`memoryguard upgrade` 是工作区迁移,不是包自更新。
### 升级现有 V1 用户数据
先升级包,再执行完整验证迁移。正常用户数据目录不需要 workspace、data-home、apply
或 confirm 参数:
```bash
python -m pip install --upgrade agent-memguard
memoryguard --version # 确认已安装版本
memoryguard upgrade
memoryguard doctor
```
该命令构建 V2、校验 frozen/live source evidence、迁移 Agent/Group control,并仅在
所有门禁通过后激活;随后只删除本次成功迁移的备份批次。重复执行 `V2_ACTIVE` 是幂等的。
零写入检查使用:
```bash
memoryguard upgrade --preview
```
隔离安装仍可使用显式 workspace/data-home 高级参数。任一门禁失败都会保持非 active
并保留证据;成功激活后不会继续保留冗余迁移备份。
### 更早的 pre-V2 工作区:显式切换到 V2
v0.6.0 随包安装 `memoryguard-v2` 运维命令:
```bash
# 只读查看 manifest
memoryguard-v2 status -w .
# 生成 frozen-source V2 shadow,并只停在 V2_READY
memoryguard-v2 prepare -w . --apply
# 仅当 prepare 输出 V2_READY / ready=true 后显式激活
memoryguard-v2 activate -w . --confirm V2_ACTIVE
```
prepare 会使用 SQLite online backup 捕获一致快照,保留 V1 与
`migration-backups`,并在 READY 前检查 live-source drift;activate 在真正修改
manifest 前还会再检查一次 drift。升级过程中不要删除 legacy V1 数据,也不要删除
迁移备份。
## 知识库
桌面治理台可以把你选择的文件夹或文件集合加入本地知识库。源文件保持原位,
MemoryGuard 把检索索引写入用户数据目录,不会给每个资料项目复制一套知识库数据库;
Knowledge metadata 不会变成第二个正文存储。
| 能力 | 当前行为 |
|---|---|
| 文件/文件夹入库 | 文件夹作为一本书,选中文件作为文档进入索引 |
| 结构化处理 | 解析文档、保留章节/小节上下文、生成可追溯切片 |
| 检索 | 全文检索、可选 Embedding、分层知识图谱 |
| 自然同步 | 重新整理变更文件;部分扫描或失败不会误删以前已索引内容 |
| 删除治理 | 移入知识库回收站、恢复,或明确永久清理恢复快照 |
| 记忆候选 | 先预览带来源证据的候选,确认后才写入长期记忆 |
从桌面治理台进入**知识库**。远程 Embedding 或模型索引必须显式授权;未授权时,
本地全文检索仍可使用,不会把资料正文发送给远程 Provider。
### CodeGraph 刷新
首次构建 CodeGraph 仍必须显式确认并执行全量构建。Scope 建图后,每次成功的受信任
文件写入都可以触发该 Scope 的增量刷新,但仍要通过严格的源路径和 active binding
校验。内容 hash 未变化时不产生新 revision;删除的文件会失活;下一轮上下文只注入
一次有界的 `affected` receipt。该路径不运行 daemon 或 watcher,也不会从 shell 或
自由文本猜测路径。
### 桌面治理台页面
GUI 有 8 个可见导航入口:7 个治理页,加上独立的 Token 用量与节省页:
1. 治理总览
2. 数据源与 Agent
3. 记忆核心
4. CodeGraph
5. 规则与习惯
6. 对话历史
7. 风险信号与治理控制台
8. Token 用量与节省(独立于七个治理页)
Agent 列表显示可读的程序/provider 名称,底层 ID 只在详情中展示;没有数据时明确
显示空态。
## 规则、历史与知识分层
| 数据面 | 用途 | 上下文行为 |
|---|---|---|
| **长期记忆与规则** | 偏好、流程、纠错、事实、项目和范围化强制规则 | 强制规则在作用域/排除/冲突与语义去重后使用独立字符/Token 预算。生效条数超过 20 只是健康告警,不是硬上限,存储也不按条数封顶。敏感、损坏、单条超限和总量溢出仍失败关闭且不会静默截断;普通记录按任务相关性召回 |
| **对话历史** | 带 owner 和共享组权限的本地原文证据 | 永不自动进入 bootstrap,只能经历史工具显式读取 |
| **知识库** | 用户选择的文档资料、切片和派生索引 | 仅返回有界相关片段;候选不会静默变成长时记忆 |
| **神经图** | 导航记忆、规则、项目、Agent、会话和知识投影 | 展示安全元数据和摘要,不展示原始聊天正文 |
历史读取采用“搜索结果 → 有界时间线 → 指定 Turn/会话”的渐进路径。历史萃取先
生成预览,再经明确接受进入正常治理写入。
## 可治理内容
| 信号 | 治理动作 |
|---|---|
| 重复或过期记忆 | 查看规范记录和覆盖链,必要时恢复旧版本 |
| 相互冲突的记忆 | 同时保留两侧,直到明确裁决 |
| Secret、Token 或凭证 | 隔离,不进入活跃共享记忆 |
| 自动整理错误 | 修正、合并、锁定、恢复或按证据回滚 |
| 多个编程 Agent | 绑定到同一共享组,同时保留来源身份和作用域 |
| 强制规则 | 分配给 Agent、项目、Provider、运行角色或共享组 |
治理台不是审批队列。Agent 不必等待;人可以在需要时根据证据治理结果。
## 支持的宿主
| 宿主 | 接入方式 | 当前边界 |
|---|---|---|
| Claude Code | 全局 MCP、重定向规则、用户级 Hook | 已验证接管路径 |
| Codex | 全局 MCP、重定向规则、用户级 Hook | 已验证接管路径 |
| Cursor | 全局 MCP、重定向规则、用户级 Hook | 已验证接管路径 |
| TRAE | MCP 与重定向规则 | 未验证可靠 Hook seam,按降级能力报告 |
MemoryGuard 会如实报告 redirected、observed、operational 或 unsupported,
不会在宿主没有可靠接入点时声称已关闭其原生记忆。
## 隐私与安全边界
- MemoryGuard 以本地 MCP stdio 服务运行。
- 除非你明确授权远程模型或 Embedding 操作,受治理数据不会离开本机。可选用量遥测只写入
`.memoryguard/usage_telemetry.sqlite`,不会上传;其中宿主 token 事件与确定性 MCP 转换事件
均为本地保存。Token 节省比例是基于 MemoryGuard 确定性单位的估算,不是 Provider 账单;
不上报 token 的宿主在实际测量列中会明确标为不支持。
- 知识库数据库位于 `MEMORYGUARD_HOME` 或平台用户数据目录;被选中的源文件夹不会
获得一套独立知识库数据库。
- V2 权威工作区状态按 Memory、Rules、Evidence、Content、Runtime、Projection、
Assets、CodeGraph、Skills 与 System 分域保存在 `.memoryguard/`;History、Source、
Binding、Group control 也全部是 V2-native surface。切换后 legacy V1 产物继续保留
为本地回滚/审计证据,但不再是 V2 runtime 写入目标,且只有 `memoryguard.migration`
可以读取。
- 来源扫描默认只读;变更路径带有校验、明确作用域、来源证据和可逆状态。
- 隔离记录不会进入活跃共享记忆。
- 原始对话历史永不自动注入 bootstrap。
- 共享组历史读取按当前活跃成员关系授权,且不授予删除其他 Agent 来源的权限。
## CLI
| 命令 | 说明 |
|---|---|
| `audit [path]` | 只读审计并生成报告 |
| `open [path]` | 打开最新交互报告 |
| `explain ` | 解释发现项的证据和风险 |
| `source ` | 管理授权来源 |
| `scan` | 扫描授权来源并生成覆盖账本 |
| `doctor` | 诊断 V2 manifest、分域可用性和 native coverage |
| `mcp-status` | 查看 V2 MCP/后端健康状态;租户计数要求已绑定 Agent scope |
| `hooks ` | 安装、检查、暂停、修复或移除宿主 Hook |
| `provider ` | 检查或修复全局 Provider 集成 |
| `storage audit|report` | 执行只读 Reference Audit 与分域 SQLite 健康报告 |
| `storage sweep|compact` | 执行受门控的 V2 维护;物理变更要求 ACTIVE、lease、generation 与安全证明 |
| `groups ` | 检查受治理共享组状态 |
| `gui [path]` | 启动交互式治理台 |
| `desktop` | 启动可信桌面执行器 |
旧 V1 的 `plan`、`apply`、`verify`、`undo`、`import` 与 `gc` 命令名可能仍被解析,
但它们只是显式 retired compatibility surface,不是 V1 runtime path;在 `V2_ACTIVE`
下返回稳定 retired 结果,不会写回 legacy store。旧数据输入只接受
`memoryguard.migration` 的显式升级流程。
以 `memoryguard --help` 和 `memoryguard --help` 为当前安装版本的命令真相源。
## MCP API
默认 MCP 发现面保持精简。新 MCP 客户端通过 `tools/list` 获得以下 11 个日常工具:
| 工具 | 用途 |
|---|---|
| `memoryguard_context_bootstrap` | 加载有界的强制规则和相关记忆上下文 |
| `memoryguard_memory_search` | 按查询词、生命周期状态和有界条数搜索受治理记忆。`kind` 不是 MCP 搜索过滤项;语义重复/冲突检查属于独立的高级治理能力。 |
| `memoryguard_memory_read` | 读取单条受治理记忆 |
| `memoryguard_memory_write` | 写入并整理受治理记忆 |
| `memoryguard_memory_update` | 更新已知记录的正文、类型、召回策略或优先级;不改变生命周期状态,也不能恢复已删除记录,恢复仅由 GUI 治理完成。 |
| `memoryguard_memory_delete` | 软删除受治理记忆 |
| `memoryguard_memory_status` | 查看共享记忆状态 |
| `memoryguard_audit` | 执行只读本地治理审计 |
| `memoryguard_explain` | 解释审计发现及其证据 |
| `memoryguard_capabilities` | 发现已注册 MCP 操作和经审查的 headless GUI 操作,支持分页和按需 JSON Schema |
| `memoryguard_invoke` | 调用已发现的 MCP 或经审查的 headless GUI 操作;变更目标要求确认和 idempotency key |
高级治理能力仍保留在 GUI 和 CLI:规则生命周期、绑定与共享组、来源扫描、
CodeGraph、知识库与历史复核、Provider 控制、外部 MCP 导入及维护操作。
已有高级 MCP 名称在已安装客户端按精确名称调用时仍保持兼容,但不会出现在默认
`tools/list` 中。这样减少发现和 schema 的上下文负担,不会删除这些治理能力。
`memoryguard_capabilities` 提供完整注册的 MCP 操作和 headless GUI 操作元数据,
支持精确名称、query、domain 过滤和 offset 分页;只有 `include_schema=true` 时才在
选定页返回 JSON Schema。`memoryguard_invoke` 调用已注册目标;变更目标仍要求
`confirmed=true` 和非空 `idempotency_key`,这些证明会传递给目标的权限、作用域和 readiness 检查。
### 有界读取响应
MemoryGuard 默认压缩 JSON 文本。可重放的成功读取以完整 MCP envelope 的 24,000
UTF-8 字节为上限。小响应保持原有形状;符合回取条件的超大成功读取返回带 `response_ref` 的有界
receipt,不会静默截断。通过已注册的 broker `memoryguard_response_read` 读取页面,
它不属于默认 `tools/list`,应通过 `memoryguard_invoke` 调用。
页面是带 `next_offset` 的 UTF-8 JSON 片段;`limit` 为 4–4096 字节,offset 必须位于
UTF-8 字符边界。单个 JSON 文本 payload 可以用顶层字段名或对象型 JSON Pointer(例如
`/data/memory_id`)选择业务字段;多 content 和非 JSON 结果拒绝字段选择,只能读取完整 envelope 页面。
私有引用只存在于 MCP 进程内,最长 5 分钟,最多 16 个快照,每个最多 512,000 字节;
它绑定准确的可信 session、principal、scope 和 active binding revision。每一页都会在当前
授权下重新执行原始读取并比较 digest。拒绝、结果改变、binding/session 改变或过期会返回
稳定错误,例如 `response_ref_access_denied`、`response_ref_expired` 或
`response_ref_result_changed`;旧缓存不能绕过当前读取。公共能力元数据继续使用现有 offset 分页。
写入动作和 `context_bootstrap` 保留完整 receipt/强制规则合约,不能请求响应分页,因此分页不会
再次执行 mutation。若超大读取无法安全建立引用,则返回 `delivery.status="unavailable"` 和
`action="narrow_query"`,不会承诺可取回完整结果。
底层兼容调用目录还覆盖:
- 长期记忆读、搜索、写、更新、删除和状态查询;
- 强制规则隔离预算与有界上下文 bootstrap(条数告警、字符/Token 失败关闭);
- 规则创建、反馈、合并治理、撤销和作用域统计;
- Agent 绑定与共享组检查;
- 来源扫描、神经图投影、导入预览和构建规划;
- 文档提取预览、候选接受和知识检索;
- 对话历史搜索、时间线、显式读取、导出、删除和萃取预览;
- Provider 安装和宿主 Agent 信息补全。
精确工具列表以 MCP `tools/list` 为准。
## 项目链接
- [PyPI 包](https://pypi.org/project/agent-memguard/)
- [GitHub Releases](https://github.com/irisxc4/memoryguard/releases)
- [更新日志](CHANGELOG.md)
- [v0.7.12 发布说明](docs/releases/v0.7.12.md)
- [v0.7.11 发布说明](docs/releases/v0.7.11.md)
- [v0.7.9 发布记录](docs/releases/v0.7.9.md)
- [v0.7.8 发布记录](docs/releases/v0.7.8.md)
- [v0.7.7 发布记录](docs/releases/v0.7.7.md)
- [v0.7.6 发布记录](docs/releases/v0.7.6.md)
- [v0.7.5 发布记录](docs/releases/v0.7.5.md)
- [v0.7.4 发布记录](docs/releases/v0.7.4.md)
- [v0.7.3 发布记录](docs/releases/v0.7.3.md)
- [v0.7.2 发布记录](docs/releases/v0.7.2.md)
- [v0.7.1 发布记录](docs/releases/v0.7.1.md)
- [v0.7.0 发布门禁](docs/releases/v0.7.0.md)
- [长期记忆连续性与无损控体积 Spec](docs/memory-continuity-storage-spec-v1.md)
- [隐私政策](PRIVACY.md)
- [使用条款](TERMS.md)
- [贡献指南](CONTRIBUTING.md)
- [贡献者许可协议](CLA.md)
- [Issue](https://github.com/irisxc4/memoryguard/issues)
## 路线图
- **发布历史:** v0.7.9 汇总 canonical 治理、本地 Token 证据、可读的多 Agent 治理,并通过 GitHub、PyPI 与官方 MCP Registry 公开分发。v0.7.8 记录前一阶段的治理、遥测与 Codex 运行时工作;v0.7.7 让已验证且唯一绑定的控制目录可以安全执行普通 Shell 下的
provider repair,并让已安装版 Codex MCP/Hook 修复统一使用当前解释器,同时保留 Agent 与
共享组身份;v0.7.6 统一 Codex Hook/MCP 的不可变 runtime snapshot,缩短 Hook 状态锁窗口,
并让 bootstrap 成功/失败状态保持一致。更早版本的冲突复核、canonical 治理、共享历史、写入→
读回与 Codex 生命周期细节见对应发布记录;v0.7.1 的 V2-only 迁移与桌面生命周期内容保留为
历史发布背景。
- **验收边界:** Graphify 证据是专项 `3 / 3` 加上前文所述真实全仓
export/projection;不表示 upstream Graphify 的全仓测试套件通过。
- **发布后下一步:** 扩展 CodeGraph/Skills ingestion、维护报告和迁移可观测性。
长期记录不会仅仅因为存在时间长而被淘汰。
- **以后:** 只在需求被验证后扩展团队和企业能力。
详细设计见[长期记忆连续性与无损控体积 Spec](docs/memory-continuity-storage-spec-v1.md)。
其中 Content Plane、Delta/Checkpoint 等核心存储机制已进入 V2;Spec 中更远期的
扩展仍以对应实现与验收状态为准,不把设计稿当已交付功能。
## 贡献
欢迎提交 Issue 和 PR。请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md);提交 PR 即表示
同意 [CLA](CLA.md)。
## 许可证
[MIT](LICENSE)