---
type: design
node_id: design:m1-core-design
title: "M1 核心里程碑设计:公共签名冻结与治理栈落地"
date: 2026-07-20
---

# M1 核心里程碑设计:公共签名冻结与治理栈落地

> 正文见 [2026-07-20-m1-core-design.md](2026-07-20-m1-core-design.md)(276 行);本页为图谱摘要。

## 选定方案与关键理由

| 设计轴 | 选定 | 关键理由 |
|---|---|---|
| A 中间件上下文 | 不可变 ChatRequest + `replace()` 派生 | 中间件互不污染;重问/overlay 突变显式可追踪 |
| B 限流端口粒度 | limiter 层契约(CHS 形态)+ 双后端共契约测试 | Redis 六道闸必须单 Lua 原子,存储原语端口无法组合 |
| C 熔断端口 | CHS gate 契约(探针租约 + epoch fencing 在契约内) | M2 Redis 版零适配;内存版按契约重写 VT 状态机 |
| D 结构化落位 | 独立 StructuredMW(遥测→缓存→结构化→重试) | 重问天然照过限流/逐次遥测;缓存只存阶梯通过结果 |
| E SSE 缺 [DONE] | per-source `missing_done`,默认 strict | 防缓存固化截断;CHS 迁移配 salvage 保留旧行为 |

## 被否决的备选及原因

可变 CallContext(任意层可偷改,God-method 病根)、contextvars(隐式全局违反 asyncio 中立)、存储原语级限流端口(破坏 Lua 原子性)、VT 简单熔断 API(探针 owner/epoch 无处安放,M2 被迫双 API)、结构化循环写进 client 或 transport(绕过记账 / 与 D2 职责冲突)、SSE 一律打捞(缓存毒化)、一律严格(丢 CHS 打捞行为)。

## 审查记录

Claude 自审 → 全新上下文独立审查 subagent(顶替损坏的 codex CLI):6 Issues(Decision/Update 字段失真、遥测 model_name 二义、看门狗 thinking 活性缺失、client 生命周期 API 零覆盖、共享后端机制未定稿、§13 漏项)+ 4 建议,全部核验后修订(commit 2daeb4a)。待人类门。
