Skip to content

GitMate 1.10.2

Choose a tag to compare

@alanhaskey alanhaskey released this 14 Oct 01:38
· 8 commits to main since this release

这一版不是修那个 Windows 问题的 —— 那台机器上的根因(DSH 自己跑在 Low 完整性级别,什么都写不了)与插件无关,下面是核对结果和一个小改进。

先核对两件事

1. v1.10.1 标签是正确的。 它指向 96665ca9d9ad,该提交树里的 package.json 版本正是 1.10.1。所以 …#v1.10.1 拉到的是对的版本。

2. 插件在安装和激活时什么都不写、也不跑 git。 我查过 apply():没有 writeFileSync、没有 mkdirSync、没有任何 git 调用——它只注册工具和路由。dependencies: null,scripts 只有 test。所以"装上插件"这个动作本身不可能触发沙箱、也不可能导致进程变成 Low 完整性。

这一版改了什么

有一件事确实是我的:面板每 5 秒探测一次仓库,而每次探测都会重走一遍沙箱启动,每一次都以同样的方式失败。

而那台机器上的证据显示,失败的那次 provisioning 会让整次运行的写权限退化——也就是说反复触发不只是浪费,可能还在加重问题。

现在 status 带回 unavailable 时轮询就停下,错误卡片上的「重试」是唯一的再次尝试入口:由你决定什么时候重试,而不是面板每 5 秒替你决定一次。

(用了一个 ref 存这个标记,避免为了读它而把 interval 拆掉重建——那会让每次状态更新都重置计时器。)

验证

node test/smoke.mjs     # 585 项断言

新增 3 项:轮询确实在 unavailable 时返回、错误卡片带重试按钮、运行指示仍然存在。

升级路径(在 Low 完整性修好之前装不上任何东西)

dsh plugin add 连 profile 里的锁文件都创建不了(package.json.lock → EPERM),所以它失败在 pnpm 启动之前,与插件内容无关。顺序是:

  1. 彻底退出 DSH Desktop(含托盘图标,任务管理器确认没有残留进程),然后从开始菜单正常启动——不要从任何 agent/沙箱的终端里启动它;
  2. 在 DSH 里跑 whoami /groups,确认是 Medium Mandatory Level(现在是 Low);
  3. 在普通 PowerShell 里(不要在 DSH 内部)执行升级;
  4. 完整重启 DSH,再刷新页面。

第 1 步是前提:它没修好之前,装什么都装不上,面板的写操作也仍然会失败。