返回 Bug 清单
BUG-0244project-02高已修复backend-logic

apply_to_yaml 正则误伤同名字段:strategy_selection/calibration.bounds 下的 capability 被一起改掉

发现:2026-10-01验证:2026-10-29置信度:70%

症状

校准后 weights.yaml 里 strategy_selection/bounds 段的值也变了;路由行为异常漂移

根因

文本替换用正则 ^ {yaml_key}: ...(2 空格缩进)定位 role_scoring 段的权重行,但 YAML 里 strategy_selection 和 calibration.bounds 段下也存在 2 空格缩进的同名字段(capability/sequence/refutation/collab)——正则不认识段边界,把所有同名行一起改了。

修复方案

改为状态机解析:逐行扫描,仅当处于顶层 role_scoring:(或 role_weights:)行之后、下一个 0 缩进顶层 key 之前(in_role_scoring=True)才执行替换,其余段落原样保留。

错误签名

apply_to_yaml 同名字段 误改 strategy_selection calibration.bounds role_scoring 正则缩进

技术信息

来源项目

project-02

涉及文件

scripts/router_engine/smart_router.py

标签

YAML, 状态机, 文本替换, project-02, mcp-reported