Repository navigation
Releases
Releases · joekytc/dsh-swarm
v0.5.1
新功能
- 模型候选链四层合成:角色主模型 → 降级候选(≤2,顺序=优先序)→ 全局官方兜底(
roles.chainFallback恒垫链尾)→ 宿主默认模型;角色链全空时官方兜底直用 - 配置面板模型链手风琴 UI:六角色(V/P/W/D/PT/DT)级联下拉选主模型 +「+ 降级」追加降级行,「复制本链到全部角色」快捷键
- 派发前 LLM 目录预校验:不存在的 provider/model 组合、模型未声明的 reasoningEffort 派发前剔除(fail-open 不阻断)
修复
- turn 期模型错误不再整轮失败:新增
agent/request+agent/request-error双 waterfall——402/配额/模型不可用/凭据缺失按候选链静默切换重试,卡片留[model-fallback]审计 - 手动
kanban-*preset 会话接入角色模型链(agent-preset/selected探测,六角色全覆盖;未配链会话原样放行) ACCOUNT_QUOTA/insufficient balance归类 transient(不计 attempts,靠调度 tick 重派),不再烧重试预算
v0.5.0
新功能
- 适配 DSH
0.2.0-rc.2宿主:peer 联合范围~0.1.7-rc.2 || ^0.2.0-rc.2(0.1.7-rc.2+与0.2.0-rc.2+双轨兼容,安装/启动双闸硬拒更旧版本) - 会话跳转接入宿主导航新接缝
uiWorkspace.openSession(client inject 声明,0.1.7 起宿主内置) - Agent 角色预设双路注册:
0.1.7走.agent-presets目录发现、0.2.0走运行时agentPresets.register,日志如实区分两路(dir-write/runtime-register) - 链审计写判定事件名双名兼容:
tool/code-dispatch[-start]与tool/ptc-dispatch[-start]皆认(V3+ 会话格式改名不断判)
修复
- AgentSetup 双参化
(agentCtx, agent)并显式传递 agent(0.2.0 移除ctx.agent便捷挂载) - 7 个角色 persona
text→prefix字段迁移,人设语义逐字保留 - subagent 挂载显式
maxDepth: 3,对冲宿主默认值收敛 ISessions.open移除适配:导航优先uiWorkspace,旧宿主回落open转发;惰性解析避免 apply 期触碰未就绪服务followup消息补 identifiedid(v4 会话校验拒绝无 id 消息,否则历史拒读)
其他
- 新增测试:双名事件、preset 注册、会话桥导航优先级等,88 文件 / 1225 用例全绿
cordis-plugin-include ^1.0.9、js-yaml依赖面对齐宿主实装
v0.3.12
修复
- 调度层 turn 错误分类处理:角色会话以 error 结束的轮次不再误判为
protocol_violation(不消耗 PV 预算)——配置错误(未知模型/不支持推理强度/无效请求)以model-unavailable阻塞任务并明确报因,瞬态错误(配额、网络)走基础设施级重试,未知错误限次重试;协议违规判定收窄为「turn 正常完成但未产生终态工具调用」一种情形 - LLM 模型候选预检:provider/model/推理强度组合在配置保存与任务派发前按模型目录校验,死组合直接拦截;目录不可达时跳过校验保持可用(fail-open)
- DT 评审官提示词澄清:complete 闸的 test 参数两键机械校验(
exit数字键名、runner固定vitest)写入角色指令,减少键名写错被拒
其他
- AGENTS.md 重组为七节结构(仓库布局/命令与验证回路/插件约定/领域不变式/运行时事实/代码风格/边界),踩坑经验沉淀为可执行规则
- 新增 20 个测试用例覆盖 turn 错误分类、错误事件记录与模型候选预检
v0.3.11
其他
- 两份 README(中/英)加入配置面板截图,直观说明两处关键配置:
- 模型链——每个角色(v/p/w/d/pt/dt)可单独选择提供方、模型与推理强度,未设置的角色显示「继承」沿用默认
- 评审引擎(ocr)——装好 ocr 后选托管/委托模式与提供方、模型,点「应用到 ocr」完成接入(API key 由 dsh 模型配置解析后写入 ocr,面板不展示明文)
- 截图存于仓库
screenshots/(不随 npm 包发布),README 用绝对 raw 链接引用,GitHub 与 npm 包页均可显示
v0.3.10
新功能
- PRD 单链接采集工具
planning_prd_collect:逐条采集用户给的 PRD 链接——原文切片写入 KBsource-docs命名空间(slicePrdMarkdown45KB 分片)、截图内嵌、失败按blockedReason分类(登录态/缺技能/404/其他)引导;配套采集子代理缝buildSpawnPrdCollect(只读白名单工具面web_fetch/read/glob/grep/skill+ 技能目录动态枚举) - 需求澄清清单结构性硬闸(三字段 + 闸门):
sources(闸1 需求来源必挂,确无来源须录「无来源+原因」)、prdCollection(闸3 每条 PRD 链接登记后必须collected或blocked,禁止悬空)、placeholders(后端未就绪项占位策略集中声明);闸2 新增指代不明禁词表(「按推荐/同上/见上」等);新增 PRD 平台路由routePrdPlatform(feishu/wecom/modao/其他) - 澄清引导文案 v5:十规则固化(含「来源三有」),蜂群模式与前缀路由两路同步
- 绿地(greenfield)项目支持:清单可声明
greenfield:true(纯声明触发,目录状态不参与判定)→ D 阶段模板带GREENFIELD=1与建仓前置(mkdir→git init -b main→ 初始提交),引导文案在目标无.git时要求显式声明;合并闸在 target 分支缺失时以 feature 建基线,建分支免 checkout(兼容 linked worktree) - DT 评审引擎配置事实注入:DT 上下文注入
reviewEngine.mode(含 managed 的 provider/model)——托管/委托不再由模型自行猜测(此前全链零注入点,实测出现「面板配 managed 却按委托跑」)
修复
- ocr 评审接入三处修复:
rule/managed子命令补--repo(此前仅preview传,导致rule稳定报not a git repository、managed可能静默审错仓库);目标仓库解析改为repo参数 → 会话工作目录(exec.agent.session.header.cwd)→ 注入兜底,并作为子进程 cwd,两处皆缺时 fail-loud;托管就绪探针兼容ocr config set的真实落点custom_providers.<provider>.model(此前把已接好的托管误判为未配置,ocr review从未被调用)。DT 提示词补 repo 语义与「应用到 ocr」降级指路 - 网关合成拒答自动重试兜底:识别 Higress 语义缓存/安全护栏对首轮任务 prompt 合成的 usage 全 0 拒答(
isGuardSynthesizedReply+ 回放模型判定单一事实源),角色会话whenIdle后自动 followup「继续未完成的任务」重试一次(限一次防循环),不再把拒答当结论空闲退出 - 采集缝补:
planning_prd_collect补skill工具、workspace 缺失 fail-loud(拒绝回退process.cwd())、subagent summary 兜底与降级路径测试 prd_collect描述与实际降级/阻塞语义对齐;handoff 澄清期 R10 追溯子句补闭合括号
其他
- 测试净增:全量 1124 → 1184 绿(ocr 参数/仓库解析/就绪探针/DT 注入、清单三字段硬闸、PRD 路由与切片、greenfield real-git 回归等)
- KB 白名单新增
source-docs命名空间(PRD 原文切片页),命名空间注释同步(五类→六类) lib产物与客户端 bundle 随源码同步重建
v0.3.9
新功能
- 需求澄清清单机读可靠恢复:清单页尾内嵌无损机读段
<!-- dsh-swarm:checklist-json ... -->;/openspec:路由2 经extractChecklistJson提取 → 硬校验 → 灌内存 → 当场建链,恢复全程 LLM 零参与——杜绝 LLM 重建的 stub 覆盖、字段失真与双重编码 - dispatcher 启动补扫:启动时对全部
executing链补wakeV([startup-rewake]日志)——重启游标越过 wakeable 事件(如 PT completed)不再吞编排轮、不再静默停滞
修复
planning_checklist_save参数 schema L1 化(官方类型化 DSL):spec 四字段 string、user_stories/impl_decisionsstring 数组、manifest 层级与files[].expectedenum 运行时强制;description 收敛为 schema 表达不了的语义(非空、确切键名、expected 语义映射:改→exists/建→absent)。根治澄清清单多轮调用失败(spec 数组化 / 双重编码 / expected 词表错)kanban_completemetadata /spec_card_editsections 参数 L1 化(open object)+ 清除as Record静默强转 +delivery-contract非对象 metadata 报类型真因——双重编码不再穿透到交付闸伪装成delivery required缺键prefetch-manifestfiles[] 报错聚合去重(×N 计数):26 条同文错误墙 → 1 条- preset 挂载收敛
mountOrRecompose:同 agentKey 二次挂载(blocked/unblock 多轮唤醒 resume 同一 session)走宿主官方recompose重链,不再撞dsh-scope一次性绑定(already bound to a parent);V 会话 fail-fast 语义保持
其他
- 测试净增 10 例:schema 防线(三次历史失败载荷)/ 报错聚合 / 机读往返无损 / 双重编码四态 / mountOrRecompose 四态 / 启动补扫候选;全量 1124 绿
v0.3.8
新功能
- 闸门警报与打回闭环:新增
task/gate-skipped事件与 hook 三态契约(pass / skipped / failed);连续 3 次闸门打回自动转人工出口 - 装配层 diff 互证:
GateOutcome四态互证派生 + skipped/test_files 声明分类纯函数;装配层 diff 互证接线、⑦分支 bounce、gate 日志落盘 - 评审证据三级核验(
evidenceReplay配置段,默认关):ReviewIssue.evidenceschema +review/evidence-check事件;三级编排——缺证标记 → 纸面核对 → 命令词边界白名单重放;evidenceCheckHook挂接 DT complete 非阻塞留痕;DT persona 取证要求;重放为非沙箱执行,已在文档明示
修复
- review-evidence lint 口径:对齐 build(拒收 null/标量)
- evidence 评审修复波次:元字符拒绝 / TIMEOUT 分流 / per-issue 容错 / forbidden 纵深 / 纸面行锚 / persona 限定
性能
- buildContext 注入去重:父链 metadata 瘦身 + rework 速览指针化
其他
- preset 判定统一走 session-preset 读面
- README 说明与配置表更新
v0.3.7
新功能
- wiki_write 会话级放行面放宽:此前仅链上组合会话与链上 DT 子代理可写 KB;现按 preset 白名单放行——默认含插件自有
swarm(蜂群模式 preset)、kanban-w(知识官 preset)与宿主内置ptc(实测 dsh web「蜂群模式」标签会话的header.agentPreset实为宿主 PTC 模式 id)。写面不变:仍由 wiki_write 工具内assertAllowedWikiPagePath五类命名空间白名单(checklists / ch_ 任务页 / review / reviews / learnings)硬约束;local 模式不注册 wiki_write,无工具面即无暴露面 - 放行白名单配置化:新增
wikiWritePresets配置(默认['swarm','kanban-w','ptc']),guard 经 dispatcher 热读getEffective()——宿主 preset 体系演化或部署自定义模式 id 时改配置即可,无需改代码;配置缺字段回空集 fail-closed - 拒绝文案诊断尾巴:wiki_write 被拒时报错附实际会话 preset 值(
当前会话 preset=…),会话模式判定缺口一次重试即可定位
修复
- 拒绝文案口径:旧文案「仅限交付评审官(DT)评审会话使用」与权限矩阵(
can('wiki-write') = w | dt)及工具描述(W only)自相矛盾,已更正
v0.3.6
新功能
- IM 投递多机器人路由:机器人选择按会话 preset 匹配(探针读取 dsh-im 连接态与
agentPreset);未命中 →imDelivery.fallbackBotId;仍未设默认 → 手动投递路径交互选择(含「设为默认」)。auto 路径禁止交互,按botId → fallbackBotId → fail-closed 列候选处理;探针失败只降级不阻断投递 - 交付汇报结构化骨架:
kanban_complete支持metadata.report(需求/状态/分支/功能清单/验收/验证/遗留/待办/KB),企微群内按新骨架渲染;report 缺失或形状不合法时回退旧机械格式(旧链兼容) - 人工恢复出口:
kanban_waive_review(评审豁免,failed/gave-up→waived)与kanban_reopen_chain(阻塞链blocked → executing),均 human-only,附[recovery]审计评论;GUI、HTTP action 与工具面同步接线 - P/PT 收敛闸:PT 复审轮在旧账清零且无未解决 critical 时,
fail降级为pass,未解决新问题转下游「评审遗留建议」([review-final]留痕),保证返工必然收敛 - 返工卡「本轮修复清单」:上一轮评审 issues 全文确定性注入返工卡 body,返工方定点修复;返工卡改用独立会话
kbn-<reworkId> - swarm 角色接入文件系统技能与 Web 工具
修复
- 返工上下文注入查询键错位:
review/failed.targetTaskId恒指向 root 卡,旧实现自第 2 张返工卡起注入为空(返工方盲修)→ 改为沿reworkOfTaskId回溯 root 后匹配 - gave-up 死锁:编排幂等分支用布尔 OR 判定,恒落
rework→ 改按该评审卡最后一条 review 事件判定(人工豁免/恢复后可继续推进) - 链头警告粘历史:阻塞解除后警告行永久常驻 → 改为反映当前状态(链级
chain/blocked原因 → 当前 blocked/failed 卡原因 → 无则不显示) - 人工恢复后 stall 计数残留:新增
reopenConsumedSeq位点,恢复事件只消费一次,避免重试额度立即再撞上限 - 配置面补齐:
config-override白名单新增imDelivery(此前手写 override 属 no-op),并纳入config-auditdiffKeys - GUI 保存旧 bundle 不带新字段会清空配置 → PUT 归一化保留现值;
fallbackBotId增加 botId 形态校验 - W 角色沙箱纪律:会话已处 danger-full-access 时,任何工具调用禁带
sandbox_permissions/justification(带参重试会持续被宿主拒绝) - 文档口径对齐:
maxReworksPerRolePT 2→3,清理 AGENTS 中已不存在的judgePTNeeded/review_override描述
体验交互
- GUI:任务详情新增「豁免评审」(理由必填,校验/在途/成功三态反馈);链头新增「人工恢复」(仅 blocked 链显示)
- 弹窗按钮补齐 disabled/在途视觉;修复横向空间不足时按钮文字逐字竖排
/sms多机器人交互:一次弹两问(选机器人 + 是否设为默认),5 分钟等待上限;投递结果回报命中方式与默认是否写入成功- 交付汇报 / 阻塞通知在企微群内视觉统一(【交付汇报】/【交付阻塞】+ 链 id + 已完成 n/m)
其他
- 事件面扩展:
chain/reopened/review/waived状态机、投影与时间线展示 - 测试:81 文件 1038 用例全绿(新增 im-bot-probe、机器人决策链、收敛闸、恢复出口、交付汇报骨架用例)
- 日志红线:cookie / token / URL / 请求头不写入
dispatcher.log与events.jsonl - 版本说明:npm 上 0.3.3–0.3.5 未曾发布,本次 0.3.6 覆盖自 0.3.2 起的全部变更
v0.3.2
新功能
- ocr_review 新增
background参数:托管评审透传业务上下文,提升评审质量;DT 托管模式交接同步注入 background 提示
修复
- ocr preview/managed 对齐 ocr CLI 真实 schema:preview 显式
--format json、官方字段名(reviewable_files / excluded_files / exclude_reason)、行号 start_line 容错别名、managed 恒带--audience agent抑制 progress 输出 - ocr wire 取 API key 补 ctx.credentials 路径:托管模式凭据存于 managed store 时不再写入失败
- 移除 D 角色 prompt 中的 open-code-review 指引:评审工具仅 DT 使用,防止 D 误调