Skip to content

dsh-web v0.3.4

Choose a tag to compare

@github-actions github-actions released this 25 Aug 12:40
· 148 commits to dev since this release

本次发布包含 16 项新功能、18 项修复、18 项其他改动。

新功能

  • [dsh-pet] 以代币经济统一 miku 玩法
  • [skin-center] WE 皮肤 v0.2.0 针对壁纸专属场景的优化
  • [dsh-pet] frames2d 渲染器与玩法契约,miku 作为 Workshop 宠物
  • [dsh-pet] 以 frames2d 玩法宠物形态发布 miku
  • [dsh-pet] 新增客户端玩法 HUD 与循环
  • [dsh-pet] 新增玩法契约、宿主引擎与动词路由
  • [dsh-pet] 新增 frames2d 客户端渲染器,含相位映射与拖拽轨迹
  • [dsh-pet] 在宿主注册表中解析 frames2d 宠物
  • [skins] 完成 orca-link v2 移植,含完整钩子、预览与 Workshop 资产
  • [dsh-pet] 为 v2 清单契约新增 frames2d 渲染器种类
  • [skins] 新增 orca-link v2 资产皮肤(移植自 Small-tailqwq/dsh-deep-whale)
  • [pet] 新增 OUO Neko v2 伴侣 (#1118)
  • [skins] 新增 Skyrail Cabin 皮肤 (#1087)
  • [market] 将设置段入口 id 隔离到 dsh-workshop,避免与其他插件市场的槽位冲突
  • [community] 将 dsh-context 调整至第四位
  • [web] 简化 Workshop 与编辑挂起任务

修复

  • [dsh-pet] 玩法卡片改在宠物旁边打开
  • [dsh-pet] 玩法入口移入悬停面板
  • [desktop-launcher] 将快捷方式 WorkingDirectory 隔离到 scriptsDir (#1159)
  • [runtime] 解决 Workshop 安装、壁纸降级、原生图片、重试与 ptc 问题 (#1141 #1145 #1154 #1155 #1153 #1149)
  • [issues] 将所有 issue 路由给协作者
  • [settings-card] 卡片头部不再超出卡片边界
  • [dsh-pet] 玩法卡片从宠物停靠处向上展开
  • [skin-center] 将 token 审计的 at-rule 递归限定在自身块内
  • [doctor] 客户端 API 前缀默认改为 /api/doctor
  • [skill-explorer, pet] 技能列表支持活动会话工作目录 (#1139),并移除侵入式宠物关闭按钮 (#1126)
  • [liangshen] PTC 模式切换时广播 tools/presentation-changed (#1128)
  • [skin-center] 改用行 scroll-margin 而非滚动视口 scroll-padding,避免光标漂移 (#1133)
  • 解决 Windows 与 macOS 的路径分隔符与权限差异
  • [remote-web-ui] 移动端斜杠命令改经宿主命令注册表路由 (#1125)
  • [skin-center] 确保暗色模式推荐徽章对比度 (#1117)
  • [skins] 恢复 maid-atelier 系统对话框层级 (#1116)
  • [market] 以符合规范的头部偏移重写 zipStore (#1050)
  • [skin-center] 防止 scope 回放覆盖 v2 背景状态 (#1109, #1107)

其他改动

  • [readme] 从 GitHub API 同步贡献者列表
  • [process] 标记 issue 回退决策已被取代
  • [dsh-market] 刷新含 settings-card box-sizing 修复的客户端 bundle
  • [readme] 将第三方来源登记为折叠列表并补齐许可缺口
  • [notes] 记录 frames2d 与玩法契约及 miku 迁移
  • [dsh-web] dsh-miku-pet 插件包在窗口内重新加入后又移除(从未发布,miku 以 dsh-pet 的 frames2d 玩法宠物形式承接)
  • [notes] 记录 orca-link 商店上架的 Workshop 部署轮次
  • [skin-center] 在 token 审计边界修复后重建 lib
  • [market] Workshop 在 dev 推送时部署,与发布解耦
  • [notes] 记录 PR #1118 完成并在维护运行中合入
  • [notes] 记录 2026-08-25 维护运行(skyrail cabin 合入、社区插件证据门禁)
  • [readme] 移除月度下载徽章
  • [readme] SEO 优化,补充救援模式与 liangshen 章节
  • [ui] 优化移动端 bundle 压缩、技能中心样式与皮肤背景遮挡 (#1066, #1112, #1000)
  • [market] 重建皮肤 zip 归档与 dist 清单 (#1050)
  • [issues] 默认 issue 路由到 Aa728848

兼容性说明:本版本通过自动升级兼容性审计(对比 v0.3.3 与 v0.3.4 的包身份、profile 写入、持久化标识、线协议与跨平台生命周期),未发现需要阻断的变更。dsh-market 的设置段入口 id 由 dsh-web-ui-market 改为 dsh-workshop(设置命名空间与已保存配置不变,没有任何按段入口 id 持久化的状态),库存档配置不受影响。dsh-pet 的 $DSH_HOME/pet.json 新增可选 gameplay 字段(旧文档加载为空映射;旧货币在结算时确定性并入点心账本,不删除已有数据)。其余持久化标识(dsh-web-ui-telemetry-*、dsh-market-web-fp、皮肤背景命名空间、skin-center-active.json、task-board ledger、doctor 状态目录)均保持冻结;API 路径仅新增、无移除或改名。

Doctor 自动迁移默认开启,覆盖 dsh-doctor launch、Doctor 服务启动与 dsh-doctor migrate;裸 dsh web 不经过 Doctor preflight。

本版本是旧聚合包 @linxin666/dsh-web-ui-all 双发布过渡窗口的第二个也是最后一个版本:v0.3.4 仍会发布带 dsh.migrate 元数据的旧包对应版本,此后的版本不再发布旧包,并改为执行 npm deprecate。旧 profile 的自动迁移使用 shared/host/legacy-migration.ts 的确定性映射,plugin-manager 与 Doctor 行为一致。

本版本验证了全新安装、迁移单元测试与 Linux CI 挂载 smoke;未宣称上一版本到目标版本的真实升级演练,也未宣称 macOS / Windows 的真实升级矩阵。旧 profile 需要手动恢复时,请先备份 profile 目录中的 package.json 与 pnpm-lock.yaml,再按以下顺序执行:

dsh plugin --profile web add @linxin666/dsh-web-all@0.3.4
dsh plugin --profile web remove @linxin666/dsh-web-ui-all
dsh --profile web --dump-config

若迁移失败,保留备份并不要启动裸 dsh web;修复 profile 后再次执行 --dump-config。

English

This release contains 16 new features, 18 bug fixes, 18 other changes.

New Features

  • [dsh-pet] unify miku gameplay on the treats economy
  • [skin-center] WE skin v0.2.0 optimizations for wallpaper-exclusive scenarios
  • [dsh-pet] frames2d renderer and gameplay contract, miku as a Workshop pet
  • [dsh-pet] ship miku as a frames2d gameplay pet
  • [dsh-pet] add the client gameplay HUD and loops
  • [dsh-pet] add the gameplay contract, host engine and verb routes
  • [dsh-pet] add the frames2d client renderer with phase mapping and drag track
  • [dsh-pet] resolve frames2d pets in the host registry
  • [skins] complete orca-link v2 port with full hooks, previews and workshop assets
  • [dsh-pet] add frames2d renderer kind to the v2 manifest contract
  • [skins] add orca-link v2 asset skin (port of Small-tailqwq/dsh-deep-whale)
  • [pet] add OUO Neko v2 companion (#1118)
  • [skins] add Skyrail Cabin skin (#1087)
  • [market] isolate settings section id to dsh-workshop to prevent slot collisions with plugin markets
  • [community] add dsh-context at fourth position
  • [web] simplify workshop and edit pending tasks

Bug Fixes

  • [dsh-pet] open the gameplay card beside the pet
  • [dsh-pet] move the gameplay entry into the hover panel
  • [desktop-launcher] isolate shortcut WorkingDirectory to scriptsDir (#1159)
  • [runtime] resolve workshop install, wallpaper degradation, native images, retry and ptc issues (#1141 #1145 #1154 #1155 #1153 #1149)
  • [issues] route all issues to collaborator
  • [settings-card] keep the card header inside the card bounds
  • [dsh-pet] grow the gameplay card upward from the pet dock
  • [skin-center] bound token-audit at-rule recursion to its own block
  • [doctor] default client API base to /api/doctor
  • [skill-explorer, pet] support active session cwd in skill list (#1139) and remove intrusive pet close button (#1126)
  • [liangshen] broadcast tools/presentation-changed on PTC Mode switch (#1128)
  • [skin-center] use line scroll-margin instead of scrollport scroll-padding to avoid caret drift (#1133)
  • resolve cross-platform path separator and permission differences for Windows and macOS
  • [remote-web-ui] route mobile slash commands through host command registry (#1125)
  • [skin-center] ensure dark-mode tag contrast for recommended badge (#1117)
  • [skins] restore system dialog z-index in maid-atelier (#1116)
  • [market] rewrite zipStore with spec-compliant header offsets (#1050)
  • [skin-center] guard scope replay from overwriting v2 background state (#1109, #1107)

Other Changes

  • [readme] sync contributor list from GitHub API
  • [process] mark issue fallback decision superseded
  • [dsh-market] refresh client bundle with the settings-card box-sizing fix
  • [readme] register third-party sources as a folded list and fill the license gaps
  • [notes] record the frames2d + gameplay contract and miku migration
  • [dsh-web] the dsh-miku-pet plugin package was re-added and removed again inside the window (never published; miku ships as a dsh-pet frames2d gameplay pet)
  • [notes] record workshop deployment round for orca-link store listing
  • [skin-center] rebuild lib after token-audit bound fix
  • [market] deploy the Workshop on dev pushes, decoupled from releases
  • [notes] record PR #1118 completion and merge in maintenance run
  • [notes] record 2026-08-25 maintenance run (skyrail cabin merge, community plugin evidence gate)
  • [readme] remove monthly downloads badge
  • [readme] seo pass with rescue mode and liangshen sections
  • [ui] optimize mobile bundle compression, skill center styling, and skin background occlusion (#1066, #1112, #1000)
  • [market] regenerate skin zip archives and dist manifests (#1050)
  • [issues] route default issues to Aa728848

Compatibility: this release passed the automatic-upgrade compatibility audit (package identity, profile writes, persisted identifiers, wire protocol, and cross-platform lifecycle compared between v0.3.3 and v0.3.4); no blocking changes were found. The dsh-market settings section entry id changed from dsh-web-ui-market to dsh-workshop (the settings namespace and saved config are unchanged, and no state is persisted keyed by the section entry id), so existing saved configuration is unaffected. dsh-pet's $DSH_HOME/pet.json gains an optional gameplay field (old documents load as an empty map; legacy currencies are deterministically merged into the treat ledger on settle, existing data is never deleted). All other persisted identifiers (dsh-web-ui-telemetry-*, dsh-market-web-fp, skin background namespaces, skin-center-active.json, task-board ledger, doctor state directory) stay frozen; API paths are additive only, none removed or renamed.

Doctor auto-migration is enabled by default for dsh-doctor launch, the Doctor service launcher, and dsh-doctor migrate. A bare dsh web does not pass through the Doctor preflight.

This is the second and final version of the legacy aggregate dual-publish window: v0.3.4 still publishes the matching @linxin666/dsh-web-ui-all with dsh.migrate metadata, and later versions stop publishing the legacy package and run npm deprecate instead. Automatic migration of legacy profiles uses the deterministic map in shared/host/legacy-migration.ts, consistent between plugin-manager and Doctor.

This release validates fresh installation, migration unit tests, and the Linux CI mount smoke. It does not claim a real previous-version-to-target upgrade drill or a real macOS / Windows upgrade matrix. For manual recovery of a legacy profile, back up package.json and pnpm-lock.yaml in the profile directory, then run:

dsh plugin --profile web add @linxin666/dsh-web-all@0.3.4
dsh plugin --profile web remove @linxin666/dsh-web-ui-all
dsh --profile web --dump-config

If migration fails, keep the backup and do not start a bare dsh web; repair the profile and run --dump-config again.


本发布说明由维护者根据 v0.3.3 之后实际纳入本版本的变更整理。

This release note was prepared from the changes actually included after v0.3.3.