Skip to content

Releases

v1.5.1 — 修掉 dsh 桌面端两个真机缺陷(浮层压窗口控制按钮且点不动 / 状态读不出来时只会说"请刷新重试")

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 10 Oct 17:43

v1.5.1 — 修掉 dsh 桌面端两个真机缺陷(浮层压窗口控制按钮且点不动 / 状态读不出来时只会说"请刷新重试")

本版没有新功能:只修两个只在 dsh 桌面端 出现的缺陷,并把一类失败说清楚。终端(官方源码)那条宿主线上本来就不复现。


1. 右上「DevFlow 概览」浮层:不再压住窗口控制按钮,也不再多到点不动

以前的毛病:浮层按浏览器视口定位(写死 top:10px),从不读平台给的标题栏高度。而 dsh 桌面端 是无边框窗口 + 40px 自绘标题栏(标题栏同时是窗口拖动区):

  • 浮层整块落在 40px 拖动带里 ⇒ 看得见、但真实鼠标点不动(拖动区在 OS 输入路径上先把点击吃掉了;用脚本注入点击反而能点,所以这个缺陷此前一直被误判为"正常");
  • 右栏收起时,浮层右沿还会落进 ─ □ ✕ 三个窗口控制按钮那一带 —— 那是 Electron 的原生按钮,不是网页元素,抬 z-index 抬不动它们。

现在:

  • 浮层读平台的标题栏高度(桌面端 40px;浏览器里该值为 0 ⇒ 位置与以前逐值相同,零回归);
  • 新增一个只做几何判断的小模块,按原生按钮带算出净空,右栏展开 / 收起两态都避开;
  • 实测(真实桌面壳):两态浮层都不与按钮带相交、都在拖动带之下;修前两态都被压住。

2. 状态读不出来时,不再只说「请刷新重试」

以前的毛病:DevFlow 取数时会把失败原因丢掉,一律显示「DevFlow 状态暂时不可用,请刷新重试。」—— 而刷新多少次都没用(我们实测同一条失败重试 4 次,结果逐字相同)。

现在:区分失败原因。

  • 若是「该会话正被另一个 dsh 实例占用」(同一个会话同时在两个 dsh 里打开 —— 写租约在另一边),界面会直接说明、并告诉你该到持有它的那个 dsh 里查看;
  • 不再自动重试(对该失败重试没有收益),只保留你手点的那一次重开;
  • 其它失败(网络类、超时类、未知错误)的文案与重试行为逐字不变 —— 这条有专门的负向断言兜着。

3. 顺带说明一条已知限制(不是缺陷)

DevFlow 的状态读取要求"你所连的这个 dsh 就是该会话的写主"。所以:

同一个会话不要同时在两个 dsh 里打开(例如终端一个、桌面端一个)。在第二个宿主上看它,就会得到上面第 2 条那句提示。
换一个没有被别处打开的会话即可正常(已实测)。

让"第二宿主只读观察同一会话"成为可能,需要上游(dsh)提供一条只读接缝,属另一个项目 —— 本版没有改远程桥契约。


兼容性(与 v1.5.0 相同,未变)

dsh 版本 状态
0.1.7(含 rc) 可用
0.2.0(含 rc) 可用
0.1.5 不再支持(安装器会明确拒绝)

声明区间:>=0.1.7-rc.1 <0.3.0(29 条 peer 全部 optional)。

升级注意

  • 不要用"卸载 + 重装"来升级 —— 本插件的 Git 依赖会被锁文件钉死在旧 tarball,重装只会重放旧包。
  • 不要用插件管理器的「添加插件」来升级 —— 它靠"依赖项新增"识别装了哪个包;包已存在且 spec 未变时不会新增,会直接失败(并可能回滚不干净,留下"文件新、清单旧")。
  • 正确做法:显式刷新 —— 在该 profile 的目录下、用该 profile 的 pnpm:
pnpm add https://github.com/BinXie-lixiangdehua/dsh-devflow
# 或
pnpm update @xiaoxie-ide/dsh-devflow

然后重启 dsh。

安装(一行)

git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"

装完重启 dsh,在预设列表选 DevFlow。

校验

  • 工作仓库闸门:typecheck / build / check 三道 EXIT 0;test 门 canonical EXIT 1(2 项已识别的环境抖动:client-audit 15 s 超时、live-channel-metrics 真定时器窗口计数),同一目标集降并行后 60 文件 / 574 用例 全绿 EXIT 0,两个失败文件孤立运行必过且与本次改动路径无关 —— 未放宽任何阈值、未删测试。
  • 发布面:从远端重新克隆后逐项核对 —— 340 文件 · 禁入目录(docs / .workbuddy / .devflow / outputs / archive)0 · package.json.version = 1.5.1 · 新增产物(lib/client/window-controls.js 等)行尾归一化后与工作仓库逐字一致。
  • 提交:工作仓库 6296cf9 → 发布副本 5fb7f4b(标签 v1.5.1)。

本版不含

  • 未改 dsh 的远程桥契约("第二宿主只读观察"需上游支持);
  • 未改 README 的两处说明(link: / github: 两条装机线的区分、git 依赖被 allowBuilds 拒绝时的提示、沙箱 ACL 指引);也未把 README 的「升级」一节并进去(该节目前只出现在各版本的 Release 正文里)—— 这两项列入下一个版本。

v1.5.0 — 员工技能随包(装完即有技能)+ 修复「右上概览浮层」

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 06 Oct 17:07

v1.5.0 — 员工技能随包(装完即有技能)+ 修复「右上概览浮层」自 v1.2.1 起一直消失

本版两件事:让员工技能跟着插件走,以及修回一个丢了三个版本的界面。


1. 员工技能随包(装完即有技能)

以前的毛病:员工绑定的技能只从"当前项目的仓库文件"里读(AGENTS.md、docs/*.md、.agents/skills/<id>/SKILL.md)。任何没有这些文件的项目 —— 也就是绝大多数用户 —— 员工技能必然是空的;更糟的是,技能源缺失时派发会被直接中止,于是新装上插件的人第一件事就是撞墙。

本版把技能分成两类处理:

  • 9 项通用技能(code-review / archify / frontend-ui-engineering / browser-testing-with-devtools / api-and-interface-design / documentation-and-adrs / advise-project-approach / find-simplifications / pre-push-checks)正文随包内置;读取顺序为「项目里有就用项目的 → 没有就用插件内置的」——内置只兜底,永不覆盖项目自己的文件。
  • 3 项项目约定类(AGENTS.md、docs/defensive-patterns.md、docs/testing.md)不内置(那是项目自己的东西,内置等于替你写约定);缺失时改为「有信号降级」:不再中止派发,而是明确提示缺什么、期望在哪条路径、怎么补、该员工现在还能做什么,并写入 journal 留痕。

保留的底线:默认绝不静默降级 —— 少技能这件事必须让你看得见。此外新增一个默认关闭的显式开关(allowMissingSkills),打开后才允许"不带缺失技能继续",且每次使用都会留痕。

许可:内置的 9 份技能正文均为 MIT,随包附 skills/THIRD_PARTY_NOTICES.md。

顺带修掉一个真 bug:技能缺失时,受阻横幅的标题曾被抽成「缺少技能「skill」」(把类别词当成了技能名)。

2. 修复「右上概览浮层」自 v1.2.1 起一直消失

右上角的「DevFlow 概览」浮层在 v1.2.1、v1.3.0、v1.4.0 三版里一直是空的(插槽在、内容不渲染)。

根因是我们自己的客户端回归:浮层判定当前会话时只读 sessions.current,而 dsh 0.1.7 起的会话列表已经没有这个字段了。于是它每轮都判"无当前会话"、组件直接返回 null。

修法:改为先读 current(0.1.5 原样保留),没有就回退到「被主视图保留的那一行」(retainedBy.mainView > 0)—— 与预设判定同一套写法。0.1.7 与 0.2.0 上均实测渲染且可交互(收起态 + 展开态),画布无回归。

说明:此前有一次验收把画布内的一个小图标当成了浮层(选择器过宽),所以这个缺陷被误判为"已通过";本版已逐版本取证。


兼容性

dsh 版本 状态
0.1.7(含 rc) 可用
0.2.0(含 rc) 可用
0.1.5 不再支持(安装器会明确拒绝)

声明区间:>=0.1.7-rc.1 <0.3.0(29 条 peer 全部 optional)。

升级注意

  • 不要用"卸载 + 重装"来升级 —— 本插件的 Git 依赖会被锁文件钉死在旧 tarball,重装只会重放旧包。请用显式刷新:pnpm add <仓库地址> 或 pnpm update @xiaoxie-ide/dsh-devflow。
  • 如果你曾为了让它在插件管理器里可用而手写过一条 profile patch(preset-devflow-decl),升级到 ≥ v1.4.0 后应当删掉它(本版已由插件自己声明)。

安装(一行)

git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"

装完重启 dsh,在预设列表选 DevFlow。

校验

  • 发布面:从远端重新克隆后逐项核对 —— 336 文件 · 禁入目录(docs/.workbuddy/.devflow/outputs/archive)0 · skills/ 10 文件 · package.json.version = 1.5.0 · files 含 skills · exports 含 ./preset-activation · 关键产物(含 skills/**、lib/client.js、lib/index.js)行尾归一化后与源码仓库逐字一致。
  • 功能级:干净项目(无 .agents/skills)里 9 项通用技能全部可用、零降级;项目里有同名文件时用项目那份;3 项约定类缺失时降级但不中止;浮层在 0.1.7 与 0.2.0 上均渲染且可交互。
  • 闸门:typecheck → build → check → test 四道全绿 —— 59 文件 / 566 用例。

v1.4.0 — 装上即用(官方插件管理器装完即可用)+ 修掉一颗「正式 dsh 0.2.0 会让插件整体失效」的时间炸弹

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 06 Oct 16:08

v1.4.0 — 装上即用(官方插件管理器装完即可用)+ 修掉一颗「正式 dsh 0.2.0 会让插件整体失效」的时间炸弹

本版做三件事:让插件在 dsh 官方插件管理器里「装完即用」、修掉一颗 peer 上界的时间炸弹、收窄支持范围到 dsh >= 0.1.7。


1. 装上即用(不再需要第二步)

以前从官方插件管理器(桌面端 / 网页端「添加插件」)装完,预设列表里不会出现 DevFlow —— 因为预设声明行嵌在 config.plugins 里,而 dsh 的路径锚定只会改写顶层行,嵌进去的那行永远不会被改写,相对路径于是以 profile 目录为基准解析、必然落空;官方那条安装路径又不会跑本项目的安装器,所以只能靠人再手写一条 profile patch 才能用。

本版把两处改掉:

  • 预设激活行的 name 改为包内子路径 @xiaoxie-ide/dsh-devflow/preset-activation,并在 package.json 的 exports 里导出该子路径(这是「一步」的唯一闸门:不导出时该子路径会报 ERR_PACKAGE_PATH_NOT_EXPORTED);
  • 预设声明行出厂即启用(disabled: false)。

⇒ 之后从官方插件管理器装完,预设列表直接有 DevFlow、画布开箱可用,不再需要任何手工 patch。

2. 修掉 peer 上界的时间炸弹(这条比看上去严重)

dsh 的兼容性前置检查会把每一条 @deepseek-ai/dsh-* peer 都拿去与同一个运行时版本比较。此前我们 27 条 peer 的上界都写死 <0.2.0:

  • 今天(0.2.0-rc.2)勉强通过;
  • 正式 0.2.0 一发布,<0.2.0 同时为假 ⇒ 检查器会把插件的每一行都禁用 ⇒ 插件整体失效。

本版把上界统一放宽到 <0.3.0,下界收到 >=0.1.7-rc.1(与新的支持范围一致)。这才是这个问题的真正修复。

3. 不再支持 dsh 0.1.5

0.1.5 既没有兼容性前置检查、也没有插件管理器,因此无法用"声明"挡住它 —— 本版改为由安装器在写任何文件之前明确拒绝:

本插件自本版起要求 dsh >= 0.1.7,检测到的是 0.1.5-rc.2。…本次安装未改动任何文件。

同时删掉了只为 0.1.5 存在的复数包名声明 @deepseek-ai/dsh-agent-presets。


兼容性

dsh 版本 状态
0.1.7(含 rc) 可用
0.2.0(含 rc) 可用
0.1.5 不再支持(安装器会明确拒绝,不会装上后崩)

声明区间:>=0.1.7-rc.1 <0.3.0(29 条 peer 全部 optional)。安装前置不变:Node ^22.19 或 >=24 · pnpm · 已安装 dsh(Windows 为实测平台)。

升级注意(老用户请看一眼)

如果你之前为了让 DevFlow 在官方插件管理器里可用,手工往 profile 的 cordis.patch.yml 里加过一条 preset-devflow-decl,升级到本版后应当删掉它 —— 本版已由插件自己声明,留着会让同一个预设 id 被声明两次(不会导致启动失败,但语义上重复、以后难排查)。

安装(一行)

git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"

装完重启 dsh,在预设列表选 DevFlow。

校验

  • 功能级:在真实 profile 的拷贝上只做一次安装(本地 tarball 模拟官方对话框)、profile patch 里没有任何预设行 ⇒ 预设列表出现 DevFlow、画布出真实业务内容(0.2.0 与 0.1.7 读数逐字相同)。
  • 0.1.5 拒绝:安装器 exit=1,且 profile 两个文件哈希未变。
  • 发布面:从远端重新克隆后逐项核对 —— 325 文件 · 禁入目录(docs / .workbuddy / .devflow / outputs / archive)0 · package.json.version = 1.4.0 · exports 含 ./preset-activation · peer 29/29 且复数名已删 · cordis.patch.yml 两处新形态 · 两份 README 版本行 1.4.0 · 关键产物行尾归一化后与源码仓库逐字一致。
  • 闸门(如实披露):typecheck / build / check 全绿;test 为 1 failed | 547 passed —— 唯一失败是本仓库既有的计时抖动(tests/live-channel-metrics.spec.ts),开工基线同一条同样失败(且基线还多一条 close-out-report 的 20s 超时),与本版改动无关。

v1.3.0 — 修复「画布与概览浮层不可用」(自 0.1.7 起)+ 支持 dsh 0.2.0 本版修掉一个长期存在但一直被误判为"0.2.0 兼容性问题"的取数回归,并正式支持 dsh 0.2.0。

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 05 Oct 16:42

v1.3.0 — 修复「画布与概览浮层不可用」(自 0.1.7 起)+ 支持 dsh 0.2.0

本版修掉一个**长期存在但一直被误判为"0.2.0 兼容性问题"**的取数回归,并正式支持 dsh 0.2.0。


修复

1. 画布空白、右上概览浮层缺席(自 0.1.7 起即存在)

现象:选定 DevFlow 后,右侧栏的 DevFlow 画布显示「DevFlow 状态暂时不可用」,右上的概览浮层也不出现。

根因在插件自己:DevFlow 的客户端 remote 描述符写的是 0.1.5 时代的 codec 形状。dsh 的 TypertCodec 在 0.1.5 用 schema,而 0.1.7 起改成了 create: () => TypertSchema 并且强制校验:

typert: …#devflowClient/snapshot result strict codec has no create() factory
client api: generated Remote devflow/snapshot field "agentId" has no strict codec

⇒ ctx.remote.$mount() 直接 reject ⇒ 取数对象恒为 undefined ⇒ 一次 devflow/* 调用都不会发出 ⇒ 画布拿不到快照。

因为 0.1.7 与 0.2.0 的这块契约逐字相同,这个缺陷从 0.1.7 起就存在,与 dsh 是否升级无关。

修法:描述符同时携带 schema(0.1.5)与 create()(0.1.7+),两边由同一个解析函数产出,校验强度不变;结果 codec 改用 src-json(0.1.5 亦支持),结果值仍由插件自己的解析器逐字段再校验。

2. peer 上界的时间炸弹

@deepseek-ai/dsh-agent-presets 的上界原为 <0.2.0。0.2.0-rc.2 能满足它(预发布参与比较),但 dsh 一旦发布正式 0.2.0,宿主自带的兼容性前置检查会直接禁用插件行(peerDependenciesMeta.optional 不豁免)。本版上界改为 <0.3.0,并新增 @deepseek-ai/dsh-agent-preset-registry 的声明。

3. 清理

  • 删除两个曾随包分发的孤儿构建产物 lib/host/activation-diag.js / lib/host/row-diag.js(源码树里没有对应源码、全仓零引用,且硬编码了作者的绝对路径)。
  • 安装器契约测试改为「仓库自身的 install.ps1 优先」的候选链;候选缺失时跳过而非报错。
  • 真实数据取证测试的根改为环境变量 DEVFLOW_FORENSICS_ROOT 可配置,缺失或为空时跳过。

兼容性

dsh 版本 状态
0.1.5(含 0.1.5-rc.2) 可用(与前版行为一致)
0.1.7(含 0.1.7-rc.1/rc.2) 可用;本版起画布与概览浮层恢复
0.2.0(含 0.2.0-rc.1/rc.2) 可用(本版新增支持)

声明区间:>=0.1.5-rc.2 <0.3.0(30 条 peer 全部 optional)。安装前置不变:Node ^22.19 或 >=24 · pnpm · 已安装 dsh(Windows 为实测平台)。

安装(一行)

git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"

装完重启 dsh,在预设列表选 DevFlow。

校验

  • 功能级(0.1.7 与 0.2.0 实机):画布渲染出真实业务读数(员工名册、任务卡、并发 N/5、实时通道已连接);右上概览浮层出现;devflow_dispatch_agent 真派发并在面板上出现员工节点。
  • 发布面:从远端重新克隆后逐项核对 —— 325 文件 · 禁入目录(docs / .workbuddy / .devflow / outputs / archive)0 · package.json.version = 1.3.0 · 两份 README 版本行 1.3.0 · lib/index.js / lib/client.js / install.ps1 / cordis.patch.yml 等关键产物行尾归一化后与源码仓库逐字一致 · .gitignore 不含 lib/。
  • 闸门:typecheck → build → check → test 四道全绿(58 files / 547 tests)。

v1.2.1 — 越权修复 · 人格恢复

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 30 Sep 22:53

本版修掉三个直接影响"装上就能用"的缺陷,并补齐 lib/ 分发缺口。

修复

1. 一行命令安装真正可用(分发缺口)
lib/ 此前被 .gitignore 忽略且从未提交,而安装器只校验不构建 ⇒ 克隆下来第 1 步就失败。
本版将构建产物 lib/ 纳入仓库(并保留 pnpm-lock.yaml),clone 后无需本地构建即可安装。

2. Commander 人格退化(选定 DevFlow 预设却与标准模式相同)
真实 offender 经插桩实测为 send_message / list_agents:它们注册在 Agent 自己的层上,
tools.restrict() 结构上遮不住 ⇒ 旧的"工具不可见"断言永不成立,激活被自己撤销。
本版把执行边界迁到 guard()(沿整条 scope 链求值,与注册在哪一层无关),
并把 verify() 改为断言"guard 已武装" + 反向断言(Commander 工具不得被误拒)。
同时把与 offender 同层、且能绕过 DevFlow 直接拉起子代理的 7 个名字一并纳入拒绝名单(26 → 33,纯加严)。

3. 越权激活:标准模式会话却在跑 DevFlow
根因是"换预设没有任何一条边去释放激活租约" —— 宿主侧兜底只挂了 agent/created(装)
与 agent/disposed(拆)两条边。空白会话期从 DevFlow 切回标准模式后,总指挥人格与执行 guard 会永久残留。
本版新增第三条边(agent-preset/selected):换出 DevFlow 即释放租约、换回按需补装(幂等)。
另修一条更上游的能力越界:devflow_* 工具族此前对所有会话可见 ⇒
现按调用者的实际组合预设收口 —— 非 DevFlow 会话调用即被拒,派发出来的子代理一律被拒
(与"员工无 devflow_* 工具"的产品承诺在执行面一致)。

4. 安装器 dsh 版本探测
profile 的 @deepseek-ai/dsh 软链指向的检出可能与实际运行的宿主不是同一个
(本机实证:软链指向 0.1.5,实际跑的是 0.1.7)⇒ 会被判成旧版、声明式预设保持禁用、预设列表里看不到 DevFlow。
本版探测顺序改为 运行中宿主优先(读进程工作目录,无需管理员权限、不引入未签名二进制)
并按 DSH_HOME 归属筛选,兜底才回落到软链解析;同时打印探测来源路径与依据,
检出不一致时给出醒目警告与 -PresetDeclaration on|off 提示。
0.1.5 行为保持不变(仍不启用声明式预设)。

兼容性

  • dsh 0.1.5 与 0.1.7+ 均可用;0.1.5 上不启用声明式预设(其加载器对无法解析的条目会硬失败),行为与 v1.2.0 一致。
  • 安装前置不变:Node ^22.19 或 >=24 · pnpm · 已安装 dsh(Windows 为实测平台)。

安装(一行)

git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"
装完重启 dsh,在预设列表选 DevFlow。
校验
- 从远端重新克隆后逐项核对:文件数、lib/index.js + lib/client.js + install.ps1 均存在、
package.json.version = 1.2.1、禁入目录(docs / .workbuddy / .devflow / outputs)为 0。
- 越权修复的功能级读数(沙箱):切换预设后 commanderMode 由 commander 变 chat、
总指挥人格段消失、pwsh 不再被 Commander 拒绝;非 DevFlow 会话 devflow_* 可见数 18 → 0 且执行被拒。

v1.2.0 — 宿主升级适配

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 25 Sep 17:17

一句话:DevFlow 现在能跑在 dsh 官方新版(0.1.7+)上,且 0.1.5 上的行为完全不变。

新增 / 修复

  • 宿主侧逐 Agent 激活兜底 —— 0.1.7 起 dsh 移除了「per-Agent 预设激活」接缝(目录式预设在新版没有任何读取方)。DevFlow 改为在自己的宿主 bundle 里监听 agent/created(装)/ agent/disposed(卸)来装配 Commander,因此在 0.1.7+ 上选定 DevFlow 预设后,Commander 真的会被装上(工具面 18 个 devflow_* + 5 人固定名册)。0.1.5 上该兜底主动让位,避免与预设行重复装配。
  • 安装器补装插件自身依赖(install.ps1 由 4 步增加到 5 步)—— 对插件安装目录执行 pnpm install。插件的 lib/index.js 是 ESM 且 @deepseek-ai/* 全是 peerDependency,只装 profile 会导致导入失败(ERR_MODULE_NOT_FOUND: Cannot find package '@deepseek-ai/cordis'),而旧宿主只打印一行 failed to import、不指出原因。该步先于改写 profile 执行,失败即响亮报错并给出可复制的修复命令(-SkipPluginDeps 可跳过)。
  • 预设双形态 —— 同一份产物同时服务两代 dsh:0.1.5 仍走 ~/.dsh/.agent-presets/devflow/ 目录式预设;0.1.7+ 走 cordis.patch.yml 里的「声明行」。声明行出厂即 disabled: true(0.1.5 的加载器对未解析 entry 是硬失败,故禁用是必需而非遗漏),安装器按探测到的宿主版本决定是否启用(-DshVersion 可显式指定)。
  • 平台窗口检查 —— 新增 tests/host-window-check.e2e.mjs:用真实宿主验证「在 agent/created 里边注册的工具,能进入该 Agent 的首个模型请求」。一条命令可跑、不需要凭据、不进 CI 收集范围。

兼容性

宿主 状态
dsh 0.1.5-rc.2 行为完全不变 —— 已用端到端激活计数验证:预设行 装 1 次 / 卸 1 次、宿主兜底 0 次 ⇒ 不存在双跑
dsh 0.1.7-rc.1 Commander 可被装上(已验证:工具面 18 个 devflow_* + 激活落盘 5 人固定名册);其余功能建议升级后自行复验一遍
  • Node:^22.19.0 || >=24 · pnpm:任意较新版本 · 实测平台:Windows。

安装

git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"
装完重启 dsh,开会话,选 DevFlow 预设即完成。
锁版本安装:.\install.ps1 -Ref 'v1.2.0'。(仓库目前仍为私有 ⇒ 上述命令需持有凭据;公开后无需改动即可直接使用。)

v1.1.0

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 23 Sep 18:40

DevFlow 1.1.0 — 画布状态纠正 · 守卫同源比对 · 横幅不再遮挡视野

修复

  • 画布新增「待执行」节点状态:员工"已接收未开工"时不再冒充「执行中」;同一员工既有在跑又有排队时,卡片与连线一致
  • 守卫误报(真机 7 次误拒):改回**逐 token「同源」**比对 —— 4 次转放行;余 3 次经反证确认"确实不同源",不放宽
  • 被拒的临时员工登记不再留残迹(授权检查前移到落盘之前)
  • 受阻横幅不再显示已解决的受阻(任务完成、或该任务出现更新的完成执行后自动不再显示)

改进

  • 两条横幅(激活失败 / 受阻)可折叠且默认只占一行,不再遮挡画布
  • 受阻横幅改回正常文档流 —— 这是"挡住视野"的真根因
  • 检查器新增「本任务技能」:显示本次派发实际注入的技能
  • 总指挥补「阶段状态纪律」,阶段记录不再与文档脱节

v1.0.0

Choose a tag to compare

@BinXie-lixiangdehua BinXie-lixiangdehua released this 22 Sep 19:26

DevFlow 1.0.0 —— 首个正式版。

把一个 dsh 会话变成一个小型交付组织,并把这个组织的过程画出来。

能力

  • 角色:总指挥(规划与派发)· 固定员工(架构师 / 后端 / 前端 / 代码审计)· 按任务临时创建的临时子代理
  • 状态机:派发 → 执行 → 审计 → 返工 → 验收收口;每一步都是落盘业务实体(.devflow)+ 追加式 journal
  • 派发面:devflow_* 工具族(任务 / 边界 / 委派 / 派发 / 状态流转 / 名册);并发上限 5、超限排队;每次交接都有派发诊断
  • 面板:画布(一条边=一次派发)· 名册(固定 / 临时、实时 并发 N/5)· 节点详情栏
  • 安全约束:临时子代理默认只给只读工具集(不声明=只有 read/glob/grep/read_image);验收收口动作只放行总指挥

安装

要求:Node ^22.19 或 >=24 · pnpm · 已安装 dsh(Windows 为实测平台)

git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"

lib/ 构建产物已随仓库提交 ⇒ 安装后无需本地构建。
安装脚本只动四处(插件落盘 / profile 注册 / pnpm install / preset 部署),且每个被改写的文件都先备份。

验证状态

  • 闸门 typecheck → build → check → test:53 files / 439 tests 全绿
  • 核心链路(编排 → 派发 → 并发 → 审计 → 返工 → 验收收口)与两条验收红线:已在真实环境跑通
  • 之后按 semver 迭代;每个发布快照都会带一个附注标签

已知边界

  • 临时子代理工具集授权有两条守卫判据的残留缺口,已钉成可执行用例留档、未修 —— 取舍是"宁可保留误报,也不把守卫变成摆设"
  • 并发上限 5 之下,任务产物重叠目前只靠提示词约束,尚未字段化

仓库当前为私有。公开之后,上面那条安装命令即可被任何人直接使用。