Skip to content

Releases

v0.6.4 - 中文默认说明与插件描述

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 15:47

默认 README 改为中文,英文版保留在 README.en.md。插件描述和仓库简介改为中文,安装说明支持直接输入 npm 包名。

本次仅更新文档和包元数据,运行代码与 0.6.3 相同。

在 DSH 的「插件 → 添加插件」中输入:

dsh-tiered-plugin-menu@0.6.4

也可以下载下方已构建的 .tgz 安装包。

验证:重新构建和打包通过;5 个运行产物逐文件与 0.6.3 一致;安装包包含中文默认 README、英文 README 和正确的 dsh.bundle 声明。

English: The default README and package description are now Chinese. English documentation remains available in README.en.md. This release updates documentation and package metadata only; runtime files are identical to 0.6.3.

v0.6.3 - Fix isolated projection reads

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 10:26

Fixes empty projection data when experimental plugin isolation is enabled. Live and persisted reads now translate registered names consistently, and conversation panels bind to each plugin's own projections. Native checkpoint recovery remains available. The implementation is generic; DSH and third-party plugin code are unchanged.

修复开启实验性插件隔离后,插件历史查询和会话面板读取不到投影数据的问题。实时读取、持久化缓存和前端绑定使用同一份注册名称映射,并保留宿主的缓存恢复能力。此次为通用修复,没有按插件名适配。

Validation / 验证:

  • 45 local tests, type check and build passed.
  • Installed Windows runtime, profiles outside the repository: seven persisted sessions activated; statistics available with isolation on/off; two menu restart cycles passed.
  • New regressions reproduced failures before the fix: same-name projections across plugins, cache/checkpoint reads, and conversation panel reads.
  • Desktop UI automation and the 26-plugin VM matrix were not rerun for this patch.

安装后请完整退出并重开 DSH。Restart DSH after installing.

Download the prebuilt .tgz below. MIT license, commercial use permitted.

v0.6.2 — Fix installed-profile dependency loading

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 09:55

Fix isolated plugin imports in standalone DSH installations.

The private loader now uses DSH's package resolution with the original importing file. This fixes missing SDK dependencies, fiber state 4 when re-enabling the menu, and persisted sessions disappearing from the live sidebar when their scoped plugin fails to activate. No DSH or third-party plugin changes are required. Existing session logs do not need rewriting.

Verified outside the development repository using the installed Windows desktop runtime: six persisted sessions activate, two menu off/on cycles succeed, and two session-specific Temporary Messages configurations survive the cycles, with experimental isolation both on and off. All 43 local tests pass, including a new runtime-only dependency regression. The 26-package VM matrix was not rerun for this patch.

Install the attached tarball, then fully restart DSH.


修复真实安装环境中的隔离插件依赖加载:找不到 SDK 包、重新开启菜单时报 fiber state 4,以及下级插件启动失败导致旧会话从实时侧栏消失。

根因是隔离加载器绕过 DSH 的包解析;此前仓库内的测试借用了开发依赖,未能发现。现已在仓库外使用实际 Windows 桌面运行时复现并修复。隔离开关开、关两种状态下,六个会话恢复、两轮菜单开关和两个会话的独立临时消息配置均通过。43 项本地测试通过,新增了仓库外依赖解析回归用例。此次未重复运行 26 插件虚拟机矩阵。

安装附件后完整重启 DSH。无需改写历史日志,无需修改 DSH 或第三方插件。

v0.6.1 — Fix session restoration with plugin isolation

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 09:08

修复开启「插件隔离(实验性)」后,点击旧会话导致侧栏条目消失、标题变成 ID、输入框显示“会话不可用”的问题,也修复同一原因造成的冷启动卡住。

菜单此前把自身私有辅助服务误认为对外服务,并替换了 DSH 全局服务。现在按服务的真实隔离作用域识别导出,只为实际受管理的插件连接跨包依赖。没有修改 DSH 或外部插件,也没有按插件名称适配。

原会话文件在复现中未丢失或改变。安装 0.6.1 后重启 DSH,让会话服务重新加载即可。隔离开关仍默认关闭,升级保留已有设置。

验证:五个旧会话副本逐个恢复后全部保留且可用;43 项本地测试通过;离线虚拟机中 26 插件客户端混装、33 项下级隔离检查、32 项关闭隔离对照、5 项重名记忆工具检查通过。测试现将菜单作为真实安装包列入插件清单,补上了此前按文件路径加载所漏掉的条件。

Fixes disappearing session entries and unavailable input after opening stored sessions with experimental isolation enabled, plus a related cold-start hang. Private helper services are no longer treated as package exports or allowed to replace native host services.

The reproduced session files were intact. Update to 0.6.1 and restart DSH. Existing settings are preserved; isolation remains off by default.

Validation: five copied persisted sessions restored and retained; 43 local tests; offline VM with all 26 client packages, 33 isolated lower-scope checks, 32 switch-off controls and five conflicting-memory-tool checks. The corrected harness installs the menu as a real bundle rather than inserting it outside the package inventory. The 54-case model workflow matrix was not rerun for this patch.

See the cause and test report. MIT license; commercial use permitted.

v0.6.0 — Experimental plugin isolation / 实验性插件隔离

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 08:36

增加「插件隔离(实验性)」总开关,默认关闭,修改后重启 DSH 生效。复用现有分层实例的模块、目录和服务隔离,从客户端级开始给插件独立环境,允许同一会话内的同名工具分别提供参数和执行结果。

  • 修复实测暴露的依赖连接、路由前缀、冻结配置、远程设置预览、技能名称读取及卸载恢复问题。
  • 原版 26 插件启动通过;隔离混装 33/33、关闭隔离对照 32/32、功能组合 54/54、本地检查 42/42。两个原生 memory_search 冲突的记忆插件通过同会话实际调用。
  • 私有数据首次使用新目录;原目录保留,关闭隔离并重启后恢复使用。固定端口、外部进程与同名 Agent 预设不在此次覆盖范围内。

下载 .tgz 后从 DSH 插件页安装,或运行 dsh plugin --profile desktop add ./dsh-tiered-plugin-menu-0.6.0.tgz。

Adds an experimental plugin isolation switch, off by default, applied after restarting DSH. Client entries reuse the existing module, directory and service isolation mechanisms. Conflicting tool names can coexist in the same session with independent schemas and executors.

Fixes reproduced dependency routing, HTTP prefix, frozen-config, settings Remote, skill lookup and teardown problems. Validation: 26 original packages start; isolated mix 33/33, switch-off control 32/32, functional matrix 54/54, local checks 42/42. The two conflicting memory tools both execute in one Agent.

Private data starts fresh; original directories remain available when isolation is disabled and DSH restarted. Fixed ports, external processes and conflicting Agent preset IDs are outside this release's coverage. See the detailed test report for versions, test stages and limits.

Public source under MIT; commercial use is permitted.

v0.5.4 — Self-compatibility declaration / 自兼容性声明

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 07:55

Rename the plugin metadata declaration to dsh.tieredPluginMenu.selfCompatible. It describes whether independent instances of the same plugin can coexist with separate configuration and runtime state. The menu's labels, enable confirmation, metadata type and both READMEs now use self-compatibility terminology.

插件元数据字段改为 dsh.tieredPluginMenu.selfCompatible,表示同一插件的多个独立实例能否共存,并分别使用自己的配置和运行状态。界面分组、启用确认、元数据类型及双语 README 均更新为「自兼容性」。

{"dsh":{"tieredPluginMenu":{"selfCompatible":true}}}

The previous supportsChildInstances field is no longer read; plugin authors using it should rename it. false or an omitted field retains the unverified status and enable confirmation. This declaration does not claim compatibility with other plugins.

旧字段 supportsChildInstances 不再读取,声明过它的插件需同步改名。false 或未填写仍归入未验证分组,启用时确认。该声明不表示与其他插件互相兼容。

Validation: type checking, build and all 38 core tests pass. The release archive was checked for the new host lookup, client label and bilingual README.

验证:类型检查、构建及 38 项核心测试通过;安装包内的宿主识别逻辑、客户端文案与双语 README 已核对。

Install the .tgz through DSH's plugin page, or run dsh plugin --profile desktop add ./dsh-tiered-plugin-menu-0.5.4.tgz. Restart DSH when hot reload is disabled.

下载 .tgz 后在 DSH 插件页添加,或使用上述命令;未启用热重载时重启 DSH。

v0.5.3 — Separate-scope tool isolation / 同名工具隔离

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 07:45

Same-name tools can now coexist in different workspaces or sessions. Lower instances register their original tool definitions into DSH's native Agent scopes, preserving their parameter schemas, executors, renderers and admission conditions. Existing same-session conflicts retain native DSH behavior.

工具同名的插件现在可以分别在不同工作区或会话启用。下级实例使用 DSH 原生的 Agent 作用域注册,保留各自参数、执行函数、结果渲染及启用条件。同一会话内同时启用冲突插件时,仍按 DSH 原生行为处理。

  • Core tests: 38/38 on Windows and Linux; type checking and build pass.
  • Unmodified @fooxe/dsh-memory 0.13.10 + meow-memory 0.32.6: 6/6 scope/lifecycle checks in an offline, unprivileged VM.
  • Previous 25-package coexistence set: 32/32 concurrent checks.
  • No third-party source or DSH core changes; no package-name adapters.

Download the .tgz and add it through DSH's plugin page, or run dsh plugin --profile desktop add ./dsh-tiered-plugin-menu-0.5.3.tgz. Restart DSH when hot reload is disabled.

下载 .tgz 后在 DSH 插件页添加,或使用上述命令。未启用热重载时重启 DSH。测试范围和复现方法见 工具隔离说明。

v0.5.2 — Cross-plugin skill isolation

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 07:26

Fix cross-plugin collisions in skill registration.

  • Same-named providers share a host entry while keeping independent owners, callbacks and lifecycles. Runtime skills registered by different plugins can coexist in separate sessions.
  • Discovery filters by the current session. DSH resolves candidate priorities; callbacks receive their original candidate and locator. Disposing or failing one source leaves other visible sources available.
  • Both duplicate-registration regressions were reproduced on 0.5.1 before the fix. Type checking/build pass, Windows and Linux each pass 37/37 tests, and the offline 25-plugin concurrent regression passes 32/32 checks.
  • Implementation and test details. Prebuilt package included; MIT license.

修复不同插件注册同名技能时的冲突。

  • 同名提供器共用一个宿主入口,每个来源保留独立实例、回调和生命周期;不同插件的同名运行时技能可以在各自会话中共存。
  • 按当前会话筛选来源,再由 DSH 选择技能优先级;原候选对象和 locator 原样交还回调。一个来源释放或读取失败,不影响其他可见来源。
  • 两项重名错误均在 0.5.1 上先复现再修复。类型检查、构建通过,Windows/Linux 各 37/37 项测试通过,隔离环境中的 25 插件并发复测 32/32 通过。
  • 附带可直接安装的 .tgz,许可仍为 MIT。

v0.5.1 — Scoped skills and mixed-plugin regression

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 07:09

Fix skill registration isolation for independent workspace and session instances.

  • Route packaged skill providers and runtime skills to the selected instance, refresh cached catalogs on scope changes, and release each provider's lifecycle independently.
  • Tested eight new packages together with the previous eighteen in an offline, unprivileged VM. The 25-package coexistence set passes 341 scope checks and 32 concurrent/file-operation checks; the core suite passes 35 tests on Windows and Linux.
  • All 54 functional switch combinations pass with 72 real Agent turns through a local model fixture; no paid model API was used.
  • Preserve native controls: the two memory plugins collide on memory_search without the menu too, and Meow's two configuration inputs both normalize to {} through the native parser. No package-specific workaround or third-party source change.
  • Includes a prebuilt .tgz, bilingual README and MIT license. Full results: third-batch report.

修复工作区、会话独立实例的技能注册隔离。

  • 打包技能和运行时技能按当前作用域选择实例,切换时刷新缓存,释放时仅终止对应实例。
  • 断网、非管理员虚拟机中新增八个样本,与原十八个混装。25 个可共存样本通过 341 项分层检查、32 项并发与文件操作检查;Windows 和 Linux 核心测试均为 35/35。
  • 54 组功能开关组合全部通过,包含本地模拟模型上的 72 次真实 Agent 调用,没有调用付费模型 API。
  • 保留原生对照:两款记忆插件不装菜单也会抢占 memory_search,Meow 的两组配置也被原生解析器归一化为 {}。没有按插件名称适配,也没有改第三方源码。
  • 附带可直接安装的 .tgz、双语 README 和 MIT 许可。

v0.5.0 — Per-instance directory isolation

Choose a tag to compare

@kazari-qwp kazari-qwp released this 09 Nov 06:24

下级插件实例现在自动隔离自己创建的目录:不同工作区、会话可以保留相同的路径配置,实际数据各自独立。继承上级时共用上级实例和数据,独立启用时使用自己的数据。

  • 相对路径和 .. 按原逻辑路径解析;realpath 返回逻辑路径,可继续拼接子路径或访问上级目录。
  • 按作用域和包隔离 Node 文件接口、普通模块依赖及 SQLite 打开路径;重开菜单、恢复会话继续使用原来的私有数据。
  • 不识别配置字段名,不按插件名称适配,不修改 DSH 或第三方磁盘文件。新隔离实例从空数据开始,原有目录保持不动。
  • 33/33 仓库测试通过。未修改的官方 Superagent 使用相同 stateDir 启动两个下级实例,锁、数据库和配置均独立;集成验证 20 项通过。

仍保留 Superagent 原生的 Windows 路径校验及旧历史接口问题。Router 的 Windows bash 限制在测试中使用禁止执行的占位工具;未连接 GitHub/飞书账号测试完整自动化流程。本层不重定向外部进程或原生扩展的文件访问,也不处理写死的端口。

Lower plugin instances now isolate directories they create. Workspaces and sessions can retain identical configured paths while storing separate data. Inheritance shares the ancestor's instance and data; explicit enablement uses its own.

  • Resolve relative paths and .. in the original logical namespace; return logical realpath results that remain usable for child and parent lookups.
  • Scope Node file interfaces, ordinary module dependencies and SQLite opening paths by scope/package. Preserve private data across menu restarts and session resumes.
  • No configuration-field guessing, plugin-name adapters, DSH modifications or third-party file patches. New private instances start with fresh data; existing directories remain untouched.
  • 33/33 repository tests pass. The unchanged official Superagent starts two lower instances with the same stateDir, separate locks, databases and configurations; 20 integration checks pass.

Native Superagent Windows path validation and the old transcript API limitation remain. The fixture uses a non-executing bash placeholder for the Router's Windows constraint; connected GitHub/Feishu automation was not tested. External processes, native addons and hardcoded ports are outside this layer.

Validation and coverage / 实测与覆盖范围

Install / 安装:通过 DSH 插件页添加附件,或运行:

dsh plugin --profile desktop add ./dsh-tiered-plugin-menu-0.5.0.tgz

Target: DSH 0.2.2-rc.1. License: MIT, commercial use permitted. / MIT 许可,允许商用。