578a144231
The telemetry field count is taken from inspect.signature, not from memory, because that is the one the release checklist keeps catching. llm-calls.md said 22 and was two rounds stale; fixing the title alone would have left the table contradicting it, so tenant_id and meta are documented too. The production template needed no new column — it derives them with LIKE. What it gained is an assertion that it must keep deriving them and must not inline a column name, which is the drift that could actually happen. The changelog leads with the three breaking items. A patch number carries no warning by design, so the entry has to.
410 lines
14 KiB
JSON
410 lines
14 KiB
JSON
{
|
|
"directed": true,
|
|
"nodes": [
|
|
{
|
|
"id": "plan:m1-core-plan",
|
|
"label": "M1 核心里程碑实现计划",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "schema:llm-calls",
|
|
"label": "表结构: llm_calls(遥测 25 字段)",
|
|
"type": "schema"
|
|
},
|
|
{
|
|
"id": "metric:call-telemetry-coverage",
|
|
"label": "每次调用必录覆盖率(含缓存命中/失败/取消)",
|
|
"type": "metric"
|
|
},
|
|
{
|
|
"id": "finding:m2-soak-workload",
|
|
"label": "M2 真实数据压测: 场景矩阵与数据清单",
|
|
"type": "finding"
|
|
},
|
|
{
|
|
"id": "design:m2-distributed",
|
|
"label": "M2 分布式:Redis 治理后端+背压+Postgres 遥测+pricing+Embedding+压测 harness",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:m2-distributed",
|
|
"label": "M2 分布式实现计划",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "finding:m2-verifier-fixes",
|
|
"label": "M2 verifier 三项 Important 补齐(不变量接线/网关保护/P3 验收)",
|
|
"type": "finding"
|
|
},
|
|
{
|
|
"id": "finding:p6-soak-baseline",
|
|
"label": "P6 混合浸泡首跑基线与记分板三重伪击穿修复",
|
|
"type": "finding"
|
|
},
|
|
{
|
|
"id": "design:m25-resilience",
|
|
"label": "M2.5 治理韧性: 半死源隔离与健康感知调度",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:m25-resilience",
|
|
"label": "M2.5 治理韧性实现计划",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "finding:m25-acceptance",
|
|
"label": "M2.5 验收: P6 同场景 58.1% → 98.96%",
|
|
"type": "finding"
|
|
},
|
|
{
|
|
"id": "design:m3-ocr",
|
|
"label": "M3 OCR 端口族设计",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "metric:ocr-call-success",
|
|
"label": "OCR 治理调用成功率与错误分类分布",
|
|
"type": "metric"
|
|
},
|
|
{
|
|
"id": "plan:m3-ocr",
|
|
"label": "M3 OCR 实现计划",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "finding:p7-ocr-soak",
|
|
"label": "P7 OCR soak 验收: 99.73% 与 13 不变量全 PASS",
|
|
"type": "finding"
|
|
},
|
|
{
|
|
"id": "design:m4-migration",
|
|
"label": "M4 迁移验证设计(GovDoc→CHS,发 v1.0)",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:m4-migration",
|
|
"label": "M4 迁移实现计划(T0-T14)",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "finding:m4-acceptance",
|
|
"label": "M4 迁移验收(GovDoc+CHS)",
|
|
"type": "finding"
|
|
},
|
|
{
|
|
"id": "design:settings-invariant-guards",
|
|
"label": "GatewaySettings 跨字段不变量守卫的生效范围",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "design:settings-invariants-round-2",
|
|
"label": "GatewaySettings 装配校验补齐(第二轮)",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "design:est-tokens-decoupling",
|
|
"label": "est_tokens 解耦: 拆分限流预扣与遥测用量兜底(issue #2)",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:est-tokens-decoupling",
|
|
"label": "est_tokens 解耦实施计划",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "design:response-observability-fields",
|
|
"label": "响应可观测字段扩展(Issue #3)",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:response-observability-fields",
|
|
"label": "响应可观测字段扩展实现计划",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "design:sampling-params",
|
|
"label": "采样参数透传设计(issue #4)",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:sampling-params-plan",
|
|
"label": "采样参数透传实现计划(issue #4)",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "design:governance-backend-error",
|
|
"label": "治理后端故障归位为 scope 级不可用(Issue #7)",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:governance-backend-error",
|
|
"label": "实现计划: 治理后端故障归位为 scope 级不可用(Issue #7)",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "design:issue8-stall-budget",
|
|
"label": "stall 判定改为非生产性等待口径",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:issue8-stall-budget-plan",
|
|
"label": "issue #8 实施计划: stall 非生产性等待口径",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "design:issue10-error-body-retention",
|
|
"label": "HTTP 错误响应体留存(Issue #10)",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:issue10-error-body-retention-plan",
|
|
"label": "实现计划: HTTP 错误响应体留存(Issue #10)",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "plan:issue11-caller-dimensions",
|
|
"label": "调用方自定义维度实现计划(issue #11)",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "design:issue13-schema-mode",
|
|
"label": "issue #13: 遥测 schema 自动 ALTER 降级为按后端不对称的显式档位",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "design:issue12-telemetry-retention",
|
|
"label": "issue #12: 遥测表的正文体量、保留期与访问控制",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:plan-issue13-schema-mode",
|
|
"label": "实现计划: issue13-schema-mode",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "plan:plan-issue12-telemetry-retention",
|
|
"label": "实现计划: issue12-telemetry-retention",
|
|
"type": "plan"
|
|
},
|
|
{
|
|
"id": "review:issue14-branch-review",
|
|
"label": "整分支审查: issue #14 熔断等待档",
|
|
"type": "review"
|
|
},
|
|
{
|
|
"id": "design:issue15-telemetry-pool-lifecycle",
|
|
"label": "issue #15: 遥测连接池的资源语义与生命周期",
|
|
"type": "design"
|
|
},
|
|
{
|
|
"id": "plan:plan-issue15-telemetry-pool-lifecycle",
|
|
"label": "实现计划: 遥测连接池的资源语义与生命周期(issue #15)",
|
|
"type": "plan"
|
|
}
|
|
],
|
|
"links": [
|
|
{
|
|
"source": "plan:m1-core-plan",
|
|
"target": "design:m1-core-design",
|
|
"relation": "implements",
|
|
"evidence": "plans/2026-07-20-m1-core-plan.md 实现 designs/2026-07-20-m1-core-design.md 冻结的全部签名",
|
|
"added": "2026-07-20T10:18:41.339537+00:00"
|
|
},
|
|
{
|
|
"source": "metric:call-telemetry-coverage",
|
|
"target": "schema:llm-calls",
|
|
"relation": "measures",
|
|
"evidence": "遥测必录铁律: 一切调用路径落 llm_calls",
|
|
"added": "2026-07-20T11:11:46.302045+00:00"
|
|
},
|
|
{
|
|
"source": "schema:llm-calls",
|
|
"target": "design:m1-core-design",
|
|
"relation": "implements",
|
|
"evidence": "M1 设计 §4.4 冻结 18 字段",
|
|
"added": "2026-07-20T11:11:47.240466+00:00"
|
|
},
|
|
{
|
|
"source": "plan:m2-distributed",
|
|
"target": "design:m2-distributed",
|
|
"relation": "implements",
|
|
"evidence": "plans/2026-07-20-m2-distributed-plan.md 实现 designs/2026-07-20-m2-distributed-design.md 全部八项",
|
|
"added": "2026-07-21T03:46:35.186670+00:00"
|
|
},
|
|
{
|
|
"source": "plan:m25-resilience",
|
|
"target": "design:m25-resilience",
|
|
"relation": "implements",
|
|
"evidence": "方案B三件套任务分解",
|
|
"added": "2026-07-21T12:30:35.550386+00:00"
|
|
},
|
|
{
|
|
"source": "metric:ocr-call-success",
|
|
"target": "schema:llm-calls",
|
|
"relation": "measures",
|
|
"evidence": "OCR 调用复用 llm_calls 表(provider=monkey 行,tokens=0),成功率=error IS NULL 占比,错误分布按 error 前缀归类",
|
|
"added": "2026-07-22T02:05:15.793306+00:00"
|
|
},
|
|
{
|
|
"source": "schema:llm-calls",
|
|
"target": "design:m3-ocr",
|
|
"relation": "implements",
|
|
"evidence": "M3 设计 §7: 复用 18 字段表,无新表;messages 占位摘要,图像 bytes 不入库",
|
|
"added": "2026-07-22T02:05:15.836258+00:00"
|
|
},
|
|
{
|
|
"source": "plan:m3-ocr",
|
|
"target": "design:m3-ocr",
|
|
"relation": "implements",
|
|
"evidence": "T1-T10 逐任务落地设计 §3-§12",
|
|
"added": "2026-07-22T02:09:43.346922+00:00"
|
|
},
|
|
{
|
|
"source": "plan:m4-migration",
|
|
"target": "design:m4-migration",
|
|
"relation": "implements",
|
|
"evidence": "T0-T14 逐节实现设计 §4-§10/§15",
|
|
"added": "2026-07-22T09:33:05.357964+00:00"
|
|
},
|
|
{
|
|
"source": "design:est-tokens-decoupling",
|
|
"target": "design:m1-core-design",
|
|
"relation": "refines",
|
|
"evidence": "精化 M1 冻结的 est_tokens 双职责语义: 保留 TPM 预扣、推翻 usage 缺失按 est 兜底(m1-core-design.md:59,222),改记 0/0 + unavailable + cost NULL",
|
|
"added": "2026-07-30T09:33:55.383401+00:00"
|
|
},
|
|
{
|
|
"source": "plan:est-tokens-decoupling",
|
|
"target": "design:est-tokens-decoupling",
|
|
"relation": "implements",
|
|
"evidence": "5 任务实现设计 §3.2 的 11 条改动项;任务排序经中间态破窗分析(先加能力→切调用点→三态生效→解绑约束)",
|
|
"added": "2026-07-30T09:39:26.442986+00:00"
|
|
},
|
|
{
|
|
"source": "plan:response-observability-fields",
|
|
"target": "design:response-observability-fields",
|
|
"relation": "implements",
|
|
"evidence": "计划 T1-T7 逐条实现设计的 A2/B1/C1/D1 四个决策",
|
|
"added": "2026-07-31T11:10:03.872049+00:00"
|
|
},
|
|
{
|
|
"source": "plan:sampling-params-plan",
|
|
"target": "design:sampling-params",
|
|
"relation": "implements",
|
|
"evidence": "11 个任务逐条覆盖设计的决策 A-G 与 §5 的 14 条测试清单",
|
|
"added": "2026-07-31T16:59:35.657367+00:00"
|
|
},
|
|
{
|
|
"source": "finding:2026-08-02-thinking-switch-and-reasoning-tokens",
|
|
"target": "design:2026-08-02-thinking-capability-design",
|
|
"relation": "supports",
|
|
"evidence": "供应商实测与业界调研为该设计的形态/能力分层与失败语义提供事实依据",
|
|
"added": "2026-08-02T09:38:57.033054+00:00"
|
|
},
|
|
{
|
|
"source": "plan:2026-08-02-thinking-capability",
|
|
"target": "design:2026-08-02-thinking-capability-design",
|
|
"relation": "implements",
|
|
"evidence": "T1-T10 逐条实现设计的 D1-D6 六个决策与 §11 九条验收标准",
|
|
"added": "2026-08-02T09:49:48.126539+00:00"
|
|
},
|
|
{
|
|
"source": "plan:governance-backend-error",
|
|
"target": "design:governance-backend-error",
|
|
"relation": "implements",
|
|
"evidence": "T1-T5 逐任务实现设计 §3 的五项决策与 §8 影响面清单",
|
|
"added": "2026-08-06T08:08:51.865565+00:00"
|
|
},
|
|
{
|
|
"source": "plan:issue8-stall-budget-plan",
|
|
"target": "design:issue8-stall-budget",
|
|
"relation": "implements",
|
|
"evidence": "T1-T6 实施该设计,含 §3.6 订正",
|
|
"added": "2026-08-06T14:58:01.673693+00:00"
|
|
},
|
|
{
|
|
"source": "plan:issue10-error-body-retention-plan",
|
|
"target": "design:issue10-error-body-retention",
|
|
"relation": "implements",
|
|
"evidence": "7 任务覆盖设计 G1-G4 与 §7 全部验收用例",
|
|
"added": "2026-08-16T09:50:57.830855+00:00"
|
|
},
|
|
{
|
|
"source": "plan:issue11-caller-dimensions",
|
|
"target": "design:issue11-caller-dimensions",
|
|
"relation": "implements",
|
|
"evidence": "按已批准设计拆解为 8 个任务,含设计范围外发现的 OCR 第三条链路",
|
|
"added": "2026-08-17T10:09:08.967997+00:00"
|
|
},
|
|
{
|
|
"source": "plan:plan-issue13-schema-mode",
|
|
"target": "design:issue13-schema-mode",
|
|
"relation": "implements",
|
|
"evidence": "research-wiki/plans/2026-08-19-issue13-schema-mode.md",
|
|
"added": "2026-08-19T13:10:55.616264+00:00"
|
|
},
|
|
{
|
|
"source": "plan:plan-issue12-telemetry-retention",
|
|
"target": "design:issue12-telemetry-retention",
|
|
"relation": "implements",
|
|
"evidence": "research-wiki/plans/2026-08-19-issue12-telemetry-retention.md",
|
|
"added": "2026-08-19T13:10:57.986963+00:00"
|
|
},
|
|
{
|
|
"source": "plan:plan-issue14-admission-wait-policy",
|
|
"target": "design:2026-08-19-issue14-admission-wait-policy-design",
|
|
"relation": "implements",
|
|
"evidence": "research-wiki/plans/plan-issue14-admission-wait-policy.md;T0-T8 逐节映射设计 §3.1-§3.6",
|
|
"added": "2026-08-20T03:30:06.280582+00:00"
|
|
},
|
|
{
|
|
"source": "review:issue14-branch-review",
|
|
"target": "plan:plan-issue14-admission-wait-policy",
|
|
"relation": "informs",
|
|
"evidence": "Important 项促使修正 CHANGELOG/README/设计 §4/计划 T5 对 wait 档失败 reason 的描述",
|
|
"added": "2026-08-20T05:01:16.206639+00:00"
|
|
},
|
|
{
|
|
"source": "design:issue15-telemetry-pool-lifecycle",
|
|
"target": "design:issue9-telemetry-ddl-probe",
|
|
"relation": "refines",
|
|
"evidence": "把 issue #9 的'确定写不进去'判据从'哪一步失败'改为'失败是什么性质': 建池失败不再一律判死",
|
|
"added": "2026-08-24T05:50:56.787791+00:00"
|
|
},
|
|
{
|
|
"source": "design:issue15-telemetry-pool-lifecycle",
|
|
"target": "design:issue12-telemetry-retention",
|
|
"relation": "depends_on",
|
|
"evidence": "遥测作为审计证据的定位(决策 E-a)是否决'异步队列 + 后台 flush'备选的依据",
|
|
"added": "2026-08-24T05:50:57.954717+00:00"
|
|
},
|
|
{
|
|
"source": "plan:plan-issue15-telemetry-pool-lifecycle",
|
|
"target": "design:issue15-telemetry-pool-lifecycle",
|
|
"relation": "implements",
|
|
"evidence": "八任务实现四组改动(池语义/失败三分/状态可见/所有权纪律)",
|
|
"added": "2026-08-24T12:05:46.300738+00:00"
|
|
},
|
|
{
|
|
"source": "plan:2026-08-25-thinking-observability-plan",
|
|
"target": "design:2026-08-25-thinking-observability-design",
|
|
"relation": "implements",
|
|
"evidence": "本计划 Task 1-10 实现该设计的全部落点与 §14 验收标准",
|
|
"added": "2026-08-26T04:49:16.312785+00:00"
|
|
},
|
|
{
|
|
"source": "finding:2026-08-25-thinking-observability-regression",
|
|
"target": "design:2026-08-25-thinking-observability-design",
|
|
"relation": "supports",
|
|
"evidence": "裸 httpx 与库两层实测(M3 推理正常、MiniMax 停报 completion_tokens_details)是该设计三层根因与三态裁定的事实基础",
|
|
"added": "2026-08-26T04:49:17.481308+00:00"
|
|
},
|
|
{
|
|
"source": "finding:2026-08-25-thinking-observability-regression",
|
|
"target": "design:2026-08-02-thinking-capability-design",
|
|
"relation": "refines",
|
|
"evidence": "复测确认 M3 can_disable 仍成立,并补记非流式不可观测、仅 reasoning_effort 有效两条限制",
|
|
"added": "2026-08-26T04:49:18.648857+00:00"
|
|
}
|
|
]
|
|
} |