Repository navigation
Releases
Releases · huhaodong/dsh-auto-driving
v0.7.3
0.7.3 — 欠费标记修复(分类缺口 + 日志黑洞)
排查结论
欠费标记链路逐环验证(describe 投影 / wire 形状 / remoteServiceKey / 徽标渲染 / 写入路径)全部正常,问题定位在两处:
- 分类器词汇缺口(根因):徽标口径是「欠费或鉴权失败」,但分类器只认
QUOTA码和少量中文措辞——ACCOUNT_QUOTA码族、官方isQuotaExceededError词汇(Insufficient Balance、insufficient_quota、quota exceeded…)、AUTH 类下的密钥无效措辞(invalid api key/鉴权失败)全部漏判 → 账户被跳过但永不落标记。 - 日志黑洞: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
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
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
0.7.0 — 全 DeepSeek Harness 版本兼容 + 插件市场发布
兼容性
- 修复
@deepseek-ai/dsh-settings0.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 全面适配(设置层 / 全自动 / 回退链路)
🧩 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 · 全局总闸门控 + 轮次保活
🎛 全局总闸门控(本版核心)
设置页勾选从「所有对话的默认值」升级为「可用性总闸兼默认值」:
- 关闭「自动驾驶」或「模型回退」后,对应的胶囊半边从所有对话的输入条中消失;两项都关闭则整个胶囊不再出现
- 总闸关闭时,会话的历史钉住状态不再能复活该模式(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 — 气泡通知按对话隔离
✨ 气泡通知按对话隔离(sessionId 归属)
- 每条日志事件携带产生它的对话的会话 id(随 JSON 日志与每帧 SSE 推送下发),气泡只出现在该对话的页面上,多会话并行互不串台
- 切换对话时旧气泡立即消失;切回某个对话时,若其状态仍在 30 秒窗口内则原样重现
- 无法归属到对话的事件(宿主级日志)不弹泡,仍完整记录在「运行状态 → 工作日志」
- 气泡逐帧跟随输入框(
requestAnimationFrame锚定 + 去重写):侧栏收起、窗口缩放、输入框随内容长高时,气泡保持相对位置同步移动
🔧 模型切换可视化
- 输入区对话框模型显示同步,现在只响应该会话自己的切换事件,不再被其他会话的切换带偏
✅ 测试
- 新增 session-attribution 端到端用例:切换 / 恢复 / 自动审批事件均验证携带正确的会话 id
Full Changelog: v0.3.2...v0.4.0
v0.3.2 — 首个发布
🎉 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。