Nwflower/dsh-file-claim 预览 preview

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 避免提交。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • 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

English 简体中文

npm version npm downloads CI License: MIT node

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

  • 🔒 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; staleMs expiry (2h, for records without a pid) and --force takeover 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 with pending apply when it conflicts.
  • 🛡️ write guard — a tools/pre-execute guard 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/status refresh the heartbeat, and agent/disposed auto-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 →

← 上一个 Prev adhdgofly-dsh-ext 下一个 Next dsh-ui-preset-enhance →