Skip to content

Releases: kouzerror/dsh-retry

dsh-retry v0.3.1

Choose a tag to compare

@kouzerror kouzerror released this 28 Oct 13:44

dsh-retry v0.3.1

Bug fix on top of v0.3.0: read the live app.asar statistics through Electron's original-fs (node:fs reports *.asar as a directory, size 0), so the install helper's freshness check sees the real archive size and version replaces the archive correctly.

Also surfaces staged.meta.size / mtimeMs in GET /dsh-retry/status.

Full Changelog: v0.3.0...v0.3.1

dsh-retry v0.3.0

Choose a tag to compare

@kouzerror kouzerror released this 28 Oct 13:40

dsh-retry v0.3.0

Rebuilt host implementation with the review findings from the audit.

Changed

  • Modular host: lib/asar.js, lib/patch.js, lib/desktop.js, lib/helper.js, lib/log.js, lib/index.js; no client bundle ships anymore.
  • Atomic archive swap: the helper copies the patched archive to the same volume, verifies its size, then renames it over app.asar with Move-Item -Force; failures restore the backup and relaunch the original app.
  • Freshness checks: the helper refuses to install a patch staged for an older asar (size / mtime mismatch), so a DSH self-update is never downgraded.
  • Process tree shutdown: restart uses taskkill /PID <pid> /T /F before relaunch, so the host and its children exit with the app.
  • Diagnosable status: /dsh-retry/status now reports writeAccess, installedArmed, staged.meta, plugin and desktop versions alongside patch state.
  • Safer routes: POST-only for side effects, same-origin check, 403 when the resources directory is not writable, 409 for concurrent restarts.
  • Structured logging: callable logger with ISO timestamps; rotating no longer leaves the plugin throwing at startup.
  • Tests + CI: 19 node:test cases (asar round-trip, patch idempotency, desktop/helper/args, status payload) and a GitHub Actions workflow on Node 22/24.

Install

  • DSH 插件市场条目正在提交中。
  • 本地:pnpm add file:C:\path\to\dsh-retry 或在 DSH 设置 → 插件中安装本仓库目录,然后正常退出一次 DSH,下次启动即可看到系统托盘与账户菜单中的「重启 DeepSeek Harness」。
  • 已安装旧版请先 remove_bundle dsh-retry 再安装,保证拿到新版 host。
  • 恢复原始应用:退出 DSH 后把 resources\app.asar.dsh-retry.bak 改名回 app.asar。

Full Changelog: v0.2.0...v0.3.0

dsh-retry v0.2.0

Choose a tag to compare

@kouzerror kouzerror released this 28 Oct 13:07

What changed in 0.2.0

  • Removed the sidebar footer bootstrap button; the plugin now exposes exactly two entries: the Windows tray menu item and the account popup menu item.
  • No bootstrap click needed anymore: on every unpatched start the plugin prepares the patched app.asar and arms a detached helper, which installs it when DSH exits normally. The next start shows both entries.
  • Account menu entry is now fully localized (EN/ZH) inside the patched bundle.
  • Compatible with DeepSeek Harness 0.2.1-rc.3 (Windows desktop).

Upgrade from 0.1.0

Install this version, then quit DeepSeek Harness normally once (tray -> Quit) and start it again; the patch is refreshed on exit. The sidebar button disappears immediately after the plugin update.

dsh-retry v0.1.0

Choose a tag to compare

@kouzerror kouzerror released this 28 Oct 13:00

dsh-retry v0.1.0

在 DSH 桌面端加入「重启 DeepSeek Harness」入口:

  • 系统托盘右键菜单(加载器补丁,位置与原生菜单一致)
  • 账户弹出菜单(加载器补丁,原生 Menu 项样式)
  • 侧栏底部按钮(插件自身,无需补丁即可用)

工作方式

  • 未打补丁时,点击重启会先构建补丁版 app.asar,由 WMI 脱离进程在应用退出后替换并重新拉起。
  • 已打补丁后,入口通过 resources/dsh-retry.restart 触发文件让主进程优雅重启。
  • 原 app.asar 自动备份为 app.asar.dsh-retry.bak。

注意

  • 该方案会修改 DSH 安装目录的 app.asar。DSH 升级会覆盖补丁,升级后首次点击重启按钮可重新打补丁(需再重启一次)。
  • 仅在 Windows 桌面端(DeepSeek Harness.exe)生效。