Skip to content

Releases: mrzturn/dsh-switchman

v1.8.1

Choose a tag to compare

@mrzturn mrzturn released this 26 Oct 09:32

Fixed

  • Dispatch pool annotations no longer leak into dispatched model ids. A model id copied verbatim off the [SWITCHMAN:POOLS] table (e.g. glm-5.3-flash(A)@high) embedded the display-only (TIER) grade and @effort pin; DSH's exact-match child-route whitelist then rejected the call and the caller fell back to implicit dispatch, losing the lane's route.

    • The pools guidance now spells out the full provider/model(TIER)@effort grammar with an explicit decomposition rule (both suffixes are display-only annotations, never parts of the model id).
    • A sanitation pass on subagent/subagent_fork (every enforce mode) denies calls whose model argument embeds trailing (TIER)/@effort/⚠not-authorized annotations when the stripped id matches a configured route, returning the exact corrected arguments (including a reasoning_effort hint) instead of the generic whitelist error. Unknown ids still pass through untouched; enforce-gate semantics are unchanged.

v1.8.0 · 意图路由 / Intent routing

Choose a tag to compare

@mrzturn mrzturn released this 25 Oct 10:41

v1.8.0

中文

意图路由(Auto 模型)

模型选择器里多了一个「Auto」。选它之后,每条消息先交给一个分类器小模型判断该用哪条泳道的模型,再在请求层静默切换——你只管发消息,脏活累活自动分给对的模型。决策按回合钉住,不会在同一段任务里来回跳;面板显示当前决策和置信度,还有五分钟的缓存窗口避免重复分类。

分类器可以自己带:Ollama 跑个 tev1:4b-mxfp8,端点填 http://127.0.0.1:11434/v1/systemone,就是一个现成的本地决策端点。不想折腾本地,云端小模型或不带思考的本地模型也行。

上下文水位与自动交接

会话上下文分三档水位,默认 80k / 120k / 150k tokens:80k 起提醒多委派少亲读,120k 开始收紧读取预算,150k 触发一次平滑交接——先备份会话、写交接文档,再压缩,尽量不丢细节地继续干活。这里有一条刻意设计的顺序:核心自带的 0.8×窗口压缩线(200k 窗口即 160k)永远排在插件的交接线后面,粗糙的单发压缩不会抢在平滑交接前面。

其他改动

  • 关掉意图识别不再甩下烂摊子:已选 Auto 的会话自动落到兜底链,选择器里 Auto 也会隐藏,不会卡在一个不能用的小模型上
  • 某个候选模型的真实上下文窗口小于交接线时,面板会直接提示溢出风险,免得聊到一半爆窗
  • 默认值整体调优:读取预算 3000、分类超时 60 秒,长会话的默认体验更省心

English

Intent routing (the Auto model)

The model picker now has an "Auto" entry. Pick it, and each message first goes through a small classifier that decides which lane's model should handle it, then switches silently at the request layer. Decisions are pinned per turn so a running task doesn't bounce between models, and the dock shows the current decision, its confidence, and a five-minute cache window.

Bring your own classifier: run tev1:4b-mxfp8 on Ollama and point the endpoint at http://127.0.0.1:11434/v1/systemone. Prefer not to run anything local? A cloud small model, or a local one without thinking, works too.

Context watermarks and smooth handover

Session context now has three watermark tiers, 80k / 120k / 150k tokens by default: at 80k you get nudged to delegate, at 120k the read budget tightens, and at 150k a smooth handover kicks in — back up the session, write a handover document, then compact, keeping as much detail as possible. The ordering here is deliberate: the core's own 0.8×window compaction line (160k on a 200k window) always fires after switchman's handover line, so the blunt one-shot compaction never preempts the smooth path.

Other changes

  • Turning intent routing off no longer strands sessions: conversations already on Auto fall back to the fallback chain, and Auto hides from the picker instead of sitting there unusable
  • The dock warns when a candidate model's real context window is narrower than the handover line, before you find out by overflowing mid-conversation
  • Defaults retuned across the board: 3000 read budget, 60s classifier timeout — long sessions need less fiddling out of the box

v1.7.1 — 修复与 dshmarket 的依赖冲突 / Fix dependency conflict with dshmarket

Choose a tag to compare

@mrzturn mrzturn released this 23 Oct 07:07

v1.7.1 — 修复与 dshmarket 的依赖冲突 / Fix dependency conflict with dshmarket

中文

修复:安装本插件会导致 dshmarket 插件市场崩溃(1.7.0 回归,强烈建议升级)

  • 根因:1.7.0 把 @deepseek-ai/schemastery 声明为普通 dependencies,安装时被 pnpm 提升到 <profile>/node_modules/;DSH 的模块解析会让这份物理副本遮蔽宿主副本,dshmarket 及所有 profile 常驻包静默拿到第二份 schemastery 实例 → 市场崩溃。
  • 修复:schemastery 改为 peerDependencies: "^3.18.1"(与 dshmarket / dsh-mcp-connector 相同的生态约定),运行时由宿主副本满足;本插件回归零运行时依赖,安装/升级/卸载不再向 profile 写入任何共享依赖,与 dshmarket 互不影响。
  • 防回归:scripts/validate.mjs 新增检查——再次出现普通 dependencies 直接失败,把"零运行时依赖"固化为发布门禁。
  • 两份 README 增补事故机理与维护注意。

升级方式:plugin_manager: remove_bundle 后重新 install_bundle,或 dsh plugin --profile desktop add dsh-switchman。若市场曾把本插件自动置为 OFF,升级后重新启用即可。

English

Fix: installing this plugin crashed the dshmarket plugin market (1.7.0 regression, upgrade strongly recommended)

  • Root cause: 1.7.0 declared @deepseek-ai/schemastery as a plain dependency; pnpm hoisted it into <profile>/node_modules/, where DSH's module resolver lets the physical copy shadow the host copy — dshmarket (and every profile-resident package) silently received a second schemastery instance and crashed.
  • Fix: schemastery is now a peerDependency (^3.18.1, the same ecosystem convention as dshmarket / dsh-mcp-connector), resolved from the host copy at runtime. The package returns to zero runtime dependencies — installing, upgrading, or removing it no longer writes any shared dependency into the profile, so it can never affect dshmarket (or vice versa).
  • Regression guard: scripts/validate.mjs now fails if plain dependencies ever reappear, hardening the zero-dependency invariant as a release gate.
  • Both READMEs document the incident mechanics and the maintenance note.

Upgrade: plugin_manager: remove_bundle then install_bundle again, or dsh plugin --profile desktop add dsh-switchman. If the market had auto-disabled this plugin, just re-enable it after upgrading.

v1.7.0 — 适配 DSH 0.2.1 / Adapt to DSH 0.2.1

Choose a tag to compare

@mrzturn mrzturn released this 17 Oct 11:04

v1.7.0 — 适配 DSH 0.2.1 / Adapt to DSH 0.2.1

中文

适配 DSH 0.2.1(升级 DSH 前必装)

  • 移除 persona 规程中已废弃的 {{cwd}} 提示词变量行:DSH 0.2.1 删除了 cwd 变量(仅注册 provider/model),严格插值下旧版会让所有会话报 unknown prompt variable "{{cwd}}" 而失败;工作目录现由必需运行时上下文注入,语义不变。
  • 四份出厂预设(standard / ptc / minimal / cordis)的插件列表按装机 0.2.1-rc.2 出厂文件逐字段重新同步:新增 time-context、tool-schedule、tool-plugin-market,移除上游已删的 ralph/codex/claude-code 行,minimal 预设补齐 image-only 文件工具与 compaction 组,plan-mode 文案对齐 rc.2。
  • 子代理工具结果适配统一激活生命周期:接受新 {kind:"activation"} 形状({kind:"continuable"} 旧形状保留回退),对应 backgroundMode 配置键的移除。
  • engines.dsh 提升至 >=0.2.1-rc.1;在 DSH 0.1.x 上本版本会拒绝安装,请留在 1.6.x。

升级方式:plugin_manager: remove_bundle 后重新 install_bundle,或 dsh plugin --profile desktop add dsh-switchman。

English

DSH 0.2.1 compatibility (install before upgrading DSH)

  • Dropped the deprecated {{cwd}} persona line: DSH 0.2.1 removed the cwd prompt variable (only provider/model stay registered), so with 1.6.x every conversation fails with unknown prompt variable "{{cwd}}" once the plugin is enabled. The working directory now arrives via the required runtime context — same semantics, no variable.
  • Re-synced all four shipped preset plugin lists (standard / ptc / minimal / cordis) field-by-field against the installed 0.2.1-rc.2 presets: added time-context, tool-schedule, tool-plugin-market; dropped the removed ralph/codex/claude-code rows; minimal gained the image-only fs tools and the compaction group; plan-mode copy aligned with rc.2.
  • Subagent tool-result shapes adapted to the unified activation lifecycle: the new {kind:"activation"} shape is accepted (the old {kind:"continuable"} shape stays as fallback), matching the backgroundMode config removal.
  • engines.dsh raised to >=0.2.1-rc.1; on DSH 0.1.x this version refuses to install — stay on 1.6.x there.

Upgrade: plugin_manager: remove_bundle then install_bundle again, or dsh plugin --profile desktop add dsh-switchman.

v1.6.0 — 全球化与交接可靠性 / Globalization & handover reliability

Choose a tag to compare

@mrzturn mrzturn released this 05 Oct 15:17

v1.6.0 — 全球化与交接可靠性 / Globalization & handover reliability

中文

全球化

  • 插件界面语言手动覆盖(uiLocale):徽章、启动面板、设置页共 12 个语种,选中即预览、保存记忆、启动恢复、失败回退;只改插件自身 UI,不动 DSH 应用语言。
  • 内容语言补齐 Italiano、Português:会话 / 代码注释 / 文档三选项各 12 种,作用域全局或按项目(.switchman/lang.json)。
  • 11 个语种 README 全部按中文模板重写,各嵌本语种真实渲染的设置页整页截图;截图清单更正,旧分节图清理。
  • 全语种补手动干预介绍:/ctx-pause 暂停水位干预、/ctx-resume 随时恢复(重启后自动恢复)、/ctx-handover 手动立即交接。
  • 仓库内中文代码注释与开发文档全部英文化。

修复

  • 设置页 Interface 区条件钩子导致的面板崩溃(useId 移到早退之前)。
  • 交接后看不见晚物化的后台子智能体、进而重复派发:交接文档改为每次压缩尝试前刷新(写完即压、中间无动作),压缩落地后差分点名,唤醒后 20s/75s 双复查主动通报;派发枚举重写为 catalog 驱动——已派发未终局即视为在途。
  • Agent-Teams 模式下子智能体无法寻址:新增 child_message 桥接工具;交接文档附精确判活路径与单行命令。

升级:plugin_manager: remove_bundle 后重新 install_bundle,或 dsh plugin --profile web/desktop add dsh-switchman。

English

Globalization

  • Manual interface-language override (uiLocale) for the plugin's own UI — badge, startup panel, settings page — across 12 locales: instant preview on select, remembered per profile, restored at startup, falls back to the app language on any failure. Does not touch the DSH app language.
  • Content-language options completed with Italiano and Português: 12 choices each for conversation / code comments / documents, global or per-project (.switchman/lang.json).
  • All 11 locale READMEs rebuilt from the zh template, each embedding its own genuinely rendered full-page settings screenshot; the manifest corrected, superseded partial shots removed.
  • Manual-control trio documented in every locale: /ctx-pause suspends watermark enforcement, /ctx-resume restores it anytime (a restart restores it too — a temporary let-go, not a permanent off), /ctx-handover triggers the backup/compact/wake handover on demand.
  • In-repo Chinese code comments and dev docs translated to English.

Fixes

  • Settings-page crash in the Interface section (useId hooks moved above the early returns).
  • Handovers losing late-materializing background subagents and re-dispatching them: the handover document is refreshed as the last action before every compaction attempt, diffed after compaction lands, and re-checked twice after the wake; dispatch enumeration is catalog-driven — dispatched-but-unfinished counts as in flight.
  • Subagent children unaddressable in Agent-Teams mode: new child_message bridge tool; handover docs carry exact liveness paths and a paste-ready one-liner.

Upgrade: plugin_manager: remove_bundle then install_bundle again, or dsh plugin --profile web/desktop add dsh-switchman.

v1.5.0 — Agent Teams · /vision · 自动交接 / Auto handover

Choose a tag to compare

@mrzturn mrzturn released this 05 Oct 06:29

v1.5.0

新内容 / What's new

中文

  • Agent Teams 模式(默认关闭,两个独立开关):
    • 「智能体团队模式」开启后注入团队调度规程(默认委派 + 分级验证 + 共享任务板纪律)并自动启用 DSH 的 Agent Teams——主模型可拉常驻队友、往共享任务板派活、队友间互传消息;关闭零残留,且不撤走运行中会话的工具
    • 「同步子智能体模型白名单」把六池并集整体写入 DSH「允许 Agent 为子智能体选择模型」授权列表(fork 派发路径一并纳入),switchman 成为唯一事实源;仅对之后新建的会话生效
  • /vision 图像解锁:纯文本模型也能处理图——贴图后 /vision <问题>,图片解析为宿主文件路径交给多模态池读取;带图直发被拒时自动改写为 /vision 重发;输入框常驻提示;多模态池未配置时给出配置指引
  • 全自动四步交接:上下文到 force 水位(默认 130k)自动 fork 备份 → 压缩 → 写交接文档(含仍在运行的后台子智能体快照,续跑会话据此收报告、不重复派活)→ 唤醒续跑;会话头部实时显示「交接进行中 · 备份会话 / 压缩上下文 / 唤醒续接」
  • 设置页与调度中心:设置 → dsh-switchman,或首页侧边栏「Switchman 调度中心」——语言偏好(全局或按项目 .switchman/lang.json)、六派发池(手动排序、按模型真实支持列表钉思考强度、S/A/B/C 能力锚定)、执行模式(建议 / 强制)、水位区、团队开关
  • 会话头部徽标:⚡ 自主团队徽标、◇ 当前会话实际模型 chip
  • 授权漂移提示:DSH 未授权的子智能体模型路线在推荐表与设置页标 ⚠ 并指引授权
  • 语言偏好系统:对话 / 注释 / 文档三种语言,未设置时以 DSH 界面语言问一次、永久记住

English

  • Agent Teams mode (off by default, two independent toggles):
    • "Agent teams mode" injects the team doctrine (delegate by default + tiered verification + shared-task-board discipline) and auto-enables DSH's Agent Teams — durable teammates, a shared task board, teammate messaging; turning it off leaves zero residue and never strips tools from running sessions
    • "Sync the subagent model whitelist" writes the six-pool union wholesale into DSH's authorized child-model list (fork path included) — switchman becomes the single source of truth; takes effect for newly created sessions only
  • /vision image unlock: text-only models can work with images — attach, then /vision <question>; the image is resolved to a host file path and read by a vision-pool model; refused image sends are auto-rewritten to /vision and resubmitted; a composer hint appears for text-only models, and an empty vision pool gets setup guidance
  • Fully automatic four-step handover: at the force watermark (default 130k) the session forks a backup → compacts → writes a handover document (snapshots of still-running background subagents included, so the continuation collects their reports instead of duplicating work) → wakes the continuation, with a live progress chip in the session header
  • Settings page & control center: Settings → dsh-switchman, or the "Switchman Control Center" home-sidebar panel — language preferences (global or per-project .switchman/lang.json), six dispatch pools (manual ordering, per-model effort pinning from actually supported levels, S/A/B/C tier anchoring), execution mode (advice / enforce), watermark section, teams toggles
  • Session-header chips: ⚡ autonomous-team badge and a ◇ chip showing the session's actual model
  • Authorization-drift surfacing: routes DSH hasn't authorized for explicit subagent selection are flagged ⚠ in the pools table and the settings page
  • Language preferences: replies / code comments / docs — asked once in your DSH UI language and remembered forever

修复 / Fixes

  • 会话头部徽标消失:dynamic-ctx guard 对 ctx.sessions 抛错被错误边界吞掉——改用投影 hooks 并优雅降级 / session-header badge vanished (dynamic-ctx guard threw on ctx.sessions, swallowed by the error boundary) — rewritten with projection hooks and graceful degradation
  • 视觉提示 chip 在子会话误报:改按会话模型判定 / vision-hint false positives on subagent sessions — now resolved per session model
  • /vision 图片物化为带扩展名的 PNG 副本 / vision images materialized as extension-named PNG copies
  • 自动交接健壮性:真实 AbortSignal、压缩 error 结果按可重试处理、跨轮次重试 / handover robustness: real AbortSignal, retryable compaction errors, retry across the turn boundary

说明 / Notes

  • npm 包形态:50 文件 / ~205 kB(docs/ 截图不进包)/ package shape: 50 files / ~205 kB (docs/ screenshots never ship)
  • 经 OIDC trusted-publishing 流水线发布,release-publish 环境人工审批后自动 npm publish / published through the OIDC trusted-publishing pipeline; npm publish runs after the release-publish environment approval
  • 全部 11 个语言 README 已随本版重写并配新截图 / all 11 language READMEs were reworked for this release with new screenshots

v1.3.1

Choose a tag to compare

@mrzturn mrzturn released this 02 Oct 10:22

What's new

  • Nine new README translations: 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Italiano, Português, Русский — every README now carries an 11-language nav row
  • screenshots.json declared in-repo for storefront galleries (hero + three settings views)

Notes

  • First release through the OIDC trusted-publishing pipeline (approval-gated release-publish environment)