github zhu1090093659/dsh-web v0.4.6
dsh-web v0.4.6

6 hours ago

本次发布把连神行(liangshen)行改为随 bundle 默认启用,并补齐它的调度器身份与子模型选择;任务看板获得原生的一次性定时执行与带次数上限的周期执行,验收门禁进一步收紧;工坊新增「安装全部缺失项」的批量动作。使用量的 Token 银行改为由显式路由白名单铸造,插件管理器改为从自身 manifest 读取正在运行的 DSH,SSH 死链退役端口转发隧道而不再拖垮宿主。宿主下限与 0.4.5 一致,仍为 >=0.2.0-rc.2,本版本没有需要手工迁移的改动。四个卫星仓(皮肤中心、宠物、社区插件索引、预设中心)已先发布 0.4.6,本仓随后打 tag,聚合包按 semver 消费它们。

重要变更(宿主下限不变,仍为 >=0.2.0-rc.2):本版本没有上移家族包声明的 dsh.engines.dsh 下限,它自 0.4.5 起就是 >=0.2.0-rc.2,同名 host peer 一并保持一致,因此宿主不需要为本次更新做任何准备。dsh-web-settings 退役了 0.1.7 时代的孤立 section 修复路径(legacy-import.ts 及其规格一并删除):若某部署仍依赖该自动修复处理 0.1.7 前后遗留的设置文档,建议自行核对设置文档,其余场景不受影响;设置文档读取器本身保留。除此之外没有重命名任何已持久化的标识符、线协议字段或 profile 格式,任务看板新增的调度与验收字段在缺省时按既有行为执行。

新功能

  • [dsh-web-all] 连神行行随 bundle 默认启用
  • [liangshen] 交付调度器身份,并修正守卫默认值
  • [task-board] 原生一次性定时执行,以及带次数上限的周期执行
  • [task-board] 验收门禁拒绝无证据否决、约束验收详情、把 /goal 开关收敛为全局
  • [task-board-github] 仓库列表可折叠,每行按两行显示
  • [usage] Token 银行由显式路由白名单铸造 (#1831)
  • [market] 新增「安装全部缺失项」批量动作,只出一份汇总报告

修复

  • [liangshen] 派生子代理的行加入子模型选择 (#1833)
  • [task-board] 区分「门禁从未被触发」与「交付被否决」 (#1837 #1838)
  • [task-board] 判题异常时挂起验收周期,并支持记录外部判定结果 (#1828 #1826)
  • [task-board] 读取时约束验收详情长度,并给清理过的尝试命名
  • [task-board] 终态原因标明「仅含非法项」的验收
  • [task-board] /goal 选择项默认关闭,卡片开关保持可用
  • [task-board] 退还会话尚未创建即启动失败的定时执行名额
  • [task-board] 空闲宿主不再轮询会话名册
  • [task-board] agent preset 名册改由 Remote 命名空间到达时填充
  • [task-board] 轮询节奏文案与已发布的门禁对齐
  • [task-board-github] GitHub 工具结果保持无损 JSON
  • [ssh] SSH 死链退役其端口转发隧道,不再拖垮宿主 (#1840)
  • [remote-web-ui] 启动恢复推迟到页面加载完成之后 (#1845)
  • [remote-web-ui] 竖屏下悬浮控件留在输入行内 (#1829)
  • [remote-web-ui] 输入框尾行收在卡片内
  • [session-archive] 归档卡片文案改由 locale 服务解析 (#1830)
  • [plugin-manager] 从自身 manifest 读取正在运行的 DSH,并拆分「未验证」判定
  • [plugin-manager] set-enabled 的 patch 写入脱离 HMR 事务
  • [market] 安装全部的 gateway 覆盖项按卡片自有 prop 定型
  • [scripts] 物化市场夹具时跳过包管理器缓存

其他改动

  • [settings,market] 退役旧家族设置导入路径;工坊 worker 的 HTTP API 收敛为一份描述权威(18 条路由,含此前两份文档都未覆盖的 4 条)
  • [market] 商店产物随 miku 边框修复与 macOS 侧栏修复重建,皮肤中心内容跟随四个卫星仓的 0.4.6 一起刷新
  • [satellites] 四个卫星仓的 gitlink 迁移到各自的发布提交;皮肤与宠物的开发者技能迁入对应卫星仓
  • [perf] TypeScript 程序改为增量编译;git-graph 状态探测收敛为三个进程;session-archive 在一次 pass 内复用投影缓存索引解析与会话根遍历;覆盖率门禁的包运行改为有界并发
  • [refactor] 合并单消费者的共享模块;任务看板从 state() 发放一级任务副本;sync-shared 的假树改由 manifest 派生
  • [lib] 重建聚合包 bundle 并刷新其 sourcemap 与记录指纹
  • [docs] 记录 #1816/#1818 的处置、一次性调度与验收规则,以及 0.4.5 的发布验证快照

English

This release ships the liangshen row enabled by default and fills in its dispatcher identity and child-model selection, gives the task board native one-shot schedules with capped recurring runs and tightens its acceptance gate, and adds an install-all-missing bulk action to the Workshop. The usage Token Bank is now minted from an explicit route whitelist, the plugin manager reads the running DSH from its own manifest, and a dead SSH link retires its port-forward tunnel instead of taking the host down. The host floor is unchanged from 0.4.5 at >=0.2.0-rc.2, and no manual migration is needed. The four satellite repositories (skin center, pet, community plugin index, preset center) already published 0.4.6; this repository tags afterwards and the aggregate consumes them by semver.

Important change (the host floor is unchanged at >=0.2.0-rc.2): this release does not move the dsh.engines.dsh floor the family packages declare, which has been >=0.2.0-rc.2 since 0.4.5, with the matching host peer kept in step, so no host preparation is needed for this update. dsh-web-settings retires the 0.1.7-era orphaned-section repair (legacy-import.ts and its spec are gone): a deployment still relying on that automatic repair over settings documents left behind around 0.1.7 should check those documents itself, and every other scenario is unaffected; the settings-document readers themselves stay. Otherwise no persisted identifier, wire-protocol field or profile format was renamed, and the task board's new scheduling and acceptance fields fall back to the previous behaviour when absent.

New Features

  • [dsh-web-all] Ship the liangshen row enabled by default
  • [liangshen] Deliver the dispatcher identity and fix the guard defaults
  • [task-board] Native one-shot schedules and capped recurring runs
  • [task-board] Reject evidence-free vetoes, bound acceptance detail and make the /goal switch global
  • [task-board-github] Collapse the repository list and give each row two lines
  • [usage] Mint the Token Bank from an explicit route whitelist (#1831)
  • [market] Add an install-all-missing bulk action with one aggregated report

Bug Fixes

  • [liangshen] Opt the spawn delegation row into child-model selection (#1833)
  • [task-board] Tell a never-invoked acceptance gate apart from a rejected delivery (#1837 #1838)
  • [task-board] Hold the acceptance cycle on judge anomalies and record external outcome verdicts (#1828 #1826)
  • [task-board] Bound acceptance detail on read and name a cleaned attempt
  • [task-board] Name the invalid-only acceptance in the terminal reason
  • [task-board] Default the /goal opt-in to off and keep the card switch operable
  • [task-board] Refund a scheduled run whose launch failed before any session
  • [task-board] Stop the idle host from polling the session roster
  • [task-board] Feed the agent-preset roster from the Remote namespace arrival
  • [task-board] Align the poll-cadence copy with the shipped gate
  • [task-board-github] Keep every GitHub tool result lossless JSON
  • [ssh] A dead SSH link retires its port-forward tunnel instead of taking the host down (#1840)
  • [remote-web-ui] Defer boot recovery until page load completes (#1845)
  • [remote-web-ui] Keep the portrait composer floats on the composer row (#1829)
  • [remote-web-ui] Contain the composer trailing line inside the card
  • [session-archive] Resolve the archive card copy through the locale service (#1830)
  • [plugin-manager] Read the running DSH from its own manifest and split the unverified verdict
  • [plugin-manager] Detach the set-enabled patch write from the HMR transaction
  • [market] Type the install-all gateway override as the card's own prop
  • [scripts] Skip the package-manager cache when materializing the market fixture

Other Changes

  • [settings,market] Retire the legacy family-settings import, and give the Workshop worker's HTTP API one description authority (18 routes, including the four neither document covered)
  • [market] Rebuild the store artifacts for the miku chrome fix and the macOS sidebar fix, refreshing skin center content with the four satellites' 0.4.6
  • [satellites] Move the four satellites' gitlinks to their release commits, and move the skin and pet developer skills into their own repositories
  • [perf] Make the TypeScript programs incremental, cut the git-graph status spawn plan to three processes, reuse the session-archive projection-cache index parse and sessions-root walk within a pass, and run the coverage-gate packages with a bounded fleet
  • [refactor] Consolidate single-consumer shared modules, hand out one-level task copies from state() and derive the sync-shared fake tree from the manifest
  • [lib] Rebuild the aggregate bundles and refresh their sourcemaps and recorded fingerprints
  • [docs] Record the #1816/#1818 resolutions, the one-shot scheduling and acceptance rules, and the 0.4.5 release validation snapshot

Don't miss a new dsh-web release

NewReleases is sending notifications on new releases.