Skip to content

Releases

v1.6.0

Choose a tag to compare

@huanlin-labs huanlin-labs released this 04 Nov 11:42

dsh-skill-cockpit v1.6.0

  • D/E 段界面增强:密度、吸顶、按根分组、正文搜索、键盘行操作、复制动作、路径搜索。
  • 修复后备库页 reserveListPathOf is not defined,POST /vault/list 恢复 200。
  • 测试:npm test 19/19;路由 85/85;客户端 111/111;文档 17/17;verify:install 13/13。

v1.5.6 — 备份全部修复与版本串收口

Choose a tag to compare

@huanlin-labs huanlin-labs released this 04 Nov 09:37

修复

  • 修复「备份全部」始终返回 0 个文件 / 0 字节:宿主路由误把根对象数组传给 backupAll()。
  • /ping、页脚、package.json 三处版本串统一为 1.5.6。

工程

  • 补齐 issue / PR 模板、CONTRIBUTING、SECURITY、CODE_OF_CONDUCT。
  • 新增核心视图渲染测试与四页总览 docs/screenshots/tour.gif。

验证

  • npm test 19/19;verify:install 13/13。
  • Windows DSH 1.5.6 真机:备份全部 76 个技能 / 2242 个文件 / 79,703,006 字节。

v1.5.1

Choose a tag to compare

@huanlin-labs huanlin-labs released this 30 Oct 15:07

CI 三平台修复:测试沙箱改用 os.tmpdir()(Windows Node 22 的 0xC0000409);POSIX 符号链接改用 unlinkSync(macOS/Linux ENOTDIR);zstd 多帧按帧边界解码(截断尾帧不再拖垮前帧);CI suites 补 macOS,三平台 × Node 20/22/24 全量运行。见 CHANGELOG.md。

v1.5.0 — doctor, verify:install, honest boundaries

Choose a tag to compare

@huanlin-labs huanlin-labs released this 30 Oct 14:29

1.5.0 — 2026-10-30

自证:verify:install + CI 三平台 + 诚实边界

  • 新增 npm run verify:install:npm pack → 装进空临时目录 → 用装机副本启动宿主半 → /ping 读回版本 → 状态目录隔离,8 项断言。抓的是「源码能跑、发出去的包不能跑」这类只有真装才暴露的问题(本轮第一次跑就抓到:lib/state.js 不在旧包的安装结果里 → 立刻确认 tarball 必须自带它)。
  • 状态路径可用 SKILL_COCKPIT_HOME 覆盖(lib/state.js),gloss.json / local.json 都走它;测试与 CI 不再污染真实 ~/.dsh。
  • CI 从「ubuntu × Node 20.11 单格」改为:语法三平台 × Node 20/22/24;全量自测 ubuntu + windows × 20/22/24;verify:install 三平台 × 20/22/24;推 tag 时单独核对 registry latest = package.json 版本。macOS 不跑全量套件,README 如实写明。
  • README / README.zh.md 顶部版本漂移修正(0.6.10 → 1.4.1),并新增**「诚实边界 / Honest boundaries」**段:只在 Windows 真机验过、macOS 只跑语法与 verify:install、翻译依赖免费接口、一键修会改文件但有 .bak、不是沙箱、调用次数只是下界。

修「一键修」点了没反应(描述 13 字场景)

  • 根因:体检判「过短」是 < 20 字,一键修只处理 < 8 字 —— 13 字两边都不算,点下去返回 changed:false,看起来像按钮坏了。
  • 现在两边共用 checks.js 的 MIN_DESCRIPTION_LENGTH;短描述保留原词并接上正文第一段(≤200 字),不编内容。
  • 正文里没有可用句子时不再静默:返回明确原因并显示在提示里,也不连带挡住同文件里 name 的修复。

新增:dsh-skill-cockpit-doctor(自查 CLI)+ 平台矩阵

  • bin/cockpit-doctor.mjs:一条命令回答「面板为什么没出现」——状态目录可写、user-dsh 技能根、技能数、profile 装配里有没有挂这个包、译文缓存条数。
  • --json 给机器读;--home <dir> 把全部路径重定向到临时 home(测试/CI 用,不碰真实 ~/.dsh);--fix 只补能安全补的(状态目录、缺失的 user-dsh);--version 在参数解析之前处理。
  • 退出码:0 就绪 / 1 有要修的 / 2 环境问题。
  • 新增 docs/platforms.md:平台矩阵,一格一句判断依据 + 验证状态(Windows 真机 / macOS·Linux 只跑语法与我装 / 别的 harness 不支持)。
  • 接线:npm test 加「诊断 CLI」套件(11 项,含 --dry-run 不落盘);verify:install 增加 2 项——用装机副本的 bin 跑 --version、装机副本 doctor --home --fix 必须退出 0。
  • --dry-run:只报「将创建/将修」不写盘,退出码仍表达"有事要做"(1)。
  • --report <file>:把同一份 JSON 报告写到指定文件(只读,不改任何状态);写不出去时退出码降为 2 并说明原因。
  • docs/self-check.md:把提示词第 7 步那 10 条逐条打勾 + 证据;CI 首跑与发版 tag 两条明确留空,不装完成。
  • doctor 新增 session-logs 检查:数得清 <home>/.dsh/sessions 下的会话日志就报数,读不到就写原因(用量页为 0 时先看这一项)。
  • README 安装段改成三步(装包 → 挂 profile → 重启并自查),每步都写「期望看到什么」;顺手修掉示例里过期的 1.0.0。
  • 删除兜底回收站也去本地化:deleteSkill 的默认 trashRoot 从写死 D:\回收站\技能面板删除 改为与回收站一致的 <DSH home>/skill-panel/trash(界面本来就会传配置值,这里是给脚本/库调用兜底)。
  • 未安装索引默认不配置:DEFAULT_UNDECLARED_INDEX 不再指向某个作者本机的 D:\管家\… 文件,改为空字符串(面板显示“未配置”);已有使用者可用 undeclaredIndexPath 显式指定。
  • 界面里“来源目录”输入框的占位符由 D:\path\to\skill-folder 改为 <path to skill folder>。
  • 备份默认根去本地化:DEFAULT_BACKUP_ROOT 从写死 D:\回收站\技能面板备份 改为 <DSH home>/skill-panel/backups(与回收站一致),装到别的机器上不会再往 D 盘写;README 的本机路径也一并清掉。\r\n- 工具侧备份落点跟随配置:skill_panel 的 action=backup(单个 / 全量)此前绕开 backupRoot,总是写默认目录;现在与 HTTP 路由共用同一落点,并加路由级回归(工具与路由各备一次,均落在 <dshHome>/skill-panel/backups)。
  • 备份根可配置:新增 backupRoot 配置键;备份路由统一走 backupRootOf(cfg)(默认 <dshHome>/skill-panel/backups),不再绕过 dshHome 直接写 ~/.dsh。
  • verify:install 加严到 13 项:新增「空 home 上 doctor 必须先报需要修」「--fix 后复检全绿」「再 --fix 仍全绿(幂等)」三条,避免"装完就全绿"掩盖真实状态。
  • 文档诚实边界校正:README / docs/platforms.md 明确写出 CI 已配置但还没推送跑过,不再把"配好了"写成"跑过了"。
  • 新增「文档一致性」自测(第 19 套):README 的 tests 徽章必须等于 run-all 真实套件数(真抓到过一次 17 写死)、每个 doctor 检查项必须在 troubleshooting 表里有条目、README 的 docs/ 链接必须存在。
  • 新增「文案字典」自测(第 18 套):zh / en key 必须一一对应、无空文案、同一 key 的 {placeholder} 集合一致——防再出现「界面显示原始 key」。
  • doctor 新增 zstd 检查项:没有 zstd 解压 API 时直接说明「用量会偏低甚至为 0」,不用再猜。
  • 用量页诚实披露:GET /usage 现在返回 zstd 能力标记,Node 缺 zstd 解压 API 时返回 note,页面显示「次数会偏低甚至为 0」而不是静默的 0。
  • 修 CI 可移植性(GitHub Actions 三次全红,15 秒即挂):5 个测试文件把 file:///D:/插件/... 写死成绝对导入 → 改相对导入;run-routes / run-usage 静态导入 Node 24 才有的 zstdCompressSync → 改为能力探测(路由用纯文本 fixture 兜底,用量在无 zstd 时明确 SKIP);run-toggle 在干净 home 没有 ~/.dsh/skills 时直接退出 → 自动建空目录。
  • 实测:Node 24 17/17;Node 22 run-usage 61/61;Node 20 17/17(run-usage 打 SKIP)。
  • 新增 test/run-presets.mjs(14 项):预设挂载的安全边界——真实目录 unmount 必须拒绝、detach 只搬技能且同名冲突不覆盖、presetId/技能名不得路径穿越。npm test 现 17 套件。
  • 新增 docs/troubleshooting.md:六个 doctor 检查 id 各自「在问什么 / 出问题怎么办」,加三个常见现象(面板不出现、用量全 0、一键修修不了)与「它查不到什么」。

小改

  • 列表里展开某条技能时,描述按整段显示(不再单行省略)。

v1.4.1 — 翻译好用

Choose a tag to compare

@huanlin-labs huanlin-labs released this 27 Oct 09:26

按钮就叫「翻译」;真机能用(系统代理 + MyMemory/Google 双源,免 key)。实测新装 20 个英文技能 + 原有 4 个 = 24/24 译成中文,18 秒。

v1.4.0 — 一键翻译

Choose a tag to compare

@huanlin-labs huanlin-labs released this 27 Oct 08:58

新装 / 后备库拉回来的英文技能,工具栏点「一键翻译」就翻成中文摘要。

  • 用宿主自带 translator 服务(google 匿名,免 key;失败回退 bing),结果写 ~/.dsh/skill-cockpit/gloss.json
  • 面板中英词条补齐(gloss.* 5 条),修掉按钮显示成英文 Translate
  • 只改显示,不动任何 SKILL.md

v1.3.2

Choose a tag to compare

@huanlin-labs huanlin-labs released this 27 Oct 08:04

修复 1.3.1 回归:分组页计数与列表页同源(tagsOf);顶部口径条整行跨列,左上不再空白

v1.3.1

Choose a tag to compare

@huanlin-labs huanlin-labs released this 27 Oct 07:58

分组页计数口径(共 N / 已归组 / 未归组 + 残留旧名字另计)· 英文技能中文摘要(只改显示,存本机浏览器)· 自测 15/15

v1.3.0 — 自动加载工具栏化 + 每行必用

Choose a tag to compare

@huanlin-labs huanlin-labs released this 27 Oct 07:25

自动加载控件收进工具栏(开关 + 严格/标准/宽松三档);每个技能行新增「必用」(pin);修复从 0.6.38 起就存在的「新建技能」整页白屏,并新增渲染冒烟测试;中英 README 补全三档参数、上限与开启代价。

v1.1.2 — 修 skill_autoload 工具从未注册

Choose a tag to compare

@huanlin-labs huanlin-labs released this 25 Oct 16:16

这一版修什么

1.1.0 的「开 = 自动加载」说了能用 skill_autoload 一句话开关,但真机上这个工具根本不存在。

  • 现象:Tool.listTools 里只有 skill_panel,没有 skill_autoload;面板、README 都写着能用。
  • 根因:DSH 的 ToolDefinition 必须带 output: { schema, render }。skill_autoload 漏了这一段,ctx.tools.register() 直接抛错,而外层 try/catch 只打一行日志就吞掉了 —— 表现就是「工具悄悄没出现」。
  • 修法:补上 output(与 skill_panel 同形),并加源码级回归断言,防止下次再漏。

验证

  • 重启 DSH 后 Tool.listTools 已能看到 skill_autoload(10 个参数:action / tier / skill / off)。
  • npm test 14/14 套件全过。

没有其它行为变更;自动加载仍然默认关闭,需要你自己开。

Full Changelog: https://github.com/huanlin-labs/dsh-skill-cockpit/blob/main/CHANGELOG.md