Files
deepseek-harness/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.zh.md
T

1.9 KiB

Agent Note: 根标记元数据故障

Status: implemented

English | 中文

问题

项目根发现从会话工作目录向上遍历时,会探测每个已配置的标记。把所有 resolve 或 stat 故障都当作标记缺失,会使权限、I/O 或提供方故障越过该目录继续搜索祖先项目,并加载无关的工作区指令。发现结果必须区分确认缺失与元数据不可用。

决策

只有当宿主 stat 报告 ENOENT 或 ENOTDIR,或文件系统提供方未返回 stat 信息,或从解析或 stat 报告 FS_NOT_FOUND 时,根标记发现才会继续向上。检查取消后,其他标记错误会原样重新抛出。指令文件候选项保留独立的可用性策略:解析、stat 和读取故障只会跳过该候选项,因为文件可能与发现过程发生竞争,而不会改变项目身份。

考虑过的替代方案

把所有标记故障都当作缺失并继续向上。 不予采用,因为无法访问的子目录可能继承无关祖先项目中的指令,而发现过程仍报告成功。

在第一个不可用标记处停止,并把会话工作目录用作根目录。 不予采用,因为这会把未知的项目根转换为另一个项目身份,并可能静默省略有效的更宽泛指令。

后果

项目根发现优先保证项目身份正确,而非可用性:祖先遍历中任何不是缺失的元数据故障都会使基线加载以原始错误拒绝。指令文件候选项故障保留现有的跳过行为。失败的基线不会创建工作区上下文 Session event,因此无密钥录制会话 harness 没有可用于该路径的持久输出。

验证

聚焦单元测试覆盖确认的提供方缺失,以及不可用的宿主与提供方标记元数据。不可用情况还证明祖先指令不会进入派生模型历史。