DSH Plugins
返回列表
🧩

dsh-session-guard

admin-security 更新于 2026.09.05

在终端中运行以下命令:

dsh plugin install po-et/dsh-session-guard

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 中执行 dsh plugin install po-et/dsh-session-guard 即可安装该插件,完整源码地址:https://github.com/po-et/dsh-session-guard

插件介绍

dsh 最频繁的损坏场景是并发写入:一个 dsh web 实例加一个 CLI、两个不同端口的进程、或共享同一 $DSH_HOME 的桌面终端,各自维护内存中的 seq 游标,第二个写入者带着已提交的 seq 落地事件,session 从此永久不可加载。dsh 目前没有任何跨进程锁机制,dsh-session-guard 正是为填补这个空缺而设计的。

它为每个会话添加一把建议性(advisory)进程锁:冲突的那一步会大声失败并给出可直接操作的提示,而不是静默篡改你的历史记录。崩溃的进程不会卡死会话——owner PID 已消失的锁被立即接管,不可验证的 owner(如共享 home 上的其他主机)在 90 秒无心跳后自动过期。锁文件统一存放在 $DSH_HOME/session-locks 下,零运行时依赖,MIT 协议。

适合同时跑多个 dsh 进程的用户:多终端、多端口或共享 home 目录的并行场景,尤其是团队共用同一 $DSH_HOME 的环境。需要留意,这把锁是建议性的,只约束加载了此插件的进程,未加载的进程不受限制;它守卫的是活跃 turn-write 路径(session-start、pre-step),冷加载阶段的合成中断关闭由 dsh 内核负责,插件无法拦截。若损坏已经发生,可搭配 dsh-session-rescue 进行修复。

使用场景

  • dsh web 与 CLI 同时操作同一 session 导致 seq 冲突
  • 多端口 dsh 实例共享同一 $DSH_HOME 并行写入
  • 桌面终端与终端模拟器在同一会话上并发提交事件

适合人员

  • 同时运行多个 dsh 进程的个人开发者
  • 团队共用 $DSH_HOME 的协作环境
  • 高度重视 session 历史不可丢失的重度 dsh 用户