Skip to content

fix: 保留漏绑祖先下的子视图诊断 - #524

Merged
Luo-root merged 2 commits into
chore/chinese-comments-20261029from
fix/topology-unchecked-subviews-20261029
Oct 30, 2026
Merged

Luo-root merged 2 commits into
chore/chinese-comments-20261029from
fix/topology-unchecked-subviews-20261029

Conversation

@Luo-root

Copy link
Copy Markdown
Owner

关联 Issue

见 #521。基于 Core 中文注释 PR #522;不自动关闭全仓发版体检议题。

改了什么

开放子图在挂载后新增必需入口时,原挂载会因漏绑而被流事件模型跳过;Topology 仍展示这个子图,却可能将其他图层的检查结果误当成本层已检查,导致子视图漏报真实依赖环或流问题。

  • 按挂载路径记录事件模型确实检查过的位置,区分“已检查且无问题”和“本次未检查”。
  • Topology 发现正常模型跳过子树时,从真实根补建一次模型,只补原模型未覆盖位置;父层已有诊断及其顺序保持原样。
  • 补充模型保留真实的 In/Out/Fix/FixSkip、切面继承、流别名与额度池身份,不把子图当独立根重新解释。

新增

新增漏绑后子视图回归:普通环、原生/受管流缺读者、生命周期环、合法反馈、切面继承与截断、skip 传播、父侧读者、同容量独立池、多挂载和返回副本隔离。无新增导出 API、依赖或公开包。

影响范围

仅修复 Topology 在无效挂载下仍可见的子视图诊断。Validate/Start 继续使用正常模型并拒绝漏绑;失败不封口、不安装部分模型。Topology 保持逐层非原子采样,不持有 assemblyMu。

原绑定的有效性来自现有公开装配约束:Sub 初装校验并复制绑定,后续只能追加声明和节点,不能删除端口、改型或给入口添加内部 provider。未改变错误字符串、父层首错、Problems 类别顺序及返回副本隔离。

测试

Go 1.26.10、Windows amd64,设置 GOWORK=off GOTOOLCHAIN=local。

  • 最终独立集成副本 go build -mod=readonly ./... 通过。
  • go vet -mod=readonly ./... 通过。
  • 工具链 gofmt 检查 155 个已跟踪 Go 文件,输出为空。
  • go test -mod=readonly -race -count=1 -timeout=240s ./... 四包通过;root 78.627s、observe 4.037s、tests 3.315s、yaml 2.217s。该耗时为本地正确性检查,非性能结果。
  • 文档签名门禁及负控通过;Core 非标准库依赖仅自身根包。
  • 独立复审 PASS,P0–P3 与待拍板均为 0;原始失败环探针、上一轮四边界反例及新增九子例通过。
  • 独立“多层祖先同时漏绑+多挂载”对照及装配并发、锁边界定向 race 通过,21.576s;所有探针留在仓库外。
  • 合入 chore: 统一 Core 源码与测试中文注释 #522 中文注释后,go test -mod=readonly -count=1 -run '^TestTopologyBindFailure' . 再次通过,2.423s。

审查关注点

补充模型只服务 Topology,不能影响 Validate/Start 的接受范围;真实父侧上下文必须保留;nil 检查标记不变成错误;父层绑定错误、逐挂载 skip 和 Problems 顺序保持兼容。

自审

  • 已阅读完整 diff、全部调用边界和独立反例。
  • 未提交凭据、探针、二进制或测量产物。
  • 公开 API 和运行契约不变,修复行为已由中文注释和回归说明。
  • 新增说明性注释使用中文,机器指令与示例输出断言保持原样。

@Luo-root
Luo-root merged commit 9316016 into chore/chinese-comments-20261029 Oct 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant