DSH 学习 · 文件工具与呈现

old_str 必须逐字、唯一;不唯一就一次都不写。

str_replace_editor 的写入走一条固定管线:解析路径 → fs/edit-intent 预检 → stat → 读原文 → 数 old_str 的逐字出现 → 写入(replaceIfVersion 版本号 + 沙箱执行)。零次匹配和多于一次匹配都会在写入前停下;沙箱在写入这一步执法,拒绝被映射成一行 marker。改下面的输入,看管线在哪一格停住。

先押一个注:把 retries: 3 替换成 retries: 5——这份配置文件里它出现了两次,上游会怎么做?

当前输入写进地址栏 #state= 后面:刷新不丢,发给别人打开的是同一份输入。
匹配次数
命中行
结局
版本号
独立校验

从 resolve 到 write 的六格流水线

阶段 × 判定

每一格对应 replaceInFile 里的一段真实代码。失败的那一格会标红并给出上游原文报错;后面的格子显示「没有到达」。

五条规则逐条重算

流程校验

独立校验重跑同一份匹配算法,再核对结果类型与匹配次数的对应、多义行号复算、沙箱门、失败不落盘和 diff 载荷;它不读渲染层的任何中间量。

    哪些结论可以带走

    能证明什么

      不能证明什么

        管线判定表

        不用脚本也能读

        管线的每一格在这张表里逐行给出:阶段、是否通过、细节、匹配次数和是否被沙箱拒绝。

        当前输入的全部阶段
        阶段 通过 细节 匹配数 沙箱