dsh-vscode-mode 0.15.5 → 0.15.6

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/README.md CHANGED
@@ -465,13 +465,13 @@ profile 请替换为实际目标,不要把示例目录当成当前运行 profi
465
465
 
466
466
  ```bash
467
467
  # ① Git 安装(clone + prepare 构建;推荐打固定 tag)
468
- dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.15.5
468
+ dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.15.6
469
469
 
470
470
  # ② npm 注册表(发布到 npm 后)
471
- dsh plugin --profile web add dsh-vscode-mode@0.15.5
471
+ dsh plugin --profile web add dsh-vscode-mode@0.15.6
472
472
 
473
473
  # ③ GitHub Release tgz 直装(Release asset 可用后)
474
- dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.15.5/dsh-vscode-mode-0.15.5.tgz
474
+ dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.15.6/dsh-vscode-mode-0.15.6.tgz
475
475
  ```
476
476
 
477
477
  > **DSH 版本政策(0.14.10 起)**:六项 DSH peer 统一声明为 `*`,不再维护逐版
@@ -809,6 +809,8 @@ Keep All / Undo All 却是亮的。修复:单文件 Keep / Undo 覆盖冲突
809
809
  完整变更见 [GitHub Releases](https://github.com/Lenonss/DSH_VsCodeMode/releases)。
810
810
  近期关键版本:
811
811
 
812
+ - **v0.15.6**:**统一 SVN 项目更新入口**——资源管理器顶部 ↓ 与 SVN 变更页全局 ↓ 均打开插件自带 SVN 更新窗口,目标为当前项目根目录;非 SVN、能力未知或 CLI 不可用时不显示虚假的 SVN 读取提示。保留只读远端检查与本地刷新;本次真实 GUI 未验证,用户已接受此发布缺口,不自动安装或重启,详见 [0.15.6 发布说明](docs/release-0.15.6.md)。
813
+
812
814
  - **v0.15.5**:**浮窗性能与客户端适配**——拖动/缩放改为逐帧直写几何、结束单次提交,多窗口共享视口监听;SVN 日志行表 memo 与选中集优化,冲突状态读取按批 4 并发。LSP 去抖发送前惰性读取全文,隐藏页面心跳目标周期降为 15 秒;兼容性摘要按版本、安装事实与用户选择显示适用诊断,补充搜索刷新回归。保留 0.15.4 全部功能;本次真实 GUI 未重测,用户已接受此发布缺口,未安装/重启当前实例,详见 [0.15.5 发布说明](docs/release-0.15.5.md)。
813
815
 
814
816
  - **v0.15.4**:**SVN 非模态浮窗与独立文件对比**——更新、日志、统计、补丁、目录对比及智能整理采用与文件编辑相同的页面内浮窗,支持移动、调整尺寸、点击置顶与后台 DSH 交互。文件对比不再占据主编辑区,保留二进制/编码提示和来源任务返回逻辑;确认类弹窗保持模态。真实 GUI 交互尚未验收,用户已接受此发布缺口;资源管理器“目录不存在”原因未定位,本版不宣称修复该提示。
package/lib/client.js CHANGED
@@ -32155,7 +32155,7 @@ window.__ModuleLoader__.load({
32155
32155
  ...remote,
32156
32156
  local: snapshot?.view.marks ?? null,
32157
32157
  remote: snapshot ? remote.remote : null,
32158
- message: localMessage(snapshot?.view) + (remote.message ? ";" + remote.message : ""),
32158
+ message: ready ? localMessage(snapshot?.view) + (remote.message ? ";" + remote.message : "") : "",
32159
32159
  canCheck: ready && snapshot !== null,
32160
32160
  refreshLocal
32161
32161
  };
@@ -32709,6 +32709,11 @@ window.__ModuleLoader__.load({
32709
32709
  separator: item.separator,
32710
32710
  onClick: () => item.run(menu.target, ctx)
32711
32711
  })) : [];
32712
+ /** @private @author ddj 2026年10月15号 Open the existing update window for the current project root. */
32713
+ function updateProject() {
32714
+ ctx?.openSvnUpdate?.("");
32715
+ }
32716
+ const updateHint = !ctx?.svn?.svnCli ? "SVN CLI 不可用" : !ctx?.openSvnUpdate ? "SVN 更新窗口不可用" : "更新项目(打开 SVN 更新窗口)";
32712
32717
  const errorList = Object.entries(errors);
32713
32718
  const errorText = errorList.length ? errorList[0][1] : null;
32714
32719
  return react.default.createElement("div", {
@@ -32720,11 +32725,11 @@ window.__ModuleLoader__.load({
32720
32725
  }, rootName), react.default.createElement("span", { style: { flex: 1 } }), ctx?.svn?.managed ? react.default.createElement(_deepseek_ai_dsh_client_ui_primitives.Button, {
32721
32726
  variant: "toolbar",
32722
32727
  size: "sm",
32723
- disabled: !svn.canCheck || svn.busy,
32724
- title: "检查仓库更新(只读;不会执行 svn update)",
32725
- onClick: svn.checkRemote,
32726
- "aria-label": "检查仓库更新"
32727
- }, svn.busy ? "…" : "↓") : null, react.default.createElement("button", {
32728
+ disabled: !ctx.svn.svnCli || !ctx.openSvnUpdate,
32729
+ title: updateHint,
32730
+ onClick: updateProject,
32731
+ "aria-label": "更新项目"
32732
+ }, "↓") : null, react.default.createElement("button", {
32728
32733
  className: "edrv-side-btn",
32729
32734
  title: "刷新目录树",
32730
32735
  onClick: () => emitRefresh({
@@ -35190,6 +35195,11 @@ window.__ModuleLoader__.load({
35190
35195
  revert: onRevert
35191
35196
  })
35192
35197
  });
35198
+ /** @private @author ddj 2026年10月15号 Open the shared update window independently of selection and local changes. */
35199
+ function updateProject() {
35200
+ ctxRef.current?.openSvnUpdate?.("");
35201
+ }
35202
+ const updateHint = !managed ? "SVN CLI 或工作副本不可用" : !ctx?.openSvnUpdate ? "SVN 更新窗口不可用" : "更新项目(打开 SVN 更新窗口)";
35193
35203
  const rootName = ctx?.svn?.wcRoot ? String(ctx.svn.wcRoot).split(/[\\/]/).pop() || ctx.svn.wcRoot : "";
35194
35204
  const remoteEl = remote === null ? null : react.default.createElement("div", { className: "edrv-svn-hintbar" + (remote.failed ? " edrv-svn-hintbar-warn" : "") }, react.default.createElement("span", { style: { flex: 1 } }, remote.failed ? "远端检查失败(网络不可达或超时;可用 ⟳ 或「检查远端」重试)" : remote.outdated.length ? "远端有 " + remote.outdated.length + " 个更新(against r" + (remote.againstRev ?? "?") + "),其中本地已改 " + remote.outdated.filter((item) => item.path && versionedPathSet.has(item.path)).length + " 个;更新前请先提交或还原" : "远端无更新(against r" + (remote.againstRev ?? "?") + ")"), react.default.createElement("button", {
35195
35205
  className: "edrv-svn-act",
@@ -35225,6 +35235,12 @@ window.__ModuleLoader__.load({
35225
35235
  className: "edrv-side-root",
35226
35236
  title: ctx?.svn?.wcRoot || ""
35227
35237
  }, rootName), react.default.createElement("span", { style: { flex: 1 } }), react.default.createElement("span", { className: "edrv-svn-head-icons" }, react.default.createElement("button", {
35238
+ className: "edrv-side-btn",
35239
+ title: updateHint,
35240
+ "aria-label": "更新项目",
35241
+ disabled: !managed || !ctx?.openSvnUpdate,
35242
+ onClick: updateProject
35243
+ }, "↓"), react.default.createElement("button", {
35228
35244
  className: "edrv-side-btn",
35229
35245
  title: "检查远端更新(svn status -u;约数秒,离线自动降级)",
35230
35246
  onClick: checkRemote