@michengai/dsh-codex-ui 0.2.108 → 0.2.111

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
@@ -4,6 +4,33 @@
4
4
 
5
5
  This changelog records recent releases of DSH Codex UI and its one-click installer. Earlier changes remain available in the [Git history](https://github.com/MichengAI/dsh-codex-ui/commits/main).
6
6
 
7
+ ## suite-installer-v0.1.29 - 2026-09-08
8
+
9
+ - Updated the suite to Codex UI `0.2.111` and IM Connect `0.1.38`, keeping the channel sidebar compatible with the authenticated `/api/dsh-im-connect/channels` endpoint.
10
+ - Refreshed exact member versions from the official npm registry for reproducible one-click installation.
11
+
12
+ ## 0.2.111 - 2026-09-08
13
+
14
+ ### Fixed
15
+
16
+ - Updated the channel sidebar to use `/api/dsh-im-connect/channels`, matching IM Connect `0.1.38` after removal of the old management endpoint.
17
+
18
+ ## suite-installer-v0.1.28 - 2026-09-08
19
+
20
+ - Updated the bundled Codex UI to `0.2.110`, including standalone DSH Web plugin-update recovery guidance.
21
+ - Refreshed exact member versions from the official npm registry for reproducible one-click installation.
22
+
23
+ ## 0.2.110 - 2026-09-08
24
+
25
+ ### Fixed
26
+
27
+ - Distinguished standalone DSH Web installation failures from Desktop errors, directing users to stop and restart the current Web host instead of quitting DSH Desktop.
28
+ - Added localized recovery guidance for locked plugin files, pnpm store conflicts, and otherwise unrecognized DSH Web installation failures.
29
+
30
+ ### Tests
31
+
32
+ - Added regression coverage for Web-specific installer errors and their Simplified Chinese and English localization.
33
+
7
34
  ## suite-installer-v0.1.27 - 2026-09-07
8
35
 
9
36
  - Updated the bundled Codex UI to `0.2.108`, including group rename/delete menus and aligned group counts; refreshed exact member versions from the official npm registry.
@@ -4,6 +4,33 @@
4
4
 
5
5
  本日志记录 DSH Codex UI 及其一键安装器的最近发布;更早的变更可查看 [Git 提交历史](https://github.com/MichengAI/dsh-codex-ui/commits/main)。
6
6
 
7
+ ## suite-installer-v0.1.29 - 2026-09-08
8
+
9
+ - 将套件更新至 Codex UI `0.2.111` 和 IM Connect `0.1.38`,保证频道侧栏兼容已认证的 `/api/dsh-im-connect/channels` 接口。
10
+ - 从官方 npm 刷新成员精确版本,保证一键安装可复现。
11
+
12
+ ## 0.2.111 - 2026-09-08
13
+
14
+ ### 修复
15
+
16
+ - 频道侧栏改用 `/api/dsh-im-connect/channels`,与删除旧管理地址后的 IM Connect `0.1.38` 保持一致。
17
+
18
+ ## suite-installer-v0.1.28 - 2026-09-08
19
+
20
+ - 将套件中的 Codex UI 更新至 `0.2.110`,包含独立 DSH Web 的插件更新恢复指引。
21
+ - 从官方 npm 刷新成员精确版本,保证一键安装可复现。
22
+
23
+ ## 0.2.110 - 2026-09-08
24
+
25
+ ### 修复
26
+
27
+ - 区分独立 DSH Web 与 Desktop 的插件安装失败:Web 环境将提示停止并重启当前 Web 宿主,不再错误要求退出 DSH Desktop。
28
+ - 为被占用的插件文件、pnpm 仓库不一致和未识别的 DSH Web 安装失败提供本地化恢复指引。
29
+
30
+ ### 测试
31
+
32
+ - 新增 Web 专属安装错误及其简体中文、英文文案的回归覆盖。
33
+
7
34
  ## suite-installer-v0.1.27 - 2026-09-07
8
35
 
9
36
  - 将套件中的 Codex UI 更新至 `0.2.108`,包含分组重命名、删除菜单和数量对齐优化;从官方 npm 刷新并锁定成员版本。
package/lib/client.js CHANGED
@@ -270,7 +270,7 @@ window.__ModuleLoader__.load({
270
270
  }
271
271
  //#endregion
272
272
  //#region src/client/channel-api.ts
273
- const CHANNELS_ENDPOINT = "/dsh-im-connect/api/channels";
273
+ const CHANNELS_ENDPOINT = "/api/dsh-im-connect/channels";
274
274
  /** DSH 会话头不能写 origin=im,频道会话只靠 id 前缀。 */
275
275
  function isChannelSession(id) {
276
276
  return id.startsWith("im:");
@@ -1955,7 +1955,10 @@ header [data-dcu-title-folder] svg,header [data-dcu-title-more] svg{display:bloc
1955
1955
  };
1956
1956
  const INSTALL_ERROR_KEYS = [
1957
1957
  [/没有进入当前 Profile|did not enter this profile/i, "about.installUnchanged"],
1958
+ [/pnpm 仓库不一致.*停止当前 DSH Web|pnpm store do not match.*stop the current DSH Web/i, "about.installStoreMismatchWeb"],
1959
+ [/停止当前 DSH Web|stop the current DSH Web/i, "about.installExitWeb"],
1958
1960
  [/完全退出桌面端|无法覆盖正在运行的插件文件|running plugin files|quit DSH Desktop/i, "about.installExitDesktop"],
1961
+ [/DSH Web 终端输出|DSH Web terminal/i, "about.installWebFailed"],
1959
1962
  [/pnpm 仓库不一致|pnpm store do not match/i, "about.installStoreMismatch"],
1960
1963
  [/构建脚本策略|build-script policy/i, "about.installBuildPolicy"],
1961
1964
  [/找不到 pnpm|pnpm (?:is )?not (?:available|found)/i, "about.installPnpmMissing"],
@@ -6823,6 +6826,9 @@ html[data-dcu-official-turn-navigator-supported=true] .dcu-turn-navigator,html:h
6823
6826
  "about.installUnchanged": "安装命令已结束,但插件没有进入当前 Profile。请重试。",
6824
6827
  "about.installExitDesktop": "请先完全退出 DSH Desktop,再重新打开后更新。",
6825
6828
  "about.installStoreMismatch": "插件目录与 pnpm 仓库不一致。请完全退出 DSH Desktop 后再更新。",
6829
+ "about.installExitWeb": "无法覆盖正在运行的插件文件。请停止当前 DSH Web 后,在终端更新插件,再重新启动 DSH Web。",
6830
+ "about.installStoreMismatchWeb": "插件目录与 pnpm 仓库不一致。请停止当前 DSH Web 后重试;仍失败时重新安装该 Profile 的依赖。",
6831
+ "about.installWebFailed": "插件更新失败。请查看 DSH Web 终端输出后重试。",
6826
6832
  "about.installBuildPolicy": "插件依赖的 pnpm 构建脚本策略尚未确认,请更新 Profile 配置后重试。",
6827
6833
  "about.installPnpmMissing": "当前环境找不到 pnpm,请安装 pnpm 并重启 DSH 后重试。",
6828
6834
  "about.installTimeout": "插件安装超时,请检查网络后重试。",
@@ -7026,6 +7032,9 @@ html[data-dcu-official-turn-navigator-supported=true] .dcu-turn-navigator,html:h
7026
7032
  "about.installUnchanged": "The install command finished, but the plugin did not enter this profile. Try again.",
7027
7033
  "about.installExitDesktop": "Quit DSH Desktop completely, reopen it, and try the update again.",
7028
7034
  "about.installStoreMismatch": "The plugin directory and pnpm store do not match. Quit DSH Desktop completely and try again.",
7035
+ "about.installExitWeb": "Running plugin files cannot be replaced. Stop the current DSH Web host, update the plugin from a terminal, then restart DSH Web.",
7036
+ "about.installStoreMismatchWeb": "The plugin directory and pnpm store do not match. Stop the current DSH Web host and try again; if it persists, reinstall this Profile's dependencies.",
7037
+ "about.installWebFailed": "Plugin update failed. Check the DSH Web terminal output and try again.",
7029
7038
  "about.installBuildPolicy": "The pnpm build-script policy for this plugin is not configured. Update the Profile configuration and try again.",
7030
7039
  "about.installPnpmMissing": "pnpm is not available. Install pnpm, restart DSH, and try again.",
7031
7040
  "about.installTimeout": "Plugin installation timed out. Check the network and try again.",
package/lib/index.mjs CHANGED
@@ -515,13 +515,14 @@ async function waitUntilPluginMounted(packageName, version, runtime, timeoutMs =
515
515
  }
516
516
  throw pluginUnchangedError();
517
517
  }
518
- function pluginCommandError(stderr) {
518
+ function pluginCommandError(stderr, environmentKind = "desktop") {
519
519
  const detail = stderr.replace(/\s+/g, " ").trim();
520
- if (/EPERM|EBUSY|EACCES|unable to unlink|ERR_PNPM_LOCKED|Lock/i.test(detail)) return /* @__PURE__ */ new Error("无法覆盖正在运行的插件文件。请先完全退出桌面端,再重新打开后更新。");
521
- if (/UNEXPECTED_STORE|Unexpected store location/i.test(detail)) return /* @__PURE__ */ new Error("插件目录和 pnpm 仓库不一致。请完全退出桌面端后再更新。");
520
+ const isWeb = environmentKind === "cli";
521
+ if (/EPERM|EBUSY|EACCES|unable to unlink|ERR_PNPM_LOCKED|Lock/i.test(detail)) return /* @__PURE__ */ new Error(isWeb ? "无法覆盖正在运行的插件文件。请停止当前 DSH Web 后,在终端更新插件,再重新启动 DSH Web。" : "无法覆盖正在运行的插件文件。请先完全退出桌面端,再重新打开后更新。");
522
+ if (/UNEXPECTED_STORE|Unexpected store location/i.test(detail)) return /* @__PURE__ */ new Error(isWeb ? "插件目录与 pnpm 仓库不一致。请停止当前 DSH Web 后重试;仍失败时重新安装该 Profile 的依赖。" : "插件目录和 pnpm 仓库不一致。请完全退出桌面端后再更新。");
522
523
  if (/ERR_PNPM_IGNORED_BUILDS|Ignored build scripts/i.test(detail)) return /* @__PURE__ */ new Error("插件依赖的 pnpm 构建脚本策略尚未确认。请更新 Profile 的 allowBuilds 配置后重试。");
523
524
  if (/pnpm not found|未找到 pnpm/i.test(detail)) return /* @__PURE__ */ new Error("当前环境找不到 pnpm。请确认已安装 pnpm 后重启 DSH 再试。");
524
- return /* @__PURE__ */ new Error("无法在应用运行时更新插件。请先完全退出桌面端,再重新打开后更新。");
525
+ return /* @__PURE__ */ new Error(isWeb ? "插件更新失败。请查看 DSH Web 终端输出后重试。" : "无法在应用运行时更新插件。请先完全退出桌面端,再重新打开后更新。");
525
526
  }
526
527
  /**
527
528
  * 图形界面或桌面启动往往没有 shell PATH。把 pnpm 常见安装目录补进去,
@@ -606,7 +607,7 @@ function disposeDependencyInstaller() {
606
607
  for (const child of activePluginChildren) terminatePluginChild(child);
607
608
  for (const handle of activeDesktopPluginHandles) handle.cancel();
608
609
  }
609
- function monitorPluginChild(child, timeoutMs = PLUGIN_INSTALL_TIMEOUT_MS) {
610
+ function monitorPluginChild(child, timeoutMs = PLUGIN_INSTALL_TIMEOUT_MS, environmentKind = "cli") {
610
611
  return new Promise((resolvePromise, reject) => {
611
612
  activePluginChildren.add(child);
612
613
  let output = "";
@@ -629,7 +630,7 @@ function monitorPluginChild(child, timeoutMs = PLUGIN_INSTALL_TIMEOUT_MS) {
629
630
  finish(/* @__PURE__ */ new Error("无法启动 DSH 插件安装命令。请确认 Node.js 与 pnpm 可用后重试。"));
630
631
  });
631
632
  child.once("exit", (code) => {
632
- finish(code === 0 ? void 0 : pluginCommandError(output));
633
+ finish(code === 0 ? void 0 : pluginCommandError(output, environmentKind));
633
634
  });
634
635
  const timeout = setTimeout(() => {
635
636
  terminatePluginChild(child);
@@ -666,9 +667,9 @@ function monitorDesktopPlugin(handle, timeoutMs = PLUGIN_INSTALL_TIMEOUT_MS) {
666
667
  finish(/* @__PURE__ */ new Error("无法读取 DSH Desktop 插件安装输出。"));
667
668
  });
668
669
  handle.done.then((outcome) => {
669
- finish(outcome.exitCode === 0 && outcome.signal === null ? void 0 : pluginCommandError(output));
670
+ finish(outcome.exitCode === 0 && outcome.signal === null ? void 0 : pluginCommandError(output, "desktop"));
670
671
  }, () => {
671
- finish(pluginCommandError(output));
672
+ finish(pluginCommandError(output, "desktop"));
672
673
  });
673
674
  const timeout = setTimeout(() => {
674
675
  handle.cancel();
@@ -697,7 +698,7 @@ function runDshPlugin(args, runtime = resolveDependencyRuntime(), timeoutMs = PL
697
698
  "pipe",
698
699
  "pipe"
699
700
  ]
700
- }), timeoutMs);
701
+ }), timeoutMs, runtime.environmentKind);
701
702
  }
702
703
  /** 并发安装互斥:pnpm 锁文件竞争会触发 EPERM/EBUSY,同一时间只允许一个安装进程。 */
703
704
  let installing = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michengai/dsh-codex-ui",
3
- "version": "0.2.108",
3
+ "version": "0.2.111",
4
4
  "description": "以 Codex 风格重构 DSH Web 侧栏的独立客户端插件",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {