Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 04:46
· 125 commits to master since this release
f3d72b0

升级须知

  • plugins config set 为插件新建补丁时,把 DSH 当前为该插件组合出的全部配置抄进清单,之后的 config set 只改各自的键;DSH 还没有该插件时照旧只写这个键并在 stderr 提示。已有的只含个别键的补丁不会自动补全:要找回丢失的默认值,先 config unset 去掉这些键、apply,再重新 config set。
  • source clone <本机路径> 把路径记为 file:// 地址;install 本地路径时要求目录存在,带 #<ref> 的本地路径被拒绝(退出码 3)。
  • 没有清单时 status 只输出缺少清单的错误(--json 时 stdout 为空)。

修复

  • 没有清单时 status 只报缺少清单(与 plan 相同,--json 时是 stderr 上的 JSON 错误),不再同时输出一份 degraded 状态报告;0.8.0 只改了退出码。
  • 插件的受管配置块已经清掉后,再次 purge 输出「Nothing to purge」、退出码 0,不再每次把整个 cordis.patch.yml 复制进 trash。
  • 输出接到提前关闭的管道(如 dshenv --help | head -1)时不再以 EPIPE 调用栈崩溃;命令照常执行完,之后的输出被丢弃。
  • source sync 不带目录也不带 --profile 时作用于当前目录,与 README 及 source show 一致;此前报「requires or --profile」。
  • source clone <本机路径> --profile 把路径记为 file:// 地址;此前记成普通路径,apply 时 pnpm 把它当本地目录链接,失败并在 Profile 的 package.json 里留下名字带 #<commit> 的坏依赖。
  • install 本地路径时检查目录存在(退出码 3),file:// 地址按其路径解析,带 #<ref> 的本地路径被拒绝并提示 git+file://;此前 file:///repo#<sha> 会登记成别名 repo#<sha>、路径不存在的本地插件。
  • 有生效 overlay 时,update --layer base、plugins config set/unset --layer base 写的值被 overlay 覆盖时在 stderr 提示(与 enable/disable 相同);此前静默写入,这台机器上实际没变。
  • remote add --replace 与 remote sync --discard-local-changes 的预览末尾给出的接受命令保留这个参数;此前照提示执行会以退出码 3 失败。
  • remote add 遇到同名本机 skill 时提示「then run remote add again」;此前提示「sync again」。
  • plugins config set 为插件新建补丁时,先把 DSH 当前为该插件组合出的全部配置(dsh --dump-config)抄进补丁再改这个键,与 tools config 相同;此前补丁只含这个键,而 DSH 用它整体替换插件配置,apply 后插件的其他默认值(如 agent-teams 的 memberProvider)全部丢失。DSH 还没有这个插件时照旧只写这个键,并在 stderr 说明。
  • 插件的受管配置块把 { __jsExpr } 写回 !!js 表达式(与 Profile 块相同);此前会写成字面的 __jsExpr 映射。