sleepinginsummer/dsh-hashline-edit-pro ↗★ 0
dsh-hashline-edit-pro
Hash-anchored read/replace/undo tools for DSH. Every line of a file carries a unique 3-char content hash; edits target hashes, never line numbers, so stale anchors are caught before they touch the file. Port of pi-hashline-edit-pro for the Pi coding agent.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sleepinginsummer/dsh-hashline-edit-pro说明文档
阅读完整 README ↗dsh-hashline-edit-pro
哈希锚点编辑工具(hashline_read / replace / undo_last_replace)——DSH 动态插件,移植自 Pi Coding Agent 生态的 pi-hashline-edit-pro(RimuruW pi-hashline-edit 系列)。
每行文本携带一个唯一的 3 字符内容哈希作为地址;编辑用哈希定位,绝不依赖行号或字符串匹配。文件在读取后被修改时,过期的锚点会在写入前被拦截并返回新锚点反馈——不会出现"改错行"的静默损坏。
核心特性
hashline_read— 以HASH│content行形式读取文件(3 字符字母数字哈希,无行号);支持offset/limit分页、raw: true返回普通带行号内容、空文件输出HASH│单行锚点;图片/二进制/UTF-16 拒绝并给出指引。replace— 用remove_from/remove_to(裸 3 字符哈希)圈定行范围,replacement_text提供新内容(""删除范围)。锚点校验不通过抛[E_STALE_ANCHOR]/[E_AMBIGUOUS_ANCHOR]/[E_RANGE_STALE]并附带当前上下文新锚点;反向范围自动纠正;粘贴带HASH│前缀的行自动剥离并警告;结果附带HASH│锚点 diff(+行即新锚点,可链式连续编辑)。undo_last_replace— 回滚某个文件最后一次replace,undo 记录持久化(重启后仍可回滚);文件在 replace 后被外部修改则拒绝回滚([E_UNDO_STALE])。- 锚点稳定映射 — 编辑后未触碰的行保留原锚点(content-derived base + 位图探测分配 + 编辑时稳定哈希映射),链式编辑无需重新读取。
- served-state 守卫 — 只能替换模型真正"见过"的行(读取/diff 展示过的哈希),杜绝模型凭空编造锚点。
- 文件安全 — BOM、行尾(LF/CRLF/CR)保留;UTF-8 解码错误警告;100MB/238328 行上限;原子写入走 DSH
fs服务;sandbox 拒绝映射为标准[sandbox: ...]标记并提示用内置write升级。
安装
dsh plugin --profile add dsh-hashline-edit-pro
安装后重启 DSH,工具 hashline_read / replace / undo_last_replace 对所有会话生效。
与 pi-hashline-edit-pro 的差异(有意为之)
| 项目 | Pi 原版 | 本移植 |
|---|