Skip to content

Releases

v0.7.3

Choose a tag to compare

@huhaodong huhaodong released this 05 Oct 06:47

0.7.3 — 欠费标记修复(分类缺口 + 日志黑洞)

排查结论

欠费标记链路逐环验证(describe 投影 / wire 形状 / remoteServiceKey / 徽标渲染 / 写入路径)全部正常,问题定位在两处:

  1. 分类器词汇缺口(根因):徽标口径是「欠费或鉴权失败」,但分类器只认 QUOTA 码和少量中文措辞——ACCOUNT_QUOTA 码族、官方 isQuotaExceededError 词汇(Insufficient Balance、insufficient_quota、quota exceeded…)、AUTH 类下的密钥无效措辞(invalid api key/鉴权失败)全部漏判 → 账户被跳过但永不落标记。
  2. 日志黑洞:cordis LoggerService 是可调用对象(typeof === "function"),0.7.0 的对象型守卫判错 → 插件全部日志被吞(宿主日志里看不到任何 armed/欠费/持久化行),把所有诊断线索一并吞掉。

修复

  • 分类器按官方词汇表补全:QUOTA/ACCOUNT_QUOTA/PAYMENT/BILLING 码族、INVALID_CREDENTIAL、官方 quota 文案 + insufficient_quota 类型串 + 402 体 + 中英欠费措辞、AUTH 类下的密钥无效措辞;模型级 403(该 key 不可用此模型)保持不落标记,该账户其它模型照常回退
  • logger 守卫接受可调用形状;markArrears 落标记/持久化全程写日志(成功也写)
  • 设置镜像 describe() 失败后最多重试 3 次(2s 间隔),不再可能永久卡 loading
  • 回归测试:6 组分类词汇矩阵 + 可调用 logger 用例;五组测试全绿

v0.7.2

Choose a tag to compare

@huhaodong huhaodong released this 05 Oct 05:35

0.7.2 — 修复「自动驾驶 / 模型回退开关无法开启」

根因(宿主日志实锤)

~/.dsh/logs/desktop-next.log:

model-fallback (dsh-model-fallback): TypeError: providers is not iterable
    at scheduleRefresh (lib/index.js:805:26)
    at new apply (lib/index.js:2026:2)

profile 补丁层/设置写入可以给 providers 任何形状(本次现场是字典),而 apply() 启动路径裸迭代它 → 插件激活即崩,设置钩子与 /api/session-state 路由全部没注册——两个开关点了没有任何反应。

修复

  • scheduleRefresh 单一入口形状归一化:Array.isArray 收窄,字典/数字/布尔/字符串等任何形状降级为「无候选」并告警指引在设置里重存分组;覆盖启动、设置变更、llm/adapters-updated 三条调用路径
  • 回归测试:7 种畸形形状 × 启动/运行时路径不再击穿激活

验证

smoke(含新用例)/ client UI / e2e / next-settings / compat 五组测试全绿。

v0.7.1

Choose a tag to compare

@huhaodong huhaodong released this 05 Oct 04:26

0.7.1 — 修复 cannot get property "remote.settings" without inject

0.7.0 把可变 wire face 从 inject 声明移除后,上下文代理对未声明的 ctx.remote.<face> 属性访问会直接抛错。现改为官方「免 inject 声明」的 ctx.get(name) 可选查询(服务未提供时返回 undefined 而非抛错),保留「晚到自愈」;属性访问只作平铺宿主/测试替身的兜底并整体进 try。

  • 回归测试:复现 cordis 代理抛错的宿主形态——apply 不再崩溃、设置页降级只读占位、服务晚到经 ctx.get 自愈
  • 五组测试全绿(smoke / client UI / e2e / next-settings / compat)

v0.7.0

Choose a tag to compare

@huhaodong huhaodong released this 05 Oct 03:50

0.7.0 — 全 DeepSeek Harness 版本兼容 + 插件市场发布

兼容性

  • 修复 @deepseek-ai/dsh-settings 0.1.7+(DSH NEXT)宿主上插件加载即崩:installSettingsSection / settingsNamespace 工具函数被官方移除,改为命名空间导入 + 本地等价实现兜底
  • 新增跨世代加载矩阵 test/compat.mjs:4 代真实 dsh-settings × 2 种宿主设置缝逐一验收
  • userQuestions 等宿主服务晚注册 / 重建自动重挂(ctx.inject 逐实例武装)
  • 客户端只声明稳定服务,wire face 运行时防御解析;设置传输缺失降级只读占位、晚到自愈
  • 未知流帧保守计为可见内容(对齐官方 StreamChunk 词汇表),杜绝二次流式损坏消息
  • logger / locale / session.append 等宿主 API 改形守卫;默认可重试码补齐 TRANSPORT

市场合规

  • @deepseek-ai/* 改 peerDependencies,逐元组预发布分支覆盖全部 rc/alpha 构建
  • engines.dsh 兼容范围声明、dsh.manifestVersion: 1、repository 字段、screenshots.json

v0.6.4 · DSH NEXT 全面适配(设置层 / 全自动 / 回退链路)

Choose a tag to compare

@huhaodong huhaodong released this 05 Oct 02:36

🧩 DSH NEXT(dsh 0.2.x)全面适配

设置层

  • 设置控制器改走 remote.settings 描述镜像(旧宿主自动回退 settingsScope),修复新运行时下插件 pending 不激活、设置页报「供应商目录加载失败」的问题
  • 「全自动模式」设置绑定 model-fallback 条目行的 auto 子树(0.2.x 按条目 id 键控)——设置页开关与胶囊自动驾驶半边恢复可用
  • 共享行并发写入的版本围栏冲突自动重试一次(SettingsConflict 不再打断保存)

全自动模式

  • approval/request 抢先注册(prepend + global):抢在 UI/API 桥弹窗之前自动应答,权限审批不再等待人工
  • 提问/方案通道适配 0.2.x userQuestions.ask / askTimed 漏斗(方案审批、人工确认、超时提问),旧宿主保留 registerProvider 路径
  • 系统提示通知与 AUTO-MODE.md 审计落盘解析兜底修复

模型回退

  • 供应商目录改用类型化远程接口(remote.llm.listProviders / listConfigurableProviders + remote.session.modelCatalog)
  • llm/stream、agent/request-error、llm/adapters-updated 监听注册加 global,保证跨 fiber 投递(回退链路武装加固)

测试

  • 新增 DSH NEXT 运行时验收场景:桥接抢占、auto 子树读写、ask/askTimed 包装、系统提示通知、审计落盘
  • 四套测试电池(smoke / client / e2e / next-settings)399 条断言全绿

Full Changelog: v0.6.2...v0.6.4

v0.6.0 · 全局总闸门控 + 轮次保活

Choose a tag to compare

@huhaodong huhaodong released this 10 Sep 03:56

🎛 全局总闸门控(本版核心)

设置页勾选从「所有对话的默认值」升级为「可用性总闸兼默认值」:

  • 关闭「自动驾驶」或「模型回退」后,对应的胶囊半边从所有对话的输入条中消失;两项都关闭则整个胶囊不再出现
  • 总闸关闭时,会话的历史钉住状态不再能复活该模式(host 生效判定与 client 渲染镜像),杜绝隐形运行
  • 设置改动即时生效(settings mirror 在 document-updated 时重读,任何窗口修改都反应式同步)

⏱ 轮次保活对齐 dsh-auto-continue

  • 整轮任务因模型服务异常失败时自动发送「继续」,让任务接着跑
  • 模板占位符({code} {message} {status} {tool} {turn} {errorCount} {elapsed})、幂等护栏(检查上一步工具调用后再唤醒)、错误分类与退避上限

🎨 胶囊与气泡体验

  • 气泡按通道分文案(方案审批 / 确认提问 / 权限审批),长详情截断
  • 开关即时生效,无需重载或重新布防
  • 胶囊响应式收缩(窄输入条与内容挤压两种触发,带迟滞防抖)

Full Changelog: v0.4.0...v0.6.0

v0.4.0 — 气泡通知按对话隔离

Choose a tag to compare

@huhaodong huhaodong released this 03 Sep 04:51

✨ 气泡通知按对话隔离(sessionId 归属)

  • 每条日志事件携带产生它的对话的会话 id(随 JSON 日志与每帧 SSE 推送下发),气泡只出现在该对话的页面上,多会话并行互不串台
  • 切换对话时旧气泡立即消失;切回某个对话时,若其状态仍在 30 秒窗口内则原样重现
  • 无法归属到对话的事件(宿主级日志)不弹泡,仍完整记录在「运行状态 → 工作日志」
  • 气泡逐帧跟随输入框(requestAnimationFrame 锚定 + 去重写):侧栏收起、窗口缩放、输入框随内容长高时,气泡保持相对位置同步移动

🔧 模型切换可视化

  • 输入区对话框模型显示同步,现在只响应该会话自己的切换事件,不再被其他会话的切换带偏

✅ 测试

  • 新增 session-attribution 端到端用例:切换 / 恢复 / 自动审批事件均验证携带正确的会话 id

Full Changelog: v0.3.2...v0.4.0

v0.3.2 — 首个发布

Choose a tag to compare

@huhaodong huhaodong released this 02 Sep 14:10

🎉 dsh-auto-driving 首个正式发布

DeepSeek Harness (DSH Desktop) 插件:模型自动回退 · 任务自动重试 · 全自动模式 —— 让未完成的任务自己找路继续。

✨ 功能

  • 🔁 模型自动回退:供应商分组循环 + 模型池勾选 + 欠费账户自动跳过;请求在产出任何内容前失败即无缝切换下一个候选模型,任务无感继续
  • 🔄 任务自动重试:非模型异常同模型指数退避重试;循环级整轮重发;传输层瞬态错误(TRANSPORT / NETWORK_ERROR / TIMEOUT / CONNECTION_CLOSED)始终可重试
  • ⏱ 活性看门狗:请求静默超时自动判定卡死,重发/切换重新激活任务;所有恢复机制均有硬上限,数学上不可能死循环
  • 🤖 全自动模式:权限审批 / 确认提问 / 方案评审按默认允许自动应答,全部记录到工作区 AUTO-MODE.md 审计文件
  • 🏠 主页一键开关:对话框「自动驾驶」胶囊按钮,与设置页状态实时双向同步
  • 💬 切换可视化:对话内 llm/retry 切换链 + 「模型已切换」通知,恢复时间线完整可见

📦 安装

dsh plugin --profile desktop add /path/to/dsh-auto-driving

安装后重启 DSH Desktop。详细说明见 README。