dsh-hash-edit:DeepSeek Harness 哈希錨定讀寫插件

前言

在 DeepSeek Harness (DSH) 的開發與調試中,通過行號或原始文本定位文件行是常見操作,但文本格式變動或行號偏移容易導致定位失效。dsh-hash-edit 旨在通過爲文件每行生成穩定的哈希錨點,解決文件編輯中的定位與回滾問題,確保編輯操作基於內容而非位置。

插件定位

這是一個爲 DeepSeek Harness (DSH) 提供哈希錨定讀寫、替換和撤銷能力的客戶端插件。它通過攔截寫入、遮蔽內置工具,實現對文件行的高精度操作。插件採用 MIT 許可證,由開發者 ddv12138 維護。

核心功能

該插件主要實現以下行爲:

  1. 哈希錨點機制:利用 xxHash32 算法爲每行生成穩定的 3 字符 base-62 錨點。錨點通過互質位圖探測解決衝突,構造性保證唯一性。
  2. 接管編輯:插件裝載後,遮蔽內置的 edit 工具,並攔截 write 操作,自動追加錨點塊以保持文件新鮮度。
  3. 拒絕規則:插件拒絕過期的錨點、歧義的錨點以及無效引用,絕不進行模糊匹配。
  4. 持久化撤銷:支持 undo_last_replace,撤銷記錄跨重啓持久化,並支持字節級還原。

安裝與啓用

這是一個 DSH bundle(插件包),用戶需將其安裝進特定的 profile。

# 從 GitHub 安裝
dsh plugin --profile demo add github:ddv12138/dsh-hash-edit

# 從本地安裝
dsh plugin --profile demo add ./dsh-hash-edit

# 從 npm 安裝
dsh plugin --profile demo add @ddv12138/dsh-hash-edit

把該 bundle 的 patch 裝載進 profile 後,會插入插件行,從而接管編輯行爲。由於是按 profile 安裝,它能在任意 preset / profile 下工作。

使用說明

使用該插件時需遵守以下紀律:

  • 單次編輯:一個文件每條消息只允許一次編輯。
  • 純淨哈希:操作時只拷貝純淨的 3 位哈希,不包含行號或上下文。

工具調用

插件提供以下工具:

  • read (hashline):將行轉換爲 HASH│content 格式,支持分頁,並記錄已展示區間。
  • replace:使用 remove_from / remove_to(純淨 3 位哈希)指定刪除區間,後接 replacement_text 進行替換。一次調用僅支持一處修改。
  • undo_last_replace:撤銷最近一次替換,內容還原精確到字節。

拒絕代碼

操作時若遇到文件狀態不符或參數錯誤,會返回以下拒絕代碼:

  • [E_STALE_ANCHOR]:錨點在當前文件中不存在。
  • [E_AMBIGUOUS_ANCHOR]:錨點匹配到多行。
  • [E_RANGE_STALE]:文件已變更或該區間從未被展示。
  • [E_BAD_REF]:引用不是純淨的 3 位哈希。
  • [E_UNDO_STALE]:上次替換後文件被改動。
  • [E_FILE_TOO_LARGE]:文件超過 238,328 行或 100 MB。

技術細節與限制

  • 算法:錨定算法爲 xxHash32(canon, seed 0) >>> 14 % 238328,生成的錨點爲 base-62 字符集。
  • 存儲:撤銷記錄與快照存儲在項目工作區的 .dsh-hash-edit/store.json 中(已 gitignore)。
  • 文件限制:插件僅支持行數 ≤ 238,328 且大小 ≤ 100 MB 的文件。

結語

dsh-hash-edit 提供了一種基於內容哈希的健壯文件編輯方案,適合需要精確控制文件行變更且需頻繁撤銷的場景。更多細節可參考 GitHub 倉庫 或 社區目錄。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜