路径不是项目身份
同一仓库在不同机器上有不同绝对路径。dsh-alpha 按 canonical Git identity 聚合,再由目标 Worker 解析本机路径。
The missing layer
真正困难的是把任务送到正确的机器、正确的仓库和明确的权限边界里,并在审批、断线与恢复之后仍然知道发生了什么。
同一仓库在不同机器上有不同绝对路径。dsh-alpha 按 canonical Git identity 聚合,再由目标 Worker 解析本机路径。
机器状态、Agent 能力、负载与项目亲和度进入同一份目录,自动选择有依据,手工锁定也有入口。
持久化 task ID 与事件流让等待中断不等于取消;Worker 重连后可以补回缺失事件。
Control loop
这五步留在同一段 Alpha 会话里。自动化可以保持灵活,关键任务也可以逐轮固定 Agent、模型、强度和权限。
汇总机器、工作区和 Agent 实时状态。
选择项目、机器或让调度器自动匹配。
返回 task ID,通过事件流接收进度。
远端权限请求回到当前主控会话。
重连、补事件、继续等待同一任务。
Product tour
主控目录、全局工作区、Worker 选择和模型权限设置都在 DSH Web 内完成。截图中的项目相关信息已经打码。



Launch note
当产品代码、构建工具链和测试服务分散在不同环境里,Agent 的数量并不是主要矛盾。需要被管理的是机器可达性、仓库身份、能力差异、权限请求和中断恢复。
dsh-alpha 不替你决定哪个 Agent 永远最好。它让“这一次为什么选它”保持可见。
每台 Worker 只发现 allowed roots 内的工作区。主控按仓库身份聚合位置,实际执行时再解析目标机器自己的路径。尚未持有仓库的 Worker 只能在允许范围内按需 clone。
Gateway 缺少 token 时拒绝启动;路径必须通过 allowed roots;健康检查不暴露机器身份或密钥;Worker doctor 只读且不打印 token。各 provider CLI 仍需在执行机器上独立安装和登录。
先为一台远程机器配置窄范围 allowed root,用 Worker doctor 做只读验证,再确认目录发现、Agent 能力和结果回传。核心闭环稳定后,再添加下一台机器。
# 安装 Web 插件 dsh plugin --profile web add dsh-alpha # 安装 Alpha preset node ~/.dsh/profiles/web/node_modules/\ dsh-alpha/scripts/install-preset.mjs # 启动 dsh web