dsh-server-connector 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,60 @@
1
1
  # 更新日志
2
2
 
3
+ ## 0.2.2 — 2026-11-06
4
+
5
+ ### 修复
6
+
7
+ - **启用/禁用开关显示成白块**。关闭态用的是 `--dsw-alias-border-l4`(16% 黑),
8
+ 在浅色面板上几乎看不见;宽度 34px、滑块只走 14px,整体读起来像个空矩形而不是开关。
9
+
10
+ 现已与 DSH 自带的 `ui-primitives` 开关完全对齐:36×20、16px 白色滑块、
11
+ 关闭态 `rgba(0,0,0,.12)`、开启态 `--dsw-alias-label-primary`。
12
+ 在运行中的桌面端逐字段比对过两个控件的计算样式,结果一致。
13
+
14
+ - 样式测试新增断言,锁定开关依赖的 token 名,防止再次写回宿主不会渲染的 token。
15
+
16
+ ---
17
+
18
+ ## 0.2.1 — 2026-11-06
19
+
20
+ ### 修复(严重:导致 DSH 无法启动)
21
+
22
+ - **密码凭证引用格式非法,会让整个 DSH 启动失败**。此前密码认证生成
23
+ `server-connector:<id>:password`,其中含冒号与连字符,而
24
+ `@deepseek-ai/dsh-credentials` 要求所有凭证引用匹配 `/^[A-Za-z_][A-Za-z0-9_]*$/`。
25
+ 这条非法引用一旦写入 `servers.json`,下次启动时 `credentials` 插件解析失败;
26
+ 由于它是必需插件,整个 Host 起不来——**而且禁用本插件也没用,因为坏值已经在磁盘上**。
27
+
28
+ 三处修复,缺一不可:
29
+ - 改为生成 `DSH_SERVER_CONNECTOR_<ID>_PASSWORD`,并校验调用方传入的引用,
30
+ 使本插件再也无法写入非法值;
31
+ - 加载时迁移**旧格式**,让已经落盘的记录继续可用,而不是把「Host 崩溃」换成
32
+ 「插件加载失败」;
33
+ - 迁移后**回写文件**,否则之后复制的文件副本仍带着非法值。已经合法的文件不会被重写。
34
+
35
+ 只迁移本插件曾经写出的那一种格式;其他非法引用仍然拒绝,因为静默改写可能让记录
36
+ 指向另一个密钥。
37
+
38
+ - 同时修正 README 与设计文档中展示的引用格式(它们此前在教读者写出非法值)。
39
+
40
+ ### 升级说明
41
+
42
+ 升级到 0.2.1 后**无需手动改文件**:插件加载时会自动把旧引用迁移成合法值并回写。
43
+
44
+ 若 DSH 当前因该问题无法启动,先做下面任一操作再启动:
45
+
46
+ - 编辑 `~/.dsh/server-connector/servers.json`,把
47
+ `"server-connector:srv-01:password"` 改成 `"DSH_SERVER_CONNECTOR_SRV_01_PASSWORD"`
48
+ (`srv-02` 同理);或
49
+ - 直接删除该文件中 `auth.kind` 为 `password` 的服务器记录。
50
+
51
+ 然后安装 0.2.1。
52
+
53
+ > 迁移只改引用名,**不搬运密钥值**。升级后原密码可能需要重新输入一次
54
+ > (取决于该密钥此前是否成功写入 `~/.dsh/.credentials.yaml`)。
55
+
56
+ ---
57
+
3
58
  ## 0.2.0 — 2026-11-05
4
59
 
5
60
  ### 新增
package/README.md CHANGED
@@ -506,7 +506,8 @@ $DSH_HOME/server-connector/
506
506
 
507
507
  ### 凭据
508
508
 
509
- - 密码交给 DSH 凭据服务(`$DSH_HOME/.credentials.yaml`),`servers.json` 只存引用,如 `server-connector:srv-03:password`;
509
+ - 密码交给 DSH 凭据服务(`$DSH_HOME/.credentials.yaml`),`servers.json` 只存引用,如 `DSH_SERVER_CONNECTOR_SRV_03_PASSWORD`
510
+ (必须是 POSIX 标识符,不能含冒号或连字符);
510
511
  - 面板只显示「已设置 / 未设置」,不会回显明文;接口也不会返回密钥;
511
512
  - 没有凭据服务时,密码认证会报 `NO_CREDENTIAL`,改用私钥认证即可;
512
513
  - 私钥认证只记录**路径**,密钥内容由 `ssh2` 自己读,插件不缓存。