Changelog

This page auto-syncs from GitHub Releases within 1 hour of each new release (local cache).

Loading release history...
v1.0.46 2026-10-24

中文 | English

<a id="cn-1.0.46"></a>

> 覆盖 1 个功能 commit + 站点/依赖同步,上一版本是 v1.0.45

新增功能

  • 技能中心插件(dsh-skill-center):给 WebUI 补上官方缺失的技能管理入口,纯插件、零依赖、无构建步骤。
  • 左侧栏「技能」入口:打开中央「技能中心」页面,按 官方技能(只读)/ 我的技能(可管理)/ 其他来源(只读)/ 已停用 分组展示,支持搜索与 SKILL.md 预览。
  • 聊天输入框「技能」选择器:可搜索的技能列表,点选后把 /name 插入草稿,发送时走原生显式调用链路(出现 Instructions 卡片),不用手打斜杠。
  • 个人技能管理:新建、编辑保存(原子写)、停用 / 启用、删除(进回收站)、在文件管理器中打开目录;个人技能存 runtime/dsh-home/skills,与官方技能物理隔离,不复制、不改官方文件。
  • ZIP 导入:支持一次导入多个技能(<name>/SKILL.md、根级 SKILL.md、单层包装目录、skills/<name>/SKILL.md、根级 <name>.md),兼容 TRAE / WorkBuddy 导出的压缩包(显式目录条目、./ 前缀),也可把 ZIP 直接拖到页面上导入。
  • 安全保障:拒绝 zip-slip(绝对路径 / ..)、ZIP 炸弹(压缩比 >200)、加密 ZIP、ZIP64、分卷与符号链接条目;单 SKILL.md ≤256KB、单 bundle ≤8MB / ≤200 文件;路由仅本机回环。
  • 同名冲突:默认失败;勾选「覆盖」后旧技能进回收站,同名官方技能需显式勾选「允许遮蔽」。

技术架构

  • 双端插件包(dsh.bundle.patch + dsh.client),与绿色版其他内置插件一致:
  • 宿主端 lib/index.js 注册 9 条 /__dsh/skill-center/* 路由,用 ctx.skills 读官方技能、用 Node fs 管理个人技能;
  • 客户端 lib/client.js 注册 3 个插槽:sidebar.panellist(左侧入口)、main(中央页面)、conversation.input.left(输入框按钮与选择器);
  • 客户端不依赖任何 @deepseek-ai/dsh-client-* 包,样式使用 --dsw-alias-* 主题 token;插槽缺失时只 console.warn 跳过,不影响其他插件。

内部改动(对外行为无变化)

  • 内置插件 dsh-memory / dsh-session-rewind 的 @deepseek-ai/* 依赖同步到宿主版本 0.2.1-rc.3(启动器自愈回写)。
  • 官网三语首页补充「技能中心」插件卡片,插件数量文案同步为 12 款。

版本更新

  • GREEN_VERSION: 1.0.45 → 1.0.46

升级建议

  • 绿色版覆盖安装即可;技能中心随包内置,安装环境后自动出现在左侧栏。
  • 个人技能保存在 runtime/dsh-home/skills,升级不会丢失;删除的技能在 runtime/dsh-home/skill-center/trash/ 可手动恢复。

<a id="en-1.0.46"></a>

> 1 feature commit plus site/dependency sync; previous version is v1.0.45

New Features

  • Skill Center plugin (dsh-skill-center): fills the gap left by the official WebUI — a proper skill management entry, as a pure plugin with zero dependencies and no build step.
  • Left-sidebar "Skills" entry: opens the central Skill Center page, grouped into Official skills (read-only) / My skills (manageable) / Other sources (read-only) / Disabled, with search and SKILL.md preview.
  • Composer "Skills" picker: searchable list of user-invocable skills; clicking inserts /name into the draft and sends through the native explicit-invocation path (Instructions card appears) — no need to type the slash manually.
  • Personal skill management: create, edit and save (atomic write), disable / enable, remove (to trash), open the folder in the file manager. Personal skills live in runtime/dsh-home/skills, physically separated from official skills — nothing is copied and no official file is modified.
  • ZIP import: import one or more skills at once (<name>/SKILL.md, root-level SKILL.md, single wrapper directory, skills/<name>/SKILL.md, root-level <name>.md), compatible with TRAE / WorkBuddy exports (explicit directory entries, ./ prefixes); you can also drop a ZIP onto the page.
  • Safety: rejects zip-slip (absolute paths / ..), ZIP bombs (compression ratio > 200), encrypted ZIPs, ZIP64, multi-volume and symlink entries; single SKILL.md ≤ 256KB, single bundle ≤ 8MB / ≤ 200 files; routes are loopback-only.
  • Name conflicts: fail by default; with "Overwrite" the old skill goes to trash, and shadowing an official skill requires explicitly checking "Allow shadowing".

Technical Architecture

  • Dual-end plugin package (dsh.bundle.patch + dsh.client), consistent with the other bundled plugins:
  • Host side lib/index.js registers 9 /__dsh/skill-center/* routes, reading official skills via ctx.skills and managing personal skills with Node fs;
  • Client side lib/client.js registers 3 slots: sidebar.panellist (left entry), main (central page), conversation.input.left (composer button and picker);
  • The client imports no @deepseek-ai/dsh-client-* packages and styles itself with --dsw-alias-* theme tokens; if a slot is missing it only logs console.warn and skips, without affecting other plugins.

Internal Changes (no user-visible behavior change)

  • Bundled plugins dsh-memory / dsh-session-rewind have their @deepseek-ai/* dependencies synced to the host version 0.2.1-rc.3 (launcher self-healing rewrite).
  • The trilingual site home page now includes a Skill Center plugin card, and the plugin-count copy is updated to 12.

Version Bump

  • GREEN_VERSION: 1.0.45 → 1.0.46

Upgrade Notes

  • Green edition: overwrite install is sufficient. Skill Center ships bundled and appears in the left sidebar after the environment is installed.
  • Personal skills are kept in runtime/dsh-home/skills and survive upgrades; removed skills can be recovered manually from runtime/dsh-home/skill-center/trash/.
v1.0.45 2026-10-17

中文 | English

<a id="cn-1.0.45"></a>

> 覆盖 3 个 commit(另含本次未提交修复)/ 上一版本 v1.0.44

新增功能

  • 升级前自动备份开关:常规设置新增「升级 DSH 前自动备份」(默认开启)。关闭后升级不再生成 runtime/backup 旧版备份,适合磁盘紧张或习惯手动备份的用户;关闭时升级确认框与完成提示会同步改为「未备份」文案。
  • 推荐插件新增 dsh-context:可在 WebUI 面板实时查看当前会话上下文的 token 构成与历史变化。

修复

  • 适配 dsh 0.2.1-rc.2,局域网模式重新可用:
  • 官方新版把 --host 0.0.0.0 的放开点改成两道 wildcard 校验(dsh-web-app 命令行 + dsh-host-webserver 配置),旧补丁失效会导致局域网模式直接启动失败。现已同时适配两道校验。
  • 官方新版不再自动把本机局域网 IP 加入 trustedHosts。启动器现在会在「受信任主机」留空时自动追加 --trusted-host;填写后仍只信任填写的地址。
  • 修复 Chrome 150+ 无端口 Origin 导致 /api 全 403 的补丁锚点,在新版 dsh 下继续生效。
  • 局域网模式认证地址缺少 token:新版 dsh 会先打印一行 dsh web: listening on 0.0.0.0 ...,旧解析逻辑误取该行,导致服务地址与局域网地址都不带 ?token=,打开即 401。现已改为从后往前查找带 token 的地址。
  • 桌面版无法跳转 DeepSeek 账号扫码页:WebView2 不支持 window.open,现统一转交系统浏览器打开,登录后可正常回调。
  • 用量统计余额:改为 API Key 优先、DeepSeek 账号登录兜底;只登录账号未配置 Key 时余额卡片也能显示。

优化

  • 「清理更新缓存」与「清理版本备份」文案区分,避免误删。
  • 内置插件 peer 依赖同步到 dsh 0.2.1-rc.2。

版本更新

  • GREEN_VERSION: 1.0.44 → 1.0.45

升级建议

  • 绿色版覆盖安装即可,设置与会话不受影响。
  • 局域网模式建议以管理员身份运行一次启动器,让防火墙规则生效;受信任主机留空 = 自动信任本机全部局域网 IP。
  • 如果仍停留在旧版 dsh 核心,本次改动同样兼容,不需要额外操作。

<a id="en-1.0.45"></a>

> Covers 3 commits (plus the uncommitted fixes in this release) / previous version v1.0.44

New Features

  • Auto-backup toggle before DSH upgrades: General Settings now has "Auto-backup before upgrading DSH" (enabled by default). When disabled, upgrades no longer create a runtime/backup copy — useful when disk space is tight or you prefer manual backups. The upgrade confirmation and completion dialogs switch to "no backup" wording accordingly.
  • New recommended plugin dsh-context: inspect the current session's context token composition and history in a WebUI panel.

Bug Fixes

  • DSH 0.2.1-rc.2 compatibility — LAN mode works again:
  • The official release moved the --host 0.0.0.0 allowance into two wildcard guards (CLI in dsh-web-app and config schema in dsh-host-webserver). The old patch no longer matched, so LAN mode failed to start. Both guards are now handled.
  • The official release no longer adds local LAN IPs to trustedHosts automatically. The launcher now appends --trusted-host for every local LAN IPv4 when the Trusted Hosts field is empty; when you fill it in, only the listed addresses are trusted.
  • Updated the Origin comparison patch anchor, so the Chrome 150+ port-less Origin issue no longer causes /api to return 403 on the new dsh.
  • Missing token in LAN mode URLs: the new dsh prints dsh web: listening on 0.0.0.0 ... before the real URL. The old parser picked that line, so both the service URL and LAN URLs had no ?token= and opened with 401. The parser now scans backwards for the URL that actually carries a token.
  • Desktop app could not open the DeepSeek account QR page: WebView2 does not support window.open; the launcher now hands these links to the system browser, and OAuth callback completes normally.
  • Usage-stats balance: API Key is tried first, with DeepSeek account login as fallback. The balance card now works when only an account is signed in and no API Key is configured.

Improvements

  • Clearer wording that distinguishes "Clear Update Cache" from "Clear Version Backups".
  • Bundled plugin peer dependencies synced to dsh 0.2.1-rc.2.

Version Bump

  • GREEN_VERSION: 1.0.44 → 1.0.45

Upgrade Notes

  • Green edition: overwrite install is sufficient; your settings and sessions are preserved.
  • LAN mode: run the launcher as administrator once so the firewall rule can be created. Leaving Trusted Hosts empty auto-trusts all local LAN IPs.
  • If you are still on an older dsh core, these changes remain compatible — no extra action needed.
v1.0.44 2026-09-29

中文 | English

<a id="cn-1.0.44"></a>

> 覆盖 8 个 commit / 26 个文件 / +2133 -98 行,上一版本是 v1.0.43

新增功能

  • 官方右侧栏增强插件(dsh-sidebar-extend):不再自建第二列侧栏外壳,改为注册官方右侧栏 tab 类型。以 extension 档接管官方内置文件树(支持任意路径上溯浏览 / 路径框跳转 / 右键 @引用·编辑·另存为·复制路径),并新增官方没有的「文本编辑」tab 类型。折叠 / 分栏 / 浮窗 / 全屏 / 按会话持久化布局全部由官方容器负责。默认启用。
  • 内置插件 launcher.defaultDisabled 标记:插件可在 package.json 声明 "launcher": { "defaultDisabled": true },绿色版第一次安装该插件时自动加入停用列表。已用于旧版侧栏(默认停用,插件管理界面手动启用)。

修复

  • 模态对话框持有 grab_set() 时最小化再点任务栏图标无反应:绿色版检查更新、安装环境等操作会弹出模态对话框;Windows 下这种对话框会吞掉 SC_RESTORE 消息。修复方案:弹框前先恢复主窗口 + 对话框统一登记显式提升显示层级 + 包装原生 messagebox 走同一恢复逻辑。
  • dsh-file-browser / dsh-media-background 浮动弹窗与官方右栏互相遮挡:改读官方 data-sidebar-right-* 属性计算避让空间,修复后弹窗能正确避开官方右栏容器。

技术架构

  • 侧栏插件重构:原 dsh-sidebar-lite 自建第二列侧栏(注入 document.body portal + #root 的 margin-right 硬让位),折叠/分栏/浮窗全靠自研,且与官方 header、下载按钮、分栏打架。重构后作为官方右侧栏(dsh-client-ui-sidebar-right)的 tab 类型提供者:① ctx.sidebarRightTabs.register({ kind: "files", priority: "extension" }) 接管文件树;② 注册 sidebar.right.pane.tab 插槽注入正文。官方容器已内置浏览器、终端、预览 tab,不再重复实现。

版本更新

  • GREEN_VERSION: 1.0.43 → 1.0.44

升级建议

  • 绿色版覆盖安装即可;侧边栏插件为默认启用,旧版 dsh-sidebar-lite 已恢复但默认停用(需对比测试可在插件管理界面手动启用)。
  • 绿色版 zip 内含插件已自动同步到 DSH 0.2.0-rc.2 核心依赖。

<a id="en-1.0.44"></a>

> Covers 8 commits / 26 files / +2133 -98 lines, previous version v1.0.43

New Features

  • Official sidebar-right tab type plugin (dsh-sidebar-extend): Instead of self-building a second sidebar shell, this plugin registers as a tab type provider for the official right sidebar. It takes over the official file tree with priority: "extension" (free browsing anywhere / path box / right-click @reference, edit, save-as, copy path) and adds a new text-editing tab type that the official sidebar does not have. Fold, split, float, fullscreen, and per-session layout persistence are all handled by the official container. Enabled by default.
  • launcher.defaultDisabled flag for bundled plugins: Plugins can declare "launcher": { "defaultDisabled": true } in their package.json. When the green launcher installs the plugin for the first time, it automatically adds it to the disabled list. Used by the legacy sidebar plugin (disabled by default — manual enable via Plugin Manager).

Bug Fixes

  • Modal dialog with grab_set() does not restore after minimize + taskbar click: The launcher shows modal dialogs during update checks, environment installation, etc. On Windows these dialogs swallow SC_RESTORE messages, causing the main window to stay hidden forever when the user clicks the taskbar icon. Fixed by: (1) restoring the main window before showing any modal, (2) registering each dialog and explicitly raising it, (3) wrapping the native tkinter messagebox to go through the same restore path.
  • Floating popups from dsh-file-browser / dsh-media-background overlap the official right sidebar: Fixed by reading the official data-sidebar-right-* attributes for proper offset calculation.

Technical Architecture

  • Sidebar plugin refactor: The old dsh-sidebar-lite injected a second sidebar column (portal on document.body + #root margin-right hard shift), with self-built fold/split/float logic that always conflicted with the official header, download button, and split panels. Refactored as an official right-sidebar (dsh-client-ui-sidebar-right) tab type provider: ① ctx.sidebarRightTabs.register({ kind: "files", priority: "extension" }) takes over the file tree; ② registers to sidebar.right.pane.tab slot for content injection. The official sidebar already provides browser, terminal, and preview tabs — no need to reimplement.

Version Bump

  • GREEN_VERSION: 1.0.43 → 1.0.44

Upgrade Notes

  • Green edition: overwrite install is sufficient.
  • The new sidebar plugin is enabled by default. The legacy dsh-sidebar-lite is preserved but disabled — enable manually via Plugin Manager if you want to compare.
  • Bundled plugins auto-synced to DSH 0.2.0-rc.2 core dependencies in this release.
v1.0.43 2026-09-24

中文 | English

<a id="cn-1.0.43"></a>

> 覆盖 3 个 commit / 12 个文件 / +69 -264 行, 上一版本是 v1.0.42。

修复

  • 修正 dsh-rules README 的默认值错误(直接影响使用判断): 文档写 enabled: true(排查步骤也说"确认 enabled: true"),但代码默认是 false —— 规则会占 system prompt token,故默认关闭。照旧文档,用户会以为规则已生效、而实际没生效却查不出原因。已改为准确说明,并补上"在 WebUI 开关里打开"
  • 修正 dsh-session-import README 的接口名错误: 文档写的路由前缀是 session-import、守卫头是 X-DSH-Session-Import,代码实际是 session-transfer 前缀 + X-DSH-Session-Transfer: 1。按旧文档做二次开发或排查会直接 404 / 403
  • 修正 dsh-memory README 的多处不符: ① 文档说"每次请求前自动注入最近 4 条"、"autoRecall: true" —— 代码实际默认 false、条数 6;② 文档说注册 5 个路由 —— 实际 6 个(补上 /__dsh/memory/config);③ WebUI 的三个开关(自动记录 / 自动注入 / 跨会话加载)文档未提及;④ 配置块补上 v3.1 / v4 新增字段(autoRemember、crossSessionRecall、assistantMessage、toolResult、useSummarize)

内部改动(无功能变化)

  • 清理 7 处零引用死代码(共 250 行):dsh-file-browser 与 dsh-sidebar-lite 里「@ 文件引用」功能的旧版兼容实现(insertReferenceIntoInputCompat、formatMention 等)—— 该功能现已迁移到官方 slash/input-insert-reference 事件管线,旧兼容函数废弃但一直没删;另有 dsh-usage-stats 里一个未被调用的解码函数
  • 其余 7 份插件 README 已逐份核对(路由表、配置默认值、工具清单、tools/ 脚本),与代码一致
  • _heal_after_core_upgrade 的 docstring 异常语义描述改为与代码一致(原表述偏乐观,会误导维护者)

版本更新

  • GREEN_VERSION: 1.0.42 → 1.0.43

升级建议

  • 绿色版覆盖安装即可
  • 如果你在用 dsh-rules(用户规则注入):请到「设置 → 规则」确认开关是否已打开 —— 它默认是关闭的,若此前照文档以为"已生效",实际并未注入

<a id="en-1.0.43"></a>

> Covers 3 commits / 12 files / +69 -264 lines, previous version is v1.0.42.

Bug Fixes

  • Fixed a wrong default in dsh-rules README (directly affects usage judgment): the doc said enabled: true (the troubleshooting steps also said "confirm enabled: true"), but the code default is false — rules consume system prompt tokens, so they are off by default. Following the old doc, users would assume their rules were active when they actually were not, with no clue why. Now accurately documented, with a note to enable it via the WebUI switch
  • Fixed wrong interface names in dsh-session-import README: the doc listed the route prefix session-import and guard header X-DSH-Session-Import, while the code actually uses the session-transfer prefix + X-DSH-Session-Transfer: 1. Following the old doc would result in 404 / 403
  • Fixed several mismatches in dsh-memory README: ① the doc said "auto-injects the latest 4 memories before each request" and autoRecall: true — the code default is false with limit 6; ② the doc said 5 routes were registered — actually 6 (added /__dsh/memory/config); ③ the WebUI's three switches (auto-record / auto-inject / cross-session) were undocumented; ④ the config block now includes the v3.1 / v4 fields (autoRemember, crossSessionRecall, assistantMessage, toolResult, useSummarize)

Internal Changes (no behavior change)

  • Removed 7 dead functions (250 lines) that were never called: the legacy compatibility implementations of the "@ file reference" feature in dsh-file-browser and dsh-sidebar-lite (insertReferenceIntoInputCompat, formatMention, and friends) — the feature now goes through the official slash/input-insert-reference event pipeline, but the old helpers had been left behind; plus one unused decoder in dsh-usage-stats
  • The other 7 plugin READMEs were verified one by one (route tables, config defaults, tool lists, tools/ scripts) and match the code
  • The _heal_after_core_upgrade docstring's exception semantics were corrected to match the code (the old wording was overly optimistic and could mislead maintainers)

Version Bump

  • GREEN_VERSION: 1.0.42 → 1.0.43

Upgrade Notes

  • Green edition: overwrite install is sufficient
  • If you use dsh-rules (user-rule injection): please check whether the switch is enabled under Settings → Rules — it is off by default, so if you assumed it was active based on the old doc, your rules were not being injected
v1.0.42 2026-09-23

中文 | English

<a id="cn-1.0.42"></a>

> 覆盖 4 个 commit / 12 个文件 / +171 -168 行, 上一版本是 v1.0.41。

新增功能

  • 支持 DSH v0.1.7 的语言设置新机制: 官方 v0.1.7 起废弃了 settings.yaml 的 locale.preference 字段, 改用 Cordis patch 机制。启动器 _apply_language_preference() 已改为写 profile/cordis.patch.yml 的 locale patch entry (id=locale, config.preference), 用 PyYAML 安全解析、保留文件原有前导注释、并与官方原生 patch 共存
  • 影响面: 旧版启动器配 DSH v0.1.7 时语言偏好不会生效, 本次一并解决
  • PyYAML 缺失兜底: 内置 Python 已装 PyYAML; EXE 打包版若漏收集, 现在只记日志不崩主流程

内部改动 (对外行为无变化)

  • 删除 76 行零引用死代码: _npm_view / _write_i18n_bridge_to_plugins / switch_src / _tray_log 及其 11 处调用等
  • 删除 3 条废弃 i18n 词条 (green_update.detected_title / detected_msg / failed_title) 与无效配置键 dsh_heap_limit_mb
  • 不再往程序根目录写 tray_menu.log: 该托盘诊断日志属调试期临时产物, 已整体移除 (此前每次托盘操作都会追加写该文件)
  • 内置插件 dsh-memory / dsh-session-rewind 的 @deepseek-ai/* 依赖同步到宿主版本 (0.1.7-rc.1)
  • 两个 exe 已重建

版本更新

  • GREEN_VERSION: 1.0.41 → 1.0.42

升级建议

  • 绿色版覆盖安装即可
  • 若你曾手动在 settings.yaml 里配过语言偏好, 升级 dsh 到 v0.1.7 后启动器会自动迁移到 cordis.patch.yml, 无需手动处理

<a id="en-1.0.42"></a>

> Covers 4 commits / 12 files / +171 -168 lines, previous version is v1.0.41.

New Features

  • Support for DSH v0.1.7's new language settings mechanism: DSH v0.1.7 deprecated the locale.preference field in settings.yaml in favor of the Cordis patch mechanism. The launcher's _apply_language_preference() now writes a locale patch entry (id=locale, config.preference) into profile/cordis.patch.yml, using safe PyYAML parsing, preserving the file's leading comments, and coexisting with official native patches
  • Impact: with the older launcher running DSH v0.1.7, the language preference would not take effect — resolved in this release
  • PyYAML-missing fallback: The bundled Python already ships PyYAML; if a packaged EXE fails to collect it, the launcher now only logs a warning instead of crashing the main flow

Internal Changes (no user-visible behavior change)

  • Removed 76 lines of zero-reference dead code: _npm_view / _write_i18n_bridge_to_plugins / switch_src / _tray_log and its 11 call sites, etc.
  • Removed 3 obsolete i18n entries (green_update.detected_title / detected_msg / failed_title) and the unused config key dsh_heap_limit_mb
  • No longer writes tray_menu.log into the program root: this tray diagnostic log was a temporary artifact from tray debugging and has been removed entirely (previously every tray action appended to it)
  • Bundled plugins dsh-memory / dsh-session-rewind have their @deepseek-ai/* dependencies synced to the host version (0.1.7-rc.1)
  • Both EXEs rebuilt

Version Bump

  • GREEN_VERSION: 1.0.41 → 1.0.42

Upgrade Notes

  • Green edition: overwrite install is sufficient
  • If you manually configured a language preference in settings.yaml, the launcher migrates it to cordis.patch.yml automatically after upgrading DSH to v0.1.7 — no manual action needed