M9:桌面壳与收口——镜匣最小壳、器谱登记、发布证据落位、重写计划功成身退

- 镜匣 desktop/(Tauri v2 最小壳):WebView 承载琉璃镜(frontend/out 或 devUrl);能力桥最小命令(通知);乾坤通道 HMAC 短期凭证构造(与 sandbox/src/auth.rs 验签同算法,密钥仅经 SANDBOX_AUTH_SECRET 环境注入——二进制零平台密钥,静态审计钉死);hard_stop/resume 本地硬急停原子断路(全部通道命令过 ensure_not_halted,本地最高优先级不经云端);tantivy 依赖与 capabilities/ 目录预留;updater 插件位预留;cargo check 通过
- 器谱域 domains/tianzai(迁移 010):devices/device_grants——一次配对(密钥指纹登记)、逐项授契(可授面显式枚举,未知能力键拒)、撤回立即生效、设备撤销连带全部授契失效且不可再授;/devices 器谱 API 组
- 发布收口:release-evidence.md 落位重写期 RW-* 证据包(M0–M9 十里程碑验收自动化套件与结果物);能力矩阵 M9 行收官;rewrite-plan.md 按计划删除(M0–M9 全部完成,能力矩阵与证据台账接棒),全库引用清理
- 验收(test_m9_jingxia 四用例):器谱未授契 403 留痕/撤回即效/设备撤销连带;镜匣零平台密钥(rg 审计源码与配置为空);硬急停语义钉死(通道命令全检查+resume 唯一恢复+HMAC 无密钥不出凭证)
- 五套件终检全绿:后端 349、前端 203、BFF 4、神识 5 包、镜匣 cargo check(2 个预存环境失败历次 HEAD 复验与本周期无关);Compose nginx profile 配置校验通过
This commit is contained in:
chenxin committed 2026-08-28 09:35:27 +08:00
1 parent c63b75152a
commit 2483a25f63
29 files changed
+10533 -179

No files matched your search

+2 -1
View File
@@ -1,7 +1,7 @@
# 魂镜能力矩阵
> 状态:rewrite/1.0 重写期基线
> 作用:记录"当前已经验证到哪里",不重复产品目标或契约取值。没有证据链接的能力不得标为完成。重写的范围与节奏见[重写执行计划](rewrite-plan.md)。
> 作用:记录"当前已经验证到哪里",不重复产品目标或契约取值。没有证据链接的能力不得标为完成。重写的范围与节奏见重写执行计划(已收口删除,证据见本文与发布证据台账)。
## 1. 状态值
@@ -37,6 +37,7 @@
| 缘契/道体/河图 | M6 | 已验证 | M6 收口(2026-08-27,本地开发档):缘契提议—问心—铭契—撤回全链(多维无单一好感度、撤回即生效、事件史不可变);铸魂确认流(锚点确认前不变 + 魂籍版本链)与分灵谱系;河图境界(persistent_worlds + 实体关系 + 境界正史视图 + 世谱挂接);归真三界分流(境界/幻境实录 scope 隔离,真界本相零污染);引文→记忆正影后继提示;前端缘契面板与世界页。验收六测试全绿;旧人格/驱动/演化/世界模块与页面全量退役 |
| 形仪域 | M7 | 已验证 | M7 收口(2026-08-27,本地开发档):真形锚点(特征/许可/可变范围);主仪化仪候选定相治理(candidate 不进呈现位、主仪唯一);声音三来源与克隆授权(用途/传播必填、可撤回立即生效);ASR 经元炁透传(多模态关闭 503 不降级);前端形仪工坊三区。验收三测试全绿;旧 avatar 全量退役。图像真实生成与 TTS 合成随神识 image/tts 槽位启用接入(候选定相与授权治理框架已就位) |
| 天工阁/叩心/辰正 | M8 | 已验证 | M8 收口(2026-08-28,本地开发档):受托任务(分解/并行/级联验收,后台 Run 不占前台席位);叩心候选四约束(总开关/静默本地时区/频率/预算,无关系副作用);辰正时态感知接入镜树投影。验收五测试全绿;旧太一/洛书/感知/大周天模块与表全量退役,admin 治理面收敛为司命+百工 |
| 镜匣桌面壳与器谱 | M9 | 已验证 | M9 收口(2026-08-28,本地开发档):Tauri v2 最小壳(WebView 承载琉璃镜;能力桥通知命令;乾坤通道 HMAC 凭证构造与 sandbox 同算法——密钥仅经 SANDBOX_AUTH_SECRET 环境注入,二进制零平台密钥经静态审计钉死;hard_stop/resume 本地硬急停断全部通道);器谱 devices/device_grants(逐项授契/撤回立即生效/设备撤销连带失效,迁移 010);tantivy 依赖预留。验收四测试全绿 + cargo check 通过。正式打包(签名/updater 插件/安装器)与生产档联调属上线前事项 |
| 天目 / 元炁 | M4/M7 | 局部实现 | 元炁 ASR 已接形仪域(M7);chat 经神识 endpoint(M4);天目待接通感 |
| 镜树前端 / 记忆治理 / 百工页 | M2+ | 局部实现 | 镜树页与灵胚页已上线(M2c,2026-08-21):路径阅读流/候答切换/采用归真/局部树图/SSE 芽体/导入卡;type-check + vitest 210 passed;记忆治理页随 M3、百工页随 M5 |
| 导入(角色卡 V2/V3 → 灵胚) | M2 | 局部实现 | M2b 已验证(2026-08-21):POST /characters/import-card 产出可审阅灵胚(identity_baseline.import_card 暂存 character_book),启镜时物化世谱书+条目(dict/list 双形态兼容);导出方向保持人物→ST V3 快照 |
+22 -1
View File
@@ -1,6 +1,6 @@
# 发布证据台账
> 状态:模板
> 状态:模板 + rewrite/1.0 重写期证据(第 3 节)
> 作用:为每个发布门提供可复核、可过期、可阻断的证据记录。本文不预填“已通过”。
## 1. 证据记录格式
@@ -39,3 +39,24 @@
- 失败证据不可删除或覆盖;修复后新增复测记录并关联原失败。
- 依赖版本、部署拓扑、地区规则或契约版本改变时,相关证据立即转为待复核。
- 发布批准必须列出所有适用 `gate_id` 及其当前证据;缺失即阻断,不以会议口头结论替代。
## 3. rewrite/1.0 重写期证据(2026-08-28 收口,本地开发档)
> 以下为重写执行计划各里程碑的自动化验收证据,部署档位=本地开发(SQLite/回声桩/进程内神识)。
> 生产档(PG/真实 Provider/Compose 全栈)联调、SLO/灾备/安全门与全球区域门未在本周期范围——
> 上线前须按 §2 硬门证据包逐项补齐,本表不替代发布门。
| `gate_id` | 场景 | 结果(自动化套件) | 结果物 |
| --- | --- | --- | --- |
| `RW-KERNEL-001` | Kernel 不变量(事件序列/命台串行/否决/流式) | 通过(test_kernel.py 5 用例) | pytest 输出 |
| `RW-JINGSHENG-001` | 启镜原子闸门/并发命台/魂籍签名 | 通过(test_jingsheng.py 7 用例) | pytest 输出 |
| `RW-MIRROR-001` | 镜树 PRD 十验收场景 | 通过(test_mirror_tree.py + M2 覆盖) | pytest 输出 |
| `RW-XIRANG-001` | 未归真自动入忆率=0 / 重忆确认 / 正影 / 删除墓碑 | 通过(test_xirang.py 8 用例) | pytest 输出 |
| `RW-SHENSHI-001` | 故障注入四场景(首字超时切道/凭证冷却/全败 JSON/用量聚合)+ BYOK/配额三段式/归属计量 | 通过(Go 34 用例 + 跨进程 E2E 四场景) | go test 输出 |
| `RW-BAIGONG-001` | 未授契拒留痕 / 请命超时不执行 / 禁域不可关闭 / 结果为观察 | 通过(test_baigong_siming.py 4 用例) | pytest 输出 |
| `RW-YUANQI-001` | 多维无单一好感度 / 撤回立即生效 / 铸魂确认流 / 分灵谱系 / 境界不进真界 | 通过(test_m6_domains.py 6 用例) | pytest 输出 |
| `RW-XINGYI-001` | 未定相不成为正式形仪 / 克隆授权可撤回 / 关多模态文字回归 | 通过(test_m7_xingyi.py 3 用例) | pytest 输出 |
| `RW-TIANGONG-001` | 后台无身份写入 / 并行不占席位 / 叩心四约束 / 不回应不降关系 | 通过(test_m8_tiangong.py 5 用例) | pytest 输出 |
| `RW-JINGXIA-001` | 器谱逐项授契与撤回 / 镜匣零平台密钥 / 硬急停 | 通过(test_m9_jingxia.py 4 用例 + cargo check) | pytest/cargo 输出 |
| `RW-REGRESSION-000` | 全量回归(后端/前端/BFF/神识/镜匣) | 通过(349+203+4+5 包+cargo;2 个预存环境失败与本周期无关,已 HEAD 复验) | 各套件输出 |
-172
View File
@@ -1,172 +0,0 @@
# 重写执行计划
> 状态:执行中(rewrite/1.0 分支主线)
> 职责:记录本次全量重写的范围决策、退役与复用清单、里程碑划分与验收门。**本文件是临时治理文档:重写完成、能力矩阵接棒后删除。**
> 决策依据:2026-08-21 与执镜者确认的九条决策(架构基准=AGENTS.md 完整技术栈、领域重写+基础设施复用、旧码退役、重写期间新建 Go 神识、Fastify BFF、最小镜匣壳、全量 1.0 规划、文档主线化改写、运行时插件化+硬核例外)。
## 1. 执行原则
1. 每个里程碑是可独立验收的纵向闭环(端到端可运行),不做孤立页面或孤立接口;
2. 先写失败测试再实现(Kernel 不变量、镜树不变量、记忆分级是最高优先级测试对象);
3. 新领域模块落地的同时删除对应旧模块(不做长期共存);
4. 每个里程碑完成时更新[能力矩阵](capability-matrix.md)证据。
## 2. 复用清单(保留改造)
| 资产 | 处置 |
| --- | --- |
| `backend/app` auth / RBAC / audit / event_store / idempotency / SSE 网关 / core 配置框架 | 保留,重组入 `infra/`,对接六域 |
| 乾坤沙箱(`sandbox/`,Rust) | 保留;HMAC 授契流程对接司命 |
| 博闻(`mcp/web-search/`,Go) | 保留;登记为百工 MCP 能力 |
| 天目(`tianmu/`) | 保留;P1 通感期接入 |
| 元炁(`yuanqi/`) | 保留;作为神识 `type=local` Endpoint |
| `frontend/design/` 设计体系与 `styles/tokens` | 保留;新页面沿用 |
| docker 基础设施编排(`docker/docker-compose.infra.yml`) | 保留;应用编排新增照壁/神识/删除玄关 |
| 现有测试基建(pytest / vitest / pre-commit / husky) | 保留 |
## 3. 退役清单(删除,不留兼容层)
### 3.1 backend 旧领域模块 → 新去处
| 旧模块 | 新去处 |
| --- | --- |
| `modules/chat` + `models/chat`(线性会话) | 镜树域(mirror_trees/tree_nodes/citations/canonizations) |
| `modules/memory` + `models/memory`(旧记忆) | 息壤(memories/triggers/embeddings/factual_records) |
| `modules/personality` / `personality_emotion` + models | 灵核插件(道体锚点+调节层),情绪状态并入调节层参数 |
| `modules/drive` + models | 太一插件(目标) |
| `modules/evolution` + models | 铸魂/正影流程(characters + confirmations) |
| `modules/goal_orchestrator` / `planner` + models(goals/plans) | 太一/洛书插件 |
| `modules/big_cycle` + models | 删除(后台整理并入息壤维护任务) |
| `modules/time_sense` + time_anniversary | 辰正(M8 重实现为横切能力) |
| `modules/knocking` | 叩心枢(M8 重实现) |
| `modules/extraction` | 息壤提取管线(M3 重写) |
| `modules/reflection` / `perception` | 烛照插件(M6/M8) |
| `modules/agent` | 天工阁插件(M8) |
| `modules/safety` + models/safety | 司命插件(M5 重写,四维裁决) |
| `modules/skills` / `tool_runtime` + models/skills | 百工插件(M5 重写) |
| `modules/mcp` + models/mcp_servers | 百工 MCP Client(mcp_servers 表保留) |
| `modules/runtime` | Kernel + 运行时(M0 重写) |
| `modules/imports` / `character_import` | 导入域(M2 改造对接灵胚+世谱) |
| `modules/lorebook` + models/lorebook | 世谱(表保留,接入河图激活管线) |
| `modules/macros` | 符文引擎(提示词组装期展开,M2) |
| `modules/world` + models/world | 河图(persistent_worlds/world_entities,M6 重建) |
| `services/avatar` / models 相关 | 形仪域(M7) |
| `services/ai_provider` + admin | **删除**:神识 Go 网关接管(M4),配置文件移交神识 |
| 玄关(旧 Go MCP 网关,如有独立工程) | 删除:MCP 登记并入百工 |
### 3.2 数据库
- 丢弃 Alembic 4 个旧迁移与 `db/hunjing.db` 开发数据;按[数据模型](../architecture/data-model.md) §9 清单重建基线 `000`(三位顺序编号,经 `make db-revision` 生成)。
- 表处置以该清单为准(保留改造 / 新建 / 退役删除三列)。
### 3.3 frontend 旧页面 → 新去处
| 旧页面 | 新去处 |
| --- | --- |
| `chat` | **已删除(M2b)**;镜树页随 M2c 新建(当前路径阅读 + 局部树图 + 候答切换/采用/归真) |
| `characters` | 人物(灵胚→启镜→魂籍→缘契→记忆→形仪分区) |
| `memory` | 记忆治理(三级记忆/候选箱/撤销/删除) |
| `models` | 神识阁(偏好/BYOK/用量) |
| `tools` | 百工(能力目录/授契/行契) |
| `settings` / `login` / `register` / `admin` | 保留改造 |
| `world` | 世界(境界/世谱,M6 重建) |
| `time` | **已删除(M2b,随旧时间服务退役)**;辰正感知 M8 重实现后另设 |
| `cosmos` / `drive` / `evolution` / `personality` / `time` / `wuxing` / `runs` | 删除(`runs` 并入镜树/天工阁轨迹视图,其余旧模型页面随模块退役) |
| `archive` | 并入镜树抽屉(归档树列表) |
## 4. 里程碑
> 编号为实施顺序;每个里程碑末尾的"验收"是进入下一个的硬门。
### M0 地基(骨架先行)— ✅ 已完成(2026-08-21)
- 交付:Kernel 骨架(不变量裁决器/命台控制/事件日志接口/循环骨架)、事件总线与插件加载、`shenshi_client` 边界(先指向临时 stub)、BFF 骨架(鉴权透传+SSE 代理)、神识骨架(ingress/transform 占位实现 + 元炁 endpoint)、Alembic 新基线、Compose 更新(+hunjing-bff/+hunjing-shenshi)。
- 验收:登录(复用 auth)→ 创建占位 Run → SSE 端到端流到浏览器(经照壁);"模型可见即可重建"断言在 stub 上可跑;旧 chat/memory 模块仍可用但不再新增调用。
- 证据:`backend/tests/test_kernel.py` 5 用例(事件序列/命台串行/否决/不变量/流式);`shenshi` `go test` 5 用例;`bff` vitest 4 用例;三服务(照壁 18100 / 灵台 18000 / 神识 18081)真实进程 E2E 冒烟:注册→登录→POST /api/v1/runs→SSE 流读至 run.finished,模型流经 Go 神识 stub("【神识回声桩】"前缀可证);全量后端回归 925 passed(另有 20 个预存失败,根因本地缺 `config/models.yaml`,与本次改动无关,stash 验证);Alembic 基线合并为单一迁移(41 表,空库 upgrade 干净)。
### M1 镜生闭环(灵胚→启镜→魂籍→命台)— ✅ 后端闭环已完成(2026-08-21)
- 交付:embryo_drafts/custodianships/runtime_seats/identity_records 表与 API(迁移 `001`,顺序编号);灵胚创建(原创/领养/导入来源受理)、照心试演(`run.kind=rehearsal`,幻境 Run、无人物、不产生经历)、启镜(原子闸门)、放弃;死亡请求/撤销/落定与冷静期;魂籍版本化导出与校验;命台租约 API(冲突留痕、过期接管、epoch 递增)。
- 验收:启镜前无正式人物 ID;同一人物并发启镜/命台抢占被拒且留痕;魂籍导出可验证、复制不能冒充(签名摘要校验用例)。
- 证据:`backend/tests/test_jingsheng.py` 7 用例全绿;全量回归 932 passed(20 个预存失败与 M0 时相同,缺 `config/models.yaml`);`make db-upgrade` 空库 000→001 干净应用(含 SQLite batch alter)。
- 遗留到 M2:随缘灵胚候选生成、角色卡导入对接灵胚、Kernel 前台串行接入 DB 租约(多进程一致)、前端人物页。
### M2 镜树闭环(核心主线)— 🔶 M2a+M2b 后端完成(2026-08-21),M2c 前端进行中
- 交付:mirror_trees/tree_nodes/citations/canonizations/transplants 全量 API(迁移 `002`);另答/续思/续生/编辑分叉/采用/归真(三界 scope)/移栽/引文锚;Kernel `RunOutcome` 回调实现芽体→固化/残答封存(run 关联 tree 事件);祖先链投影 prompt 组装。
- 验收:镜树 PRD §14 十个验收场景全部自动化通过。
- 证据(M2a):`backend/tests/test_mirror_tree.py` 8 用例覆盖场景 1/2/3/5/6/7/8 与三界作用域;全量回归 940 passed(预存 20 失败不变);`make db-upgrade` 000→002 干净。场景 4(未归真不入忆)随 M3 记忆管线落测试;场景 9(移动端)与前端页面随 M2b。
- 证据(M2b,2026-08-21):`test_import_and_assembly.py` 3 用例(V1/V2 卡→灵胚、启镜物化世谱、符文展开+火候入 IR);旧 chat 体系删除——backend 删 modules/chat、application/chat、knocking、personality_emotion、services/time_sense、纪念日模型及关联仓储/端点/测试,`runs.session_id` 与四张旧表经迁移 003 退役(SQLite batch 双向验证通过);前端删 chat/time 页面与 api 库(type-check + vitest 199 passed);全量后端 846 passed、余 7 个预存失败(缺 `config/models.yaml`)。
- 提前退役说明:knocking/personality_emotion/纪念日原定 M6–M8 退役,因与 chat 线性会话强耦合随 M2b 一并删除;`modules/time_sense` 纯计算核(snapshot/duration/lunar,被符文引擎依赖)保留,辰正 M8 重接。
- 证据(M2c,2026-08-21):`/trees` 列表与 `/trees/[treeId]` 工作区(路径阅读流、候答切换 `i/n`、另答/续思/续生/编辑分叉/采用/归真、归真对话框含三界效力说明与 HJ-1102 分歧提示、局部树图可折叠、SSE 芽体流式);`/embryos` 灵胚页(原创/导入卡/照心试演流/启镜强确认/放弃);API 库 `trees.ts`/`embryos.ts` + 11 用例;type-check 与 vitest 210 passed。Next 内嵌 BFF(/api/proxy、Cookie 鉴权)暂为前端通道,收口到照壁列为部署迁移项。
- M2c 余项:移栽/引文锚 UI、已归真标记在树图回显(随 M3 记忆闭环)、Kernel 前台串行接入 DB 租约、眉批表(归入 M6 言灵编排)。
### M3 记忆闭环(息壤)— ✅ 后端完成(2026-08-22),M3b 前端治理页进行中
- 交付:三级记忆管线(归真触发提取/白名单明忆自动生效/重忆 pending 确认/确定性去重/正影版本链/删除墓碑无原文);双通道召回(关键词+活力时近)+ RRF 融合 + 条数/字符预算 + 命中强化与召回统计;获准记忆注入投影 prompt(【获准记忆(来源可查)】段,source_refs 指向归真可展开);实录(factual_records)随归真同步落库;手动入忆强制 fact/insight/opinion/hypothesis 标注,未归真内容只作 fact_candidate。
- 验收:全部由 `backend/tests/test_xirang.py` 7 用例钉死——未归真自动入忆率=0、重忆 pending 不入召回(confirm 后进入)、deny/删除墓碑全链路停用、正影旧版停召且原文不改写、手动入忆标注、召回注入 prompt 可验证。
- 退役(随本里程碑):旧 memory/extraction/reflection/big_cycle/evolution 服务与端点、旧 memories/memory_links 表(迁移 004 重建)、旧导入抽取触发(410 语义)、前端 evolution/memory 旧页与组件;全量后端 779 passed(余 6 个预存失败不变)、前端 type-check + 202 passed。
- 证据(M3b,2026-08-22):世谱激活进入投影(关键词命中 + 常驻条目、insertion_order 排序、字符预算、条目内容符文展开,`test_xirang.py` 世谱注入用例);前端 `/memories` 治理页(待确认/候选箱/已生效/归档/实录五分区,确认/拒绝/正影/删除/来源展开,删除强确认),API 库 +3 用例;type-check 与 205 passed。
- M3b 顺延项及理由:微痕时序效果(sticky/cooldown/delay)与次级键逻辑、递归扫描需要 Run 内轮次状态,随 M5 循环上下文落地一并实现;pgvector 语义通道随标准档部署接入(当前活力时近通道占位)。
### M4 神识完整接管 — ✅ 已完成(2026-08-27,M4a 网关 + M4b 切换手术 + 用户面收口)
- 交付:Go 神识全量(transform adaptor:OpenAI 兼容+元炁;路由/冷却/粘性;计量;配额);灵台切换 `shenshi_client`;**删除 Python ai_provider 与相关配置/页面 models 旧实现**;神识阁用户面(偏好/BYOK/用量)。
- 验收:故障注入(首字超时切道、凭证级冷却、熔断恢复)通过;usage 与 Provider 对账抽样一致;灵台内无 Provider SDK import(rg 审计为空)。
- 证据(M4a,2026-08-27):OpenAI 兼容适配器(元炁共用协议)+ `SHENSHI_ENDPOINTS` env 端点目录;候选路由(Priority+粘性置首+冷却排尾兜底)、首字超时切道(首帧前不提交响应,失败整体回退 JSON)、401/403 凭证级冷却 10 分钟 vs 429/5xx/超时绑定级 30 秒、已写字节不换道;计量(stdout JSON `shenshi_usage` + `/me/usage` 聚合)。Go 测试 10 用例全绿(含四场景故障注入:首字超时切道/凭证冷却跳过/全败 JSON/用量聚合);跨进程 E2E:灵台 `HttpShenshiClient` → 真 Go 神识 → stub 流式往返通过。假上游跨进程拨号在本沙箱受出站限制,改以 Go 进程内 httptest 覆盖(同真实 TCP 语义)。
- 证据(M4b,2026-08-27):手术清单 ①-⑥ 全量执行——后端删 `app/ai_provider/`(38 文件)与 `services/ai_provider_admin.py`、`core/config/model_config.py`、`tests/ai_provider/`(21 文件);连带退役旧 Agent 循环(`application/agent/`、steer/follow-up/确认注册表、`app/skills/` 孤儿、`endpoints/audio.py`、`application/imports.py`);runs.py 修剪为 kernel 契约端点,safety 确认改直接落库裁决(pending→approved/denied);前端删 models 页/gateway.ts(玄关)/网关组件/audio/types/mock;config 三 yaml 归档 `shenshi/config/`,`.env.example` 收敛 SHENSHI_*。后端 528 passed(2 个预存失败经 HEAD 复跑验证与本手术无关)、前端 type-check + 201 passed。
- 证据(M4 用户面收口,2026-08-27):神识补齐 BYOK(AES-GCM + 脱敏 + 独占路由 + fail-closed)、配额三段式(预扣钳位/结算/幂等退款,HJ-2004)、usage 归属计量与对账抽样(`/me/usage`、`/admin/usage/sample`)、Anthropic/Gemini 适配器、神识自有库 store(PG + 内存回退,60s 就绪重试);IR 契约扩展 `user_id`/`byok_key_id`(Go+Py 同步);灵台 runs.owner_id(迁移 005)经 kernel 透传 IR,`/me/byok-keys`|`/me/usage` 代理端点 + 神识阁前端(偏好/BYOK/用量三区,撤回二次确认)。Go 34 用例、后端 532、前端 210 passed;跨进程 E2E 四场景(灵台 HttpShenshiClient → 真 Go 神识:登记脱敏/独占失败/归属聚合/撤回)通过。rg 审计灵台 Provider SDK import 归零。
- M4b 手术清单(2026-08-27 侦察固化,30+ 文件):
① 后端删除:`app/ai_provider/`(26 文件,含 anthropic/openai 格式与 billing——神识已承接)、`services/ai_provider_admin.py`、`core/config/model_config.py`、`tests/ai_provider/`(16 文件);
② 连带退役:`application/agent/`(旧 Agent 循环,steer/follow-up/确认注册表——live UI 已随 chat 页消亡,天工阁 M8 重建);`endpoints/audio.py`(ASR/TTS 归 P1 形仪域);`endpoints/settings.py` 与 `services/preferences.py` 中模型偏好字段(切神识阁);admin 网关端点与 `test_model_gateway_endpoints.py`;`main.py` 的 `reload_provider_manager`、conftest 的 endpoint 覆盖缓存清理;
③ runs.py 修剪:`AgentRunRegistry`/`follow-up`/confirmations 端点随旧 Agent 循环退役,保留 kernel 契约端点;
④ 前端删除:models 页、`lib/api/gateway.ts`、`ModelGatewayPanel`/`ModelStrategyForm`、mock 与 types 中的网关类型;
⑤ 配置:`config/models|providers|pricing.example.yaml` 归档至 shenshi 目录或删除,`.env.example` 模型段收敛为 SHENSHI_*;
⑥ 验收:rg 审计灵台无 Provider SDK import(`rg -l 'openai|anthropic' app/` 排除 shenshi_client 为空);全量后端/前端测试绿;迁移无涉及(纯代码删除)。
### M5 百工与司命 — ✅ 已完成(2026-08-27)
- 交付:百工域 `domains/baigong`——能力注册表(`capabilities`:统一契约 + 执行类型 builtin/qiankun/mcp/http + 四维风险标注 capability/data/consequence/context)、授契/行契(`mandates`:grant 单次范围 / charter 预算时间窗重复执行,撤销立即生效)、请命(`pending_confirmations` 改造:六要素说明 + 超时=拒绝 HJ-1302)、行动账(`tool_calls` 净化摘要 + 观察标证 + audit_events 留痕);司命裁决器 `siming.py`(四维取最高档 + **禁域代码常量**:递归删根/格式化/写裸设备/fork 炸弹、file://、密钥外发——任何 Profile/插件/配置不可关闭);乾坤经 SandboxClient HMAC 授契执行;MCP 工具登记/刷新自动派生能力(博闻接入点);`/capabilities` `/mandates` `/petitions` `/tool-calls` 四组端点 + 前端百工页(四区);**旧 skills/tool_runtime/safety/agent 模块与 tool_policies/skills/model_endpoint_overrides 表退役**(迁移 006)。
- 验收(tests/test_baigong_siming.py 四用例钉死):① 未授契调用 403 HJ-1303 且 audit_events/tool_calls 双留痕;② 请命超时(expires_at 拨过)approve → 410 HJ-1302、无成功执行;③ 禁域专项(恶意 L0 标注 + 篡改领域对象仍拒 HJ-1301,代码级三形态断言);④ 调用后 memories 表零新增、tool_calls.evidence 带 observation_not_fact 标证。
- 证据:后端 454 passed(2 个预存环境失败不变);前端 type-check + 220 passed(百工组件 4 用例 + api 6 用例);四套件(backend/shenshi/bff/frontend)全绿。
### M6 缘契、人格与世界 — ✅ 已完成(2026-08-27)
- 交付:缘契域 `domains/yuanqi`(covenants 当前版 + covenant_events 不可变历史;提议—问心—铭契—撤回全链,边界变更立即生效,多维关系并存且**拒绝单一好感度键**);道体铸魂与分灵 `jingsheng/soul.py`(soul_forgings 确认流——锚点变更确认前不生效,确认后签发新魂籍版本;分灵创建新人物继承谱系不继承身份,魂籍从 v1 起);河图域 `domains/hetu`(persistent_worlds 境界 + world_entities/world_relations 重建为境界作用域 + 世谱挂接 + 境界正史视图);归真按三界分流(reality→息壤提取不变;persistent_world→境界实录+正史推进;simulation→只记试演实录,均不进真界本相,factual_records 增 scope 列);引文→记忆正影后继提示(citations target_type=memory 时 superseded 提示 successor_memory_id,不静默替换);前端人物页缘契面板 + 世界页重建(境界目录/实体/正史概览)。
- 退役:modules/personality|drive|evolution、models/personality|drive|evolution|world(旧治理版)、services/personality|drive|world、endpoints/personality|drive|world、governance 世界实体治理面、前端 personality/drive/cosmos/wuxing/runs 页与对应组件/api 库/样式;表退役(迁移 007):personality_versions/personality_proposals/curiosity_questions/exploratory_subgoals/evolution_candidates/character_world_entities/world_entities(旧)/world_relations(旧)/characters.current_personality_version_id。
- 验收(tests/test_m6_domains.py 六用例钉死):多维无单一好感度(affinity 提议被拒)+ 问心铭契版本链 + 事件史不可抹除;撤回立即生效(withdrawn 即不可见、再操作 410、事件可查证)+ 边界变更即时反映;铸魂确认流(确认前锚点不变、确认后锚点更新且魂籍版本=最大版本)+ 分灵谱系(新 id、lineage 含源、魂籍 v1);境界正史不进真界(persistent_world 归真后真界记忆候选=0、实录 scope 隔离);引文正影后继提示。
- 证据:后端 379 passed(2 个预存环境失败不变);前端 type-check + 199 passed;BFF 4;神识 5 包;迁移 007 净库升级 + ±1 干净。
### M7 形仪与语音(P1 面)— ✅ 已完成(2026-08-27)
- 交付:形仪域 `domains/xingyi`——`form_anchors` 真形锚点(稳定辨识特征/年龄表现/许可禁忌/可变范围,生成内容不可静默覆盖);`forms` 主仪/化仪/文字形仪(**候选→定相治理**:candidate 不进呈现位,adopt 才转正,主仪唯一、新主仪自动退役旧主仪);`voice_profiles` 声音三来源(合成预设/原创设计/授权克隆——克隆必填用途与传播范围,**授权可撤回且立即生效**,撤回/过期后合成前置校验拒绝);ASR 语音转写(元炁 SenseVoice `/v1/audio/transcriptions` 透传,未配置多模态时 503 不降级不伪造);前端形仪工坊(锚点编辑/候选定相废弃/声音档案与授权撤回)挂人物详情页,头像呈现位改走定相主仪。Live2D 基座沿用现有 pixi-live2d-display 吉祥物组件(forms.live2d_json 承载模型与动作映射引用);图像生成候选治理以 image_gen 来源候选+定相流程落地(真实生成模型接入随神识 image 槽位启用)。**旧 avatar 模块删除**(服务/端点/配置/avatar_url 字段/前端直传组件)。
- 验收(tests/test_m7_xingyi.py 三用例钉死):①未定相不成为正式形仪(candidate 期呈现位为空、定相后转正、主仪唯一旧主仪 retired、废弃可用);②克隆授权可撤回(缺用途被拒、有效通过、撤回后校验 403/409、预设不受授权约束);③关闭全部多模态后文字相伴完整可用(ASR 503 时镜树/缘契/百工链路照常)。
- 证据:后端 376 passed(2 个预存环境失败不变,6 个 avatar 旧用例随模块退役);前端 type-check + 203 passed(形仪工坊 4 用例);BFF 4;神识 5 包;迁移 008 净库+±1 干净。
### M8 天工阁、叩心与辰正 — ✅ 已完成(2026-08-28)
- 交付:天工阁域 `domains/tiangong`——backstage_tasks(委托包+验收标准+结果证据,parent 链分解受控并行,子任务全终态级联父任务待验收,按证据 accept/reject);`kernel.start_backstage_run`(kind=background_task,**不占前台席位**与前台并行;loop 后台分支绕过席位锁);叩心域 `domains/kouxin`——knocking_candidates(触发/草稿/裁决快照;**总开关/静默窗口(本地时区)/频率/预算**四约束裁决,dispatch 未过被拒 429 且快照留痕,候选默认不自动发送);辰正 `domains/zhengchen`——temporal_context() 复用 time_sense 计算核产出【时态感知】投影段(客观时间语境不附情绪臆测),接入镜树生成 prompt;**旧 goal_orchestrator/planner/perception/big_cycle/agent(knocking M2b 已删) 模块与 goals/plans/agent_roster/perception_channels/big_cycles/candidates 表退役**(迁移 009),governance 只留 GenerationPreferences,admin 只留司命/百工两枢治理面;kernel 断言放宽容纳无人物后台任务。
- 验收(tests/test_m8_tiangong.py 五用例钉死):①后台任务不构成第二意识(完成后记忆/魂籍/缘契零新增断言);②后台 Run 与前台并行(运行中前台立即启动);③分解级联(子任务全终态→父待验收);④叩心四约束(总开关关拒/静默窗口拒/频率上限拒/常态允许);⑤不回应不降低关系(候选过期后缘契维度/状态/版本零变化)。
- 证据:后端 345 passed(2 个预存环境失败不变);前端 type-check + 203 passed;BFF 4;神识 5 包;迁移 009 净库升级干净。
### M9 桌面壳与收口
- 交付:镜匣最小壳(WebView+能力桥+乾坤通道+器谱登记+ updater,tantivy 预留);Compose/nginx 终态;文档与契约全量核对;发布门证据格式落位(对照[发布门](release-gates.md)与 first-release-scope 逐项检查)。
- 验收:桌面壳零平台密钥、未授契能力被拒、硬急停可用;全量回归(M1–M8 验收自动化套件绿);docs 五层与代码一致(能力矩阵证据更新完毕)→ 删除本计划文件。
## 5. 新旧切换纪律
- 旧模块删除时点绑定里程碑(见各条"删除"项),删除前 `rg` 确认无真实调用点;
- 禁止新旧 API 并存过渡(开发期契约直接重建,无兼容层);
- 开发数据库随基线重建丢弃,不写数据迁移;
- 每个里程碑一个合并批次,提交信息中文、可追溯到本计划条目(如 `M2:镜树归真与采用分离`)。
## 6. 风险与对策
| 风险 | 对策 |
| --- | --- |
| 插件化过度设计拖慢主线 | Kernel+总线先于插件丰富度;九枢按里程碑逐步装配,M0 只需 stub 插件跑通 |
| 神识一次性切换失败 | M4 内先双写用量对比再切换;元炁本地端点保证无云密钥也可全链路演示 |
| 镜树前端复杂度(局部树图/断线续传) | M2 先交付当前路径阅读流,树图与抽屉分两批;SSE 续传以事件日志重放为保证 |
| 全量 1.0 周期长导致中途失衡 | 里程碑独立验收+能力矩阵滚动更新;任何时点主干可运行 |
| 删除旧模块误伤复用资产 | 删除前核对 §2 复用清单与调用点扫描;infrastructure 资产先重组入 `infra/` 再删领域层 |