Repository navigation
Releases: daha1216/dsh-skills-manager
Releases · daha1216/dsh-skills-manager
Release list
v0.3.2 — 修复 GitHub 安装缺 cordis.patch.yml
v0.3.2 — 修复 GitHub 安装缺 overlay
修复
- GitHub 方式安装不再缺
cordis.patch.yml:dsh.bundle.patch指向该文件,但package.json的files白名单之前遗漏了它。pnpm 打包 git 依赖时按files出包,导致 tarball 里没有 overlay,DSH 启动校验报failed to read overlay ...: ENOENT,插件显示为红色「异常」,设置里也不会出现「技能」页。本地link:/file:安装因为整棵树都在,不受影响。 - 感谢 @lanslot4n93r 的 #3:定位、复现与修复验证。
升级
dsh plugin --profile web add github:daha1216/dsh-skills-manager#v0.3.2之前安装失败或显示异常的用户,重跑一次安装 / 更新命令即可;本地 link: 开发环境无需处理。
说明
- 本次只改打包白名单,无运行时代码变更,不需要为功能重启 DSH。
- 测试:
node --test "test/*.test.mjs"→ 21 项全部通过;npm pack产物已包含cordis.patch.yml。
v0.3.1 — 深色模式视觉修复
修复
设置页在 DSH 深色主题下按钮与开关失形、强调色不可读。根因是几个令牌语义用错、还有几个令牌在 DSH 里根本不存在。
- 主按钮前景与底色:
.skm-btn-primary原用--dsw-alias-brand-primary配color:#ffffff。该令牌是宿主单色主按钮的底色(深色下为近白#f9fafb),于是变成白底白字。改用宿主自己的配对--dsw-alias-button-primary-fill+--dsw-alias-label-primary-foreground;hover 由filter: brightness(1.06)改为--dsw-alias-button-primary-hover。 - 危险按钮:
.skm-btn-danger文字改--dsw-alias-label-primary-foreground;hover 由filter: brightness(1.08)改为按主题色混合,深色下不再糊成一团。 - 强调色:13 处
--dsw-alias-brand-primary统一改为--dsw-alias-link(浅色#4176e6/ 深色#7aaaff)。 - 失效令牌:4 处
--dsh-code-font-family改为--ds-font-family-code;3 处--dsw-alias-state-warning-primary(少个ing)改为--dsw-alias-state-warn-primary。 - 开关:按宿主
._switch_1ik0f_5/._thumb_1ik0f_33的令牌配对重写。此前选中态的旋钮与轨道在深色下对比度仅约 2:1;现在未选中轨道用--dsw-alias-border-l3、旋钮用--dsw-alias-switch-thumb,选中轨道用--dsw-alias-button-primary-fill、旋钮单独覆盖为--dsw-alias-label-primary-foreground,并合并了原先重复的两条选中态选择器。 - 阴影:卡片展开与编辑器面板的硬编码
rgba(0,0,0,…)阴影改为--dsw-shadow-lv2。
测试
npm test 21 项通过、0 失败。
升级
dsh plugin --profile web add github:daha1216/dsh-skills-manager
或通过插件目录更新。客户端改动刷新页面即可生效。
v0.3.0 — 一键打开技能安装目录
新增
- 设置页工具栏新增「打开目录」按钮:一键在系统文件管理器中打开技能安装目录(
~/.dsh/skills)。 - 每个技能卡片新增「打开目录」:目录型技能直接定位到该技能目录,单文件型技能定位到技能根目录。
平台支持
- Windows:
explorer.exe+ file-URL 编码(非 ASCII 路径、逗号/等号安全转义),与 DSH 内置打开方式一致。 - macOS:
open;Linux:xdg-open(WSL 走 Windows 资源管理器)。
安全
POST /skills-manager/api/open仅接受 POST,沿用 Host/Origin 信任围栏与application/json校验。- 打开目标限定在技能根目录内,拒绝越界路径;spawn 仅传 argv,不拼接 shell。
- 根目录不存在时自动创建。
测试与文档
- 新增 3 项测试(根目录/技能目录打开、缺目录创建与不安全请求拒绝、Windows 路径编码),共 21 项测试通过。
- README 补充
/openAPI、客户端功能与安全边界说明。
升级
dsh plugin --profile web add github:daha1216/dsh-skills-manager
或通过插件目录更新。宿主与客户端改动需要重启 DSH 后生效。
v0.2.0 — 安全与数据保真修复
安全与数据保真修复
本版针对设置页「技能」管理插件的审查结果做了整体修复。
数据安全(P0)
- frontmatter 改为分段解析与序列化:支持
>/|块标量、引号、行内注释、多行 plain 值;未知键、注释与 metadata 原样保留。 - 修复切换调用策略时块标量
description被清空的数据丢失:此前写回后官方 provider 会因description为空而静默忽略整个技能。 - 修复
---之后空行每次保存递增的问题。
安全边界(P1)
- API 增加与 DSH 自身
/api一致的信任围栏:Host 必须为 loopback/受信主机(可用DSH_SKILLS_MANAGER_TRUSTED_HOSTS扩展)、拒绝sec-fetch-site: cross-site、Origin 必须同源、写请求必须是application/json、请求体上限 1 MB。 - 原子写(临时文件 + rename),写前旧内容备份到
<root>/.backups/;删除改为移入<root>/.trash/,不再永久删除。 - 保存与策略切换支持
expectedMtimeMs,编辑器打开期间文件被外部修改会返回 409 而不是静默覆盖。 - 单个技能读取失败降级为卡片上的 problem,不再让整个列表 500。
正确性与体验(P2)
- 符号链接 / junction 技能可被发现(与官方 provider 行为一致);flat 技能保存不再产生重复条目。
- 客户端:保存后自动回填预览、未保存修改确认、保存/删除成功提示、busy 状态防重复点击、错误横幅不再双前缀。
- 可访问性:label 关联、
role=alert/aria-live、键盘可达开关、窄屏响应式。 - 文案改走
ctx.locale(zh/en字典),导航 label 函数化,语言切换会刷新。 - 新增
node:test测试 18 项,覆盖解析往返、鉴权、体积上限、改名冲突、mtime 冲突、.trash、路径穿越等。
安装 / 更新
dsh plugin --profile web add github:daha1216/dsh-skills-manager宿主 index.js 改动需重启 DSH 桌面端生效;设置页客户端改动刷新页面即可。