deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
AythyaCrispus/dsh-minimal-msys2
Windows Minimal Mode: persistent bash + str_replace_editor dsh plugin — registers an agent preset, provides a working persistent-bash backend on Windows, and exposes a GUI-editable bash path in the plugin-settings section (persisted via the credentials domain).
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:AythyaCrispus/dsh-minimal-msys2
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
Windows 极简模式 dsh 插件:在 Windows 上提供与官方极简模式工具定义完全一致的持久 bash 工具(command 参数、持久 shell 语义),外加 str_replace_editor。同时为 str_replace_editor 提供了专属的工具调用行(命令摘要、运行/失败状态、展开可见 old→new 变更预览),极简模式下不再只有通用占位卡片。
内置两个 preset:
minimal-msys2):纯极简,bash + str_replace_editor,工具定义与官方极简模式逐字节一致。minimal-extended,极简扩展模式):第一轮为极简模式(持久 bash + str_replace_editor + 极简 persona);第 2 条真实用户消息到达时自动注入标准模式的工具与 skill(pwsh、read/write/edit、glob/grep、skill、goal、jobs、web_search、ask_user_question、todo、subagent/subagent_fork/send_message/interrupt_agent/list_agents、workflow、ralph),注入完成后(第 3 轮起)模型即可见;persona 保持极简不变(不注入标准 persona / agent-instructions / plan-mode)。官方 minimal(极简模式)preset 的持久 bash 在 Windows 上无法工作,有两层独立的平台限制:
dsh-subprocess-local 的终端分配依赖 POSIX 进程检查(Linux /proc、macOS ps),win32 直接抛 terminal inspection is unsupported on platform win32;workspace-write 沙箱会把 bash 包进 Windows ACL 受限令牌 runner,而 MSYS2/Cygwin 运行时在受限令牌下无法创建信号管道(bash: *** fatal error - couldn't create signal pipe, Win32 error 5),bash 启动即崩溃。本插件提供 win32 原生 PTY spawn(node-pty/ConPTY,无 POSIX 进程检查),并复用官方 BashTerminalBackend 的会话逻辑,因此模型看到的 bash 工具定义与官方极简模式完全一致。
dsh plugin --profile web add github:AythyaCrispus/dsh-minimal-msys2
然后重启 dsh。插件启动时会自动把 agent preset 复制到 $DSH_HOME/.agent-presets/minimal-msys2(已存在则不覆盖,保留你的修改)。
$env:DSH_PERMISSION_MODE = 'danger-full-access'
dsh web
或在 Web UI 的会话设置中把沙箱模式切到 danger-full-access。
bash + str_replace_editor。MSYS2 与 Git Bash 的安装路径不同,无需改配置文件:
bash.exe 绝对路径(如 C:/msys64/usr/bin/bash.exe 或 C:/Program Files/Git/bin/bash.exe),点击 保存;$DSH_HOME/.credentials.yaml 的 DSH_MSYS2_BASH 条目(经凭据域持久化,绕开 rc.6 的 settings 白名单);后端启动 bash 时优先读取;点「清除」并保存可恢复默认值。也可以直接设置环境变量 DSH_MSYS2_BASH(优先级高于凭据文件),或编辑 $DSH_HOME/.agent-presets/minimal-msys2/agent.cordis.yml 里 terminal-bash 行的 shellPath(优先级最低,作兜底默认)。
dsh plugin --profile web remove dsh-minimal-msys2
Remove-Item "$HOME\.dsh\.agent-presets\minimal-msys2" -Recurse -Force # 手动删除已复制的 preset
minimal-extended 的第二轮注入(lib/extended.js)采用三路冗余触发 + 消息 id 去重,任何一路可达即注入:
agent/inbox/inserted(standing 挂载)—— 真实用户消息进入 inbox 才触发;runtime-context 快照等插件注入的 user/message 不经 inbox,是最忠实的"轮次"信号;session/event user/message(standing 挂载,过滤 source.kind === "user",排除 @deepseek-ai/dsh-system-prompt 的快照注入);agent/created 处理器内在 agent.ctx 与 agent.ctx.extend(extra) 双挂 session/event(实测这两个位置能收到事件)。第 2 条真实用户消息触发注入(异步,需数秒完成 import 与注册)。注入完成后注册哨兵工具 minimal_extended_ready(随 agent 清理),模型工具列表 / request/header 可见——用它确认注入确实执行:
pwsh / read / write 等标准工具 + minimal_extended_ready → 注入成功(第 2 轮请求可能已在注入完成前组装,看不到新工具属正常时序);bash / str_replace_editor 等极简工具 → 触发链路仍断(查 dsh 服务端日志中的 minimal-extended: 行)。danger-full-access 模式下使用(MSYS2/Cygwin 与 Windows 受限令牌的根本不兼容,无法绕过)。node-pty、@deepseek-ai/dsh-terminal-bash、@deepseek-ai/dsh-subprocess(peerDependencies,安装时复用,不重复构建原生模块)。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。