本次发布的主轴是队列与退役:全部家族包的宿主下限随 SDK 队列推进到 DSH 0.2.2-rc.1,同时把已被官方能力覆盖的 dsh-git-graph 整包退掉,Git 变更视图交回官方 @deepseek-ai/dsh-workspace-changes。功能面上新增 dsh-diagrams,在会话转录与文档预览里把 mermaid 围栏原地渲成 SVG 图示,并按帧调度、按主题记忆化控制渲染成本;dsh-win-bash 在挂载前核验载荷缓存的强制性完整性标签,堵住 Low 完整性 bash 导致的 Permission denied(issue #2007);远程接入(dsh-remote-bridge)的配对面板与宿主日志改为只交代地址种类,公网主机名不再以文本出现。四个卫星仓在本版同版本对齐到 0.4.15。
DSH 队列推进到
0.2.2-rc.1:主工作区、shared、脚手架与全部家族包消费的@deepseek-ai/*一起迁到0.2.2-rc.1,@deepseek-ai/cordis到4.1.0、schemastery到3.19.0、cosmokit到1.9.0,dsh.engines.dsh与宿主 peer 下限同步抬到>=0.2.2-rc.1。同批落地两处契约漂移的修复:dsh-remote-web-ui的插件卡座席把事件签名擦成参数类型,以适配cordis@4.1.0的泛型on;dsh-agents的宿主面探针不再要求sessionProjections.stateOf。对照dsh-v0.2.2-alpha.3与dsh-v0.2.2-rc.1两个标签,非清单源码差异为零:官方 loader 名册仍为 192 个 id、浏览器冻结平台表仍为 11 个模块。相对0.4.14消费的0.2.1-rc.3队列,官方 CSS token 集合由 329 项增至 335 项:新增六条插画令牌(--dsw-alias-illustration-background与它的-backing、-detail、-inset、-shadow、-surface)与--dsw-alias-state-done-primary,删除官方外壳已撤掉的--dsw-specific-sidebar-nav-item-hover。
dsh-git-graph退役,Git 变更视图交回官方:官方 DSH 现已自带@deepseek-ai/dsh-workspace-changes,家族再养一套 Git 面已属重复,于是整包删除(126 个受控文件):聚合包不再挂载web-ui-git-graph行、不再依赖它,也不再随包发布它的 ru 字典、设置桥白名单与移动端屏蔽规则。老 profile 记录的@linxin666/dsh-web-all/git-graph保留为静默 no-op 的退役空壳,否则 import 阶段会抛ERR_PACKAGE_PATH_NOT_EXPORTED并带倒整组聚合;已发布的@linxin666/dsh-client-ui-git-graph@0.4.14仍留在 registry,单独安装它的用户照旧可用。随之离开的能力是git_worktree模型可见工具、$DSH_HOME/worktrees/托管目录与空白会话 hero 行的分支 chip;worktree 会话隔离交给官方 experimental 的client-ui-forge(自带 worktree 管理与 diff)。
新增dsh-diagrams:mermaid 围栏就地出图:官方 markdown 渲染器不提供代码块扩展缝,mermaid 围栏只能按普通代码块显示,而家族原有的 mermaid 能力随dsh-aionui-panel一起走了。新包用一个页面侧观察者同时覆盖会话转录与文档预览(两者共用同一个官方渲染器),把 mermaid 围栏用宿主按需提供的运行时原地渲成 SVG,并跟随外壳明暗重绘。原始代码块只隐藏不销毁,复制按钮仍旧复制源码;语法错、流式未闭合、运行时取不到,任何一种失败都原样恢复成代码块,不向调用方抛错。运行时由一条只读、过家族配对栅栏的宿主路由同源提供(/api/dsh-diagrams/vendor/mermaid.js,只答GET与HEAD,不访问任何 CDN),渲出的 SVG 在 mermaid 自身的 strict 级别之外再过一遍净化,剥掉可执行元素、on*处理器与javascript:URL。
出图按帧调度并按主题记忆化:mermaid 的解析与布局同步跑在页面主线程上,因此出图不再一次全发:一帧画一张(十二张图的文档照样可滚动),净化结果按「主题 + 源码」记忆化(上限 32 条,主题来回切与宿主重绘都不重算),运行时只在调色板真正变化时重新初始化,隐藏标签页把requestAnimationFrame掐掉时还有 48 毫秒兜底。被解析器拒绝的围栏只在源码确实变化后、经过 400 毫秒静默期才重试,避免它自己的回滚改动 DOM 又把观察者叫醒成死循环。文本标签强制走 SVG 文本(htmlLabels: false),否则 mermaid 的<foreignObject>标签会被净化器整段剥掉、读作一个空盒子。
dsh-win-bash核验载荷缓存的强制性完整性标签(issue #2007):此前的缓存校验只比 SHA256 清单与文件字节,而包内载荷与带 Low 完整性标签的坏副本在字节上完全相同,于是哈希命中会让一棵不可用的树在重启、插件重载与更新之后一直存活。用户在danger-full-access会话里遇到git add、mktemp与 Node 写文件全部Permission denied,重启 DSH 与重建常驻 shell 均无效。现在挂载前除了哈希还核验标签:读取只走%SystemRoot%\System32\icacls.exe <path> /save(绝不查PATH)并解码 UTF-16LE SDDL,(ML;...;LW)与低于 8192 的S-1-16-*判为 Low;没有 SACL 即默认 Medium,High 与 System 标签、以及卷根的OINPIO继承标签都不是降级。SDDL 的 SID 写法与系统语言无关,本地化 Windows 上同样可用;全过程只读,不改任何标签、DACL、令牌或用户目录,不需要原生依赖也不需要提权,POSIX 宿主零开销。
配对面板与宿主日志只交代地址种类:面板不再把公网地址写成文字,改为「二维码已包含公网地址,扫码后 iPhone 自动连上这台电脑」。一次性配对码 30 秒即焚,而持久公网主机名一旦渲染成文字,会比它出现的每一张截图活得久;二维码本身已经带着手机需要的地址,「复制配对码」交出的仍是同一个{token,url}串。局域网字面量不属于这一类事实(它本来就只在当前网络内可达),所以仍然点名:「二维码指向局域网地址 {origin},iPhone 需与本机在同一网络」。宿主日志同一口径:pair a device with <本机 ws 链接>之后只跟(phone: public)或(phone: lan),一个地址都没有时不带后缀,公网主机名不再进入会被粘贴出去的日志。判定收在一处(core/pair-address.ts),面板说种类、日志说种类,同一份配置在两个面上不会再各说各话。
四个卫星仓同版本对齐到0.4.15:皮肤中心(dsh-skins,5415a7e01b9244e02ca6808928451f00cbf3b2ae)在语义属性契约里登记diagrams插件与它拥有的diagrampart,随dsh-git-graph离队删掉 15 套皮肤里已匹配不到元素的图谱样式规则,并把 verdandi 输入卡下方的读数条收成一张纸面上的一行:两枚读数药丸并肩、中间一道金色细线、上下文环在最右收尾,宽度按内容收窄、放不下时整行折行,上下文环也不再像贴在纸面右端的贴片,自定义主题则停发官方已撤掉的--dsw-specific-sidebar-nav-item-hover(侧边栏悬停背景走--dsw-alias-interactive-bg-hover);宠物(dsh-pet,d19284a539618e5eadb6c263d842008a2b600bb0)修好扩展页在cordis4.1 新泛型事件签名下的类型兼容,并把队列对齐到0.2.2-rc.1;社区插件索引(dsh-community-plugins,04ce116569aaa00c876175fb66d14ea90e7a0328)收录组件看板dsh-widget-board,条目从 150 增至 151;预设中心(dsh-presets,8f15e62b03dabf68d147fb92a911652dd0fd1bca)纯队列对齐,lib/三个产物与0.4.14逐字节相同。
升级须知
- DSH 最低版本提高到
0.2.2-rc.1:全部家族包的dsh.engines.dsh与@deepseek-ai/dsh对等依赖下限从>=0.2.1-rc.3抬到>=0.2.2-rc.1。旧宿主上的行为是明确的降级而不是故障:官方 boot gate 会跳过该 bundle——不抛错、不删任何数据、其余 bundle 照常启动;插件管理器与 CLI 一侧则以 HTTP 412 拒绝安装,并提示requires DSH >=0.2.2-rc.1。要装 0.4.15,请先把宿主升到0.2.2-rc.1或更高。已经在 0.2.2 线上的宿主只需跟进版本号:dsh-v0.2.2-alpha.3与dsh-v0.2.2-rc.1之间没有任何非清单源码差异。 dsh-git-graph退役:该行从聚合包移除,能力由官方workspace-changes承接;@linxin666/dsh-web-all/git-graph子路径仍保留,作为静默 no-op 的退役空壳(tombstone),老 profile 里记录的行名照旧可解析,独立包@linxin666/dsh-client-ui-git-graph@0.4.14仍可从 registry 单独安装。曾把该行设为disabled的 profile 会残留一条覆盖行,启动时打印一次patch: entry "web-ui-git-graph" not found警告(不影响启动与数据),在插件管理器里对该插件做任一次操作即自动回收(prune 幂等)。- 升级入口支持矩阵:本版本不存在 Doctor 预启动迁移:
dsh --help上没有doctor子命令,dsh-doctor家族包已于 2026-09-23 退役。插件管理器的更新任务是唯一具备配置备份(cordis.patch.yml.bak-plugin-manager)、--dump-config预检与异常自动回滚的迁移入口;直接执行dsh plugin add只做行名修复,不清覆盖行,因此上面那条web-ui-git-graph覆盖行只有插件管理器那一次操作会回收它。 - Windows 缓存重建方式:本版唯一的平台专属变更是
dsh-win-bash在挂载前校验载荷缓存的强制性完整性标签。它是 fail-safe 的:标签不符的缓存不再复用(宿主改在DSH_HOME之外的隔离缓存根重新发布可执行树),缓存不可写时不写它;所有候选都不可用或不可核验时回退到包内树运行,那与0.4.14的可用性等价。全程不抛错、不删用户数据、也不改任何 DACL。需要重建缓存时删除$DSH_HOME/win-bash即可,缓存是内容寻址的,重建幂等。 - 梁神预置的调度规则需要重启后生效:本次把梁神预置的规则块同步到上游当前的 Agent Teams 运行时,新增宿主面执行守卫(被委派的子会话调用
ask_user_question、create_goal、update_goal、exit_plan_mode会以DELEGATED_CALLER被拒;子会话仍在运行时纯 sleep 等待会以ACTIVE_CHILD_SLEEP_FORBIDDEN被拒,真实工作与后台任务照常通过),并明确计划模式是用户自己的开关。规则块同时由 35,447 字符压到 24,589,每步常驻成本约降 2,700 token。守卫是预置行而不是宿主安装,因此只对重启dsh web之后新建的会话生效。 - 平台验证声明:本版在 Linux(Ubuntu x86_64)环境下完成了完整的本地门禁套件、运行时验证与发布前审计(已实测)。Windows 未在物理实机上验证——本机为 Linux,
dsh-win-bash的标签核验(icacls /save读取、隔离缓存根发布、unsafe-integrity拒绝分支)只有单平台 CI 的纯逻辑用例与带真实icacls的单元覆盖,没有任何一次真实 Windows 主机上的挂载验证;macOS 同样未做实机验证。
新功能
- [diagrams] 在会话转录与文档预览里把 mermaid 围栏原地渲染为 SVG 图示
- [diagrams] 逐帧调度出图并按「主题 + 源码」记忆化,被拒围栏只在源码变化后重试
- [remote-bridge] 配对面板只陈述二维码携带的地址种类,不再打印公网地址
- [agents] 共存门同时识别两代官方 Agent Teams bundle,并在告警里一并点名
- [liangshen] 调度规则块新增宿主面执行守卫,并把决策压成一句一条
- [market] 商店注册社区插件
dsh-widget-board并列入编辑推荐 - [dsh-web-all] 家族聚合包退役
dsh-git-graph挂载行
修复
- [win-bash] 挂载前核验载荷缓存的强制性完整性标签,杜绝 Low 完整性 bash 写入失败 (#2007)
- [win-bash] 带 Low 标签的数据树上改在
DSH_HOME之外的隔离缓存根发布可执行树 - [remote-bridge] 局域网判定锚定整个主机名,避免
10.example.com一类公网名被当成本地地址打印 - [remote-bridge] 面板与宿主日志共用同一份地址判定,两种分类口径不再各说各话
- [remote-web-ui] 插件卡座席的事件签名擦为
never参数类型以适配cordis4.1.0 - [agents] 宿主面探针不再把
sessionProjections.stateOf计入必需面
其他改动
- [deps] 家族队列推进到 DSH
0.2.2-rc.1(中间经停0.2.2-alpha.3),cordis到4.1.0、schemastery到3.19.0、cosmokit到1.9.0 - [deps] CI 与发布工作流改用 Node 24.9.0
- [skins] 皮肤仓 gitlink 随 verdandi 读数条、diagrams 契约登记与图谱样式退役前移
- [market] 随皮肤 gitlink 重建商店产物与编辑推荐(151 个插件)
- [readme] 按 GitHub API 重新同步贡献者名单
- [readme] 移除 Git 图谱与 worktree 相关条目,补上
dsh-diagrams的包条目 - [docs] 记录
marketing/存放宣传片工程的目录约定 - [notes] 记录 2026-11-03 上游 Agent Teams 复核结论与 fork 基线保持不动的理由
- [notes] 记录 SDK cohort
0.2.2-rc.1、dsh-git-graph退役与梁神调度守卫的决策 - [test] 补齐配对面板定位地址的文案路径与地址来源的用例覆盖
- [test] 第二条连接器状态路径的断言改用
node:path拼接以保持平台中立
English
This release is about the cohort and a retirement: every family package raises its host floor as the SDK cohort advances to DSH 0.2.2-rc.1, and dsh-git-graph is removed outright because the official runtime now ships the same surface, with Git change views handed back to the official @deepseek-ai/dsh-workspace-changes. On the feature side the new dsh-diagrams renders mermaid fences in the chat transcript and the document preview, scheduling the work per frame and memoizing per theme so a long transcript stays scrollable; dsh-win-bash verifies the mandatory integrity label of its payload cache before mount, closing the Low-integrity shell that broke writes with Permission denied (issue #2007); and remote access (dsh-remote-bridge) states only the kind of address in the pairing panel and in the host log, so a public hostname no longer leaves as text. The four satellite repositories align to 0.4.15.
The DSH cohort advances to
0.2.2-rc.1: the root workspace,shared, the scaffold and every family package move their@deepseek-ai/*consumption to0.2.2-rc.1, with@deepseek-ai/cordisat4.1.0,schemasteryat3.19.0andcosmokitat1.9.0, and bothdsh.engines.dshand the host peer raised to>=0.2.2-rc.1. Two contract drifts are repaired in the same batch: the plugin card seat indsh-remote-web-uierases its event signature to parameter types for the genericonofcordis@4.1.0, and the host face probe indsh-agentsno longer requiressessionProjections.stateOf. Against thedsh-v0.2.2-alpha.3anddsh-v0.2.2-rc.1tags the non-manifest source diff is zero: the official loader roster is still 192 ids and the browser frozen platform table is still 11 modules. Against the0.2.1-rc.3cohort of0.4.14the official CSS token set grows from 329 to 335 entries: six illustration tokens (--dsw-alias-illustration-backgroundwith its-backing,-detail,-inset,-shadowand-surface), plus--dsw-alias-state-done-primary, arrive while the official shell drops--dsw-specific-sidebar-nav-item-hover.
dsh-git-graphis retired and Git change views return to the official plugin: the official DSH now ships@deepseek-ai/dsh-workspace-changes, so a second Git surface in the family is duplication; the package is deleted outright (126 tracked files), the aggregate no longer mounts theweb-ui-git-graphrow, no longer depends on it and no longer publishes its ru dictionary, settings-bridge whitelist entry or mobile block rule. The@linxin666/dsh-web-all/git-graphsubpath stays as a silent no-op retirement shell, because without it an older profile row would throwERR_PACKAGE_PATH_NOT_EXPORTEDat import and take the whole aggregate down; the published@linxin666/dsh-client-ui-git-graph@0.4.14stays on the registry, so anyone installing it on its own keeps working. What leaves with the package is thegit_worktreemodel-visible tool, the managed$DSH_HOME/worktrees/directory and the branch chip in the blank-session hero row; worktree session isolation goes to the official experimentalclient-ui-forgeplugin, which brings its own worktree management and diff.
Newdsh-diagramspackage renders mermaid fences in place: the official markdown renderer publishes no code-block extension seam, so a mermaid fence could only render as an ordinary code block, and the family own mermaid support left withdsh-aionui-panel. The new package uses one page-side observer to cover both the chat transcript and the document preview (they share the same official renderer), renders mermaid fences into SVG in place with a runtime the host serves on demand, and repaints them when the shell flips light or dark. The original block is only hidden, never destroyed, so the copy button still copies the source, and every failure (syntax error, half-streamed fence, missing runtime) restores the code block untouched instead of throwing into the caller. The runtime is served same-origin by one read-only host route behind the family pairing fence (/api/dsh-diagrams/vendor/mermaid.js,GETandHEADonly, no CDN contacted), and rendered SVG passes a second sanitizing pass beyond the strict security level of mermaid, stripping script-capable elements,on*handlers andjavascript:URLs.
Diagrams are painted one per frame and memoized per theme: mermaid parses and lays out synchronously on the page main thread, so the work is scheduled instead of fired at once: one diagram per frame (a document with twelve diagrams stays scrollable), the sanitized SVG is memoized per theme and source (capped at 32 entries, so a palette flip back and a host re-render cost nothing), the runtime is re-initialized only when the palette actually changes, and a hidden tab that throttlesrequestAnimationFrameto nothing falls back to a 48 millisecond timer. A fence the parser rejects is retried only after a 400 millisecond quiet period and only once its source actually changed, because its own rollback mutates the DOM and retrying on every mutation would spin the page forever. Text labels are forced to SVG text (htmlLabels: false), since the<foreignObject>labels of mermaid are stripped whole by the sanitizer and read back as an empty box.
dsh-win-bashverifies the mandatory integrity label of its payload cache (issue #2007): the cache check compared only the SHA256 manifest and the file bytes, and the packaged payload and a Low-integrity copy are byte-identical, so a hash hit kept an unusable tree alive across restarts, plugin reloads and updates. In adanger-full-accesssessiongit add,mktempand Node file writes all failed withPermission denied, and neither restarting DSH nor rebuilding the persistent shell helped. The mount now verifies the label as well as the hash: the label is read only through%SystemRoot%\System32\icacls.exe <path> /save(never throughPATH) and decoded from UTF-16LE SDDL, where(ML;...;LW)and aS-1-16-*RID below 8192 read as Low; no SACL means Medium, and High or System labels and the volume root inherited label are not downgrades. SDDL writes SIDs the same way in every system language, so a localized Windows works too; the read is entirely passive, changes no label, DACL, token or user directory, needs no native dependency and no elevation, and costs nothing on POSIX hosts.
The pairing panel and the host log state only the kind of address: the panel no longer prints a public address as text, saying instead that the QR code carries the public address and that the iPhone connects to this computer as soon as it scans. A one-shot pairing code burns in 30 seconds, while a durable public hostname printed as text outlives every screenshot it appears in; the QR symbol already carries the address the phone needs, and Copy pairing code still hands out the same{token,url}string. A LAN literal is not that fact, because it only answers inside the network the page is already on, so the line still names it and says the iPhone must be on the same network. The host log follows the same rule:pair a device with <machine-local ws link>is followed only by(phone: public)or(phone: lan), with no suffix when no address was found, so a public hostname no longer enters a log that will be pasted elsewhere. The classification lives in one home (core/pair-address.ts), so the panel and the log answer with the same word for one configuration.
The four satellite repositories align to0.4.15: the skin center (dsh-skins,5415a7e01b9244e02ca6808928451f00cbf3b2ae) registers thediagramsplugin and thediagrampart it owns in the semantic attribute contract, drops the Git graph styling rules that can no longer match from 15 skins, and folds the verdandi composer readout strip into one row on one paper: two readout pills side by side, a gold hairline between them, the context ring closing the line on the right, the row sized to its readings and wrapping when the composer is too narrow, with the ring no longer reading as a patch stuck to the right edge, and custom themes stop emitting the--dsw-specific-sidebar-nav-item-hoverthat0.2.2retired, since sidebar hover backgrounds go through--dsw-alias-interactive-bg-hover. The pet plugin (dsh-pet,d19284a539618e5eadb6c263d842008a2b600bb0) fixes the type compatibility of its extension page under the new generic event signature ofcordis4.1 and aligns the cohort to0.2.2-rc.1. The community plugin index (dsh-community-plugins,04ce116569aaa00c876175fb66d14ea90e7a0328) adds the widget boarddsh-widget-board, growing the catalog from 150 to 151 entries. The preset center (dsh-presets,8f15e62b03dabf68d147fb92a911652dd0fd1bca) aligns the cohort only, with its threelib/artifacts byte-identical to0.4.14.
Upgrade Notes
- The DSH floor rises to
0.2.2-rc.1:dsh.engines.dshand the@deepseek-ai/dshpeer dependency of every family package move from>=0.2.1-rc.3to>=0.2.2-rc.1. The behaviour on an older host is a named downgrade rather than a fault: the official boot gate skips the bundle, throwing nothing, deleting no data, and booting the remaining bundles as usual, while the plugin manager and the CLI refuse the install with HTTP 412 and the messagerequires DSH >=0.2.2-rc.1. Raise the host to0.2.2-rc.1or higher before installing 0.4.15. A host already on the 0.2.2 line only follows the version number, because there is no non-manifest source diff betweendsh-v0.2.2-alpha.3anddsh-v0.2.2-rc.1. dsh-git-graphis retired: the row is removed from the aggregate and the capability passes to the officialworkspace-changesplugin; the@linxin666/dsh-web-all/git-graphsubpath stays as a silent no-op tombstone, so a row name recorded in an older profile still resolves, and the standalone package@linxin666/dsh-client-ui-git-graph@0.4.14remains installable from the registry. A profile that had set the row todisabledkeeps one override row and logspatch: entry "web-ui-git-graph" not foundonce at startup, which affects neither startup nor data; any single operation on that plugin in the plugin manager reclaims it, and the prune is idempotent.- Upgrade entry matrix: this version has no Doctor pre-launch migration:
dsh --helpcarries nodoctorsubcommand, and thedsh-doctorfamily package retired on 2026-09-23. The plugin manager update task is the only migration entry with a configuration backup (cordis.patch.yml.bak-plugin-manager), a--dump-configprecheck and automatic rollback on failure; a directdsh plugin addonly fixes row names and leaves override rows in place, so only that plugin manager operation reclaims theweb-ui-git-graphoverride row above. - Rebuilding the Windows cache: the only platform-specific change in this version is
dsh-win-bashverifying the mandatory integrity label of its payload cache before mount. It is fail-safe: a cache whose label does not match is not reused (the host publishes the executable tree into an isolated cache root outsideDSH_HOMEinstead), and an unwritable cache is never written. When no candidate is usable or verifiable the tool runs from the packaged tree, which matches the availability of0.4.14. Nothing throws, no user data is deleted and no DACL is changed along the way. To rebuild the cache, delete$DSH_HOME/win-bash; the cache is content-addressed, so rebuilding is idempotent. - The LiangShen preset rule block needs a restart: this release syncs the rule block of the LiangShen preset to the current upstream Agent Teams runtime, adding a host-plane execution guard (a delegated child calling
ask_user_question,create_goal,update_goalorexit_plan_modeis refused withDELEGATED_CALLER, and a pure sleep wait while a child still runs is refused withACTIVE_CHILD_SLEEP_FORBIDDEN, while real work and background jobs pass), and states that plan mode is the switch of the user. The block is also compacted from 35,447 to 24,589 characters, about 2,700 tokens less resident cost per step. The guard is a preset row rather than a host install, so it applies to sessions created afterdsh webrestarts. - Platform verification: this release was verified with the full local gate suite, runtime checks and the pre-release audit on Linux (Ubuntu x86_64), measured on the machine that produced it. Windows remains unverified on physical hardware: the label verification in
dsh-win-bash(icacls /savereads, the isolated cache root publication, theunsafe-integrityrefusal branch) is covered only by single-platform CI logic cases and unit tests with a realicacls, with no mount verified on an actual Windows host, and macOS is likewise unverified on physical hardware.
New Features
- [diagrams] Render mermaid fences in the chat transcript and the document preview as SVG
- [diagrams] Schedule one diagram per frame and memoize per theme and source, retrying a rejected fence only after its source changes
- [remote-bridge] State the kind of address the QR carries in the pairing panel instead of the public origin
- [agents] Recognize either generation of the official Agent Teams bundle in the coexistence gate and name both in the warning
- [liangshen] Add a host-plane execution guard to the dispatch rule block and compact one decision per rule
- [market] Register the community plugin
dsh-widget-boardand feature it in editor picks - [dsh-web-all] Retire the
dsh-git-graphrow from the aggregate package
Bug Fixes
- [win-bash] Verify the payload cache mandatory integrity label before mount to end Low-integrity bash write failures (#2007)
- [win-bash] Publish the executable tree into an isolated cache root outside
DSH_HOMEon a Low-labelled data tree - [remote-bridge] Anchor the LAN rule to the whole hostname so a public name such as
10.example.comis never printed as a local address - [remote-bridge] Share one address rule between the panel and the host log so the two classifications cannot disagree
- [remote-web-ui] Erase the plugin card seat event signature to
neverparameter types forcordis4.1.0 - [agents] Stop counting
sessionProjections.stateOfamong the required host faces
Other Changes
- [deps] Advance the family cohort to DSH
0.2.2-rc.1(stopping at0.2.2-alpha.3on the way), withcordisat4.1.0,schemasteryat3.19.0andcosmokitat1.9.0 - [deps] Move CI and the release workflow to Node 24.9.0
- [skins] Move the skins gitlink for the verdandi readout strip, the diagrams contract rows and the Git graph styling retirement
- [market] Rebuild the store artifacts and editor picks from the new skins gitlink (151 plugins)
- [readme] Sync the contributor list from the GitHub API
- [readme] Drop the Git graph and worktree entries and add the
dsh-diagramspackage row - [docs] Record the
marketing/directory convention for promo film projects - [notes] Record the 2026-11-03 upstream Agent Teams review and why the fork baseline stays put
- [notes] Record the decisions on the
0.2.2-rc.1cohort, thedsh-git-graphretirement and the LiangShen dispatch guard - [test] Cover the located-address copy path and the address source in the pairing panel tests
- [test] Build both sides of the second connector state path assertion with
node:pathto stay platform-neutral