Nwflower/dsh-file-claim
为并发DeepSeek Harness(DSH)会话在相同工作区运行提供文件声明/保护:声明/释放、心跳过期接管、异步待合并区域(git三路合并)。DSH主机插件。
Project Overview项目介绍
dsh-file-claim is a native DSH plugin that enables coordinated parallel DSH sessions working on the same workspace without overwriting each other’s changes. It is distributed via npm and can be installed directly through the DSH plugin manager, or manually added to your DSH plugin configuration. It implements a proven coordination protocol that adds file claim/release functionality, heartbeat tracking for stale claims, automatic cleanup for crashed sessions, and a write guard to block unauthorized writes. It ships as a pure JavaScript package with zero external dependencies, only requires Node.js 18 or newer, and works on all major desktop platforms including Windows.
This plugin is built for developers who run multiple parallel DSH agent sessions on the same local repository to split work across different agents. The workflow is straightforward and requires very little manual intervention once the plugin is installed. Before editing a file, the agent calls the claim_files tool to declare exclusive ownership of the target file or directory. When the agent finishes editing, it calls release_files to give up ownership, and any pending edits from other agents are automatically merged via a git 3-way merge if there are no conflicts. The plugin also automatically cleans up claims from sessions that crash or exit unexpectedly, so users do not have to manually remove stale state.
dsh-file-claim is released under the permissive MIT open-source license, and its source code is hosted on GitHub with a full test suite for contributors. There are some important limitations to keep in mind: the plugin can only intercept writes from explicit DSH write commands, and cannot block writes from external shells, scripts, IDEs, or direct git operations. All plugin state is stored as sidecar files in the user’s workspace, so users should add the corresponding ignore patterns to their .gitignore file to avoid committing unnecessary state. On first run after installation, the plugin automatically migrates any old state from older versions to the new sidecar format, so no manual migration is needed.
dsh-file-claim 是专为 DeepSeek Harness(DSH)开发的原生插件,用于解决同一工作区内多个并行 DSH 会话之间的文件编辑冲突问题。它实现了一套成熟的文件声明协调协议,通过文件认领、心跳保活、异步待合并区、写入防护等机制,避免并行会话相互覆盖文件,还能自动清理崩溃会话留下的过期状态,支持整个工作区或目录的批量认领,无冲突修改可自动合并。
该插件面向需要在同一个本地仓库开启多个并行 DSH 代理会话的开发者,整体工作流清晰易用:代理会话在编辑文件前调用 claim_files 工具声明对目标路径的独占所有权,插件自带的写入防护会自动拦截未认领文件的写入操作,避免误覆盖。会话完成编辑后调用 release_files 释放所有权,待合并区中等待的修改会自动通过 git 三方合并完成,无冲突内容不需要额外手动操作。
该插件是纯宿主端插件,无额外外部依赖,仅使用 Node.js 内置模块,对 Windows 系统友好,采用 MIT 许可证开源。需要注意的是,它只能拦截插件注册的显式写入命令,无法拦截 bash、pwsh、外部编辑器、git 等操作的写入。状态存储在工作区的侧边车文件中,用户需要自行将对应的模式添加到 .gitignore 避免提交。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-file-claim(Nwflower/dsh-file-claim)
仓库:https://github.com/Nwflower/dsh-file-claim
本站详情页:https://www.yhbd.top/plugins/nwflower-dsh-file-claim/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证 MIT · ⭐ 6 · 最近提交 2026-09-02 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 6 stars - very few users, little community feedback星标只有 6,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin add dsh-file-claim
把 Nwflower/dsh-file-claim 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-file-claim
Write in parallel. Never overwrite. File claim / protection for concurrent DeepSeek Harness (DSH) sessions working the same workspace.
When several DSH sessions run in parallel against one workspace, they have no awareness of each
other: two sessions can overwrite the same file, a crashed session leaves stale state behind, and a
session that wants to edit a file another session owns can only wait or guess. dsh-file-claim
turns a proven coordination protocol into native DSH tools, lifecycle events, and a write guard —
so parallel agents cooperate instead of clobbering each other.
claim_files({ paths: ["README.md"] }) # "I'm editing this"
write / edit ... # writes to files claimed by others are denied
release_files({ paths: ["README.md"] }) # "done — pending edits auto-merge now"
Table of Contents
- Features
- Why
- Install
- Quick Start
- Usage Examples
- Tools
- Commands
- Write Guard
- Configuration
- Audit Log
- Pending Merge Area
- Enforcement Boundary
- FAQ
- Development
- Related Projects
- License
Features
- 🔒 claim / release — a session declares exclusive ownership of file paths before editing
them; duplicates merge idempotently, directory claims cover descendants, and
'.'claims the whole workspace. - ❤️ heartbeat + stale takeover + orphan self-heal — heartbeats refresh automatically via agent
lifecycle events; a crashed / hard-killed session's claims are cleared immediately on the next
activity (per-process pid check) and swept by the heartbeat interval;
staleMsexpiry (2h, for records without a pid) and--forcetakeover remain as the slow fallback. - 🧩 async pending merge area — instead of blocking, a session writes its edited content plus
the git HEAD base into a pending area; when the owner releases, the entry is auto-merged via
a git 3-way merge (
current × base × pending) when conflict-free, or applied manually withpending applywhen it conflicts. - 🛡️ write guard — a
tools/pre-executeguard refuses writes to files actively claimed by another session, with a hint (wait / takeover when stale / pend) and an opt-in commit guard. - ⚡ zero automation burden —
agent/created/agent/statusrefresh the heartbeat, andagent/disposedauto-releases every claim of a departed session. - 📦 pure Host plugin, zero dependencies — no Browser side, no build step,
node:builtins only; Windows-friendly. - 🧾 audit trail — every claim / release / takeover / pending mutation is appended as one JSON line, for traceability and post-crash reconciliation.
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
extracurricular-ai/dsh-filesnap
SenmuuuuW/dsh-whale-report
SnowCrescenter-tech/dsh-milestone
PerryLink/dsh-checkpoint-rewind
XieZongChen/dsh-md-notes
TencentCloud/tencentcloud-agentobs-sdk-dsh