Download Latest Version dsh-web v0.4.14 source code.zip (810.9 MB)
Home / v0.4.13
Name Modified Size InfoDownloads / Week
Parent folder
dsh-web v0.4.13 source code.tar.gz 2026-10-31 806.1 MB
dsh-web v0.4.13 source code.zip 2026-10-31 810.4 MB
README.md 2026-10-31 24.9 kB
Totals: 3 Items   1.6 GB 0

本次发布包含多项核心架构升级与新特性:远程访问链路(remote-bridge)接管全部网络接入基建并收敛入站网关,家族聚合包正式退役旧浏览器镜像 remote-web-ui;任务看板引入基于 Go 独立自建中枢 team-hub 的团队协作扩展体系,并支持卡片图片与文件附件;浏览器视图新增直连外部浏览器的 real-browser CDP 模式;官方插件页面接入统一展示元数据通道与内置插件分组。四个卫星仓在本版同版本对齐到 0.4.13,其中皮肤中心彻底修复 Windows 平台原生 addon 引起的插件安装阻塞缺陷。

远程接入栈完整迁入 remote-bridge,聚合包退役 remote-web-ui:网络接入基建(中继注册、云穿透隧道、Durable Object 连接器、局域网绑定转发与防火墙控制)全数收敛至 packages/dsh-remote-bridge,新增仅绑定回环地址的入站网关(ingress-gate),严格将外部暴露面收敛至 /ios/v1 协议。家族聚合包 @linxin666/dsh-web-all 移除 remote-web-ui 挂载行,存量 profile 凭 tombstone 导出与 retiredPlugins 清单平滑兼容,不中断启动流程;中继身份目录与设备状态保留历史路径,已配对移动端无需重新配对。 任务看板团队协作与 Go 单二进制自托管服务 team-hub:引入多 Host 共享的团队协作扩展(@linxin666/dsh-task-board-team),配合全新独立 Go 服务 team-hub(SQLite 存储、内存重放与实时 WebSocket 频道,零外部依赖)。看板扩展契约新增 followUp 与 rework 可选能力;支持人类或 Agent 负责人、GitHub OAuth 登录与管理员邮箱初始化引导、Host Token 节点认领与带租约执行、待答问题求助路由与前置运行工作区认领闸门。 任务看板支持卡片附件,隔离模型凭据:看板 schema 升级至 v7,卡片支持上传图片与文件附件;账本严格遵循「只存元数据与 sha256 摘要,绝不存原始字节」,字节经由官方附件存储(ctx.attachments)校验。修复模型选择器中提供商名称的展示;provider 集成凭据不再裸露在线上广播账本中。 浏览器视图新增真实浏览器 CDP 模式:dsh-browser-view 新增对外部 Chrome/Edge 进程 CDP 端点(http://127.0.0.1:9222)的直连接管模式(显式 opt-in),支持在真实 profile 登录态下接管页面与投屏,且不干扰默认隔离浏览器模式。 插件页展示元数据与内置插件分组:全家族包补齐官方 locale/<lang>.json 展示元数据(支持中英双语,部分含俄语),聚合包家族行展示面向用户的本地化名称;官方插件页面底部新增内置插件分组与更新检测工具栏;彻底清除 5 个历史已退役家族的空壳导出。 四个卫星仓同版本对齐到 0.4.13:四个卫星仓先发并对齐至 0.4.13。皮肤中心(dsh-skins,66ec9f1)将 CSS 安全转换隔绝在短生命周期 worker 进程中,彻底解决 Windows 下原生 addon 导致插件安装失败的问题;宠物(dsh-pet,9ccb048)、社区插件索引(dsh-community-plugins,3b0673d)与预设中心(dsh-presets,92c3154)在本区间无功能变更,同批对齐发布。

升级须知

  • 更新任务误报已在 0.4.13 修复:plugin-manager 不再把 pnpm 11 的构建脚本门禁(ERR_PNPM_IGNORED_BUILDS)造成的非零退出码报成失败;此前该情形会被报成更新失败,而安装其实已经生效。措辞按本版修复处理,状态判定与实际安装结果保持一致。
  • 远程访问路径变更:浏览器配对路径随 remote-web-ui 从聚合退役,手机端走 remote-bridge 的 /ios/v1 协议;若此前曾单独安装过 @linxin666/dsh-remote-web-ui,升级后必须卸载它(否则与 bridge 争同一个中继身份与租约)。已配对的移动端无需重新配对。
  • 两处行为变化:设置页「内置插件」分区由聚合默认下线(禁用本插件可恢复);任务看板 wire 不再下发 provider 集成凭证字段。
  • 0.3.x 存量人工迁移:不存在 Doctor 预启动迁移;旧包 @linxin666/dsh-web-ui-all 冻结在 0.3.6 且已 deprecated,其网关在当前运行时(rc.5)不服务,无法 GUI 自动迁移。给出可执行的三步迁移步骤:
  • dsh plugin remove @linxin666/dsh-web-ui-all
  • dsh plugin add @linxin666/dsh-web-all@0.4.13
  • 把 dsh.profile.bundles 里的旧名原位替换为新名 @linxin666/dsh-web-all(官方 CLI 只写 dependencies,不写 bundles;漏掉第三步会 skipping profile bundle)。

若迁移中途中断(profile 变成空 dependencies、bundles 仍指旧名),不要按提示执行 dsh plugin install(会把已废弃的 0.3.6 装回来),按上面三步重做。

  • 平台验证声明:本版在 macOS 实测通过;Linux 与 Windows 未验证。未验证的具体面包括:新增回环监听(ingress-gate)、$DSH_HOME/remote-bridge/model-efforts.json 的新权限位(目录 0700 / 文件 0600)、以及 task-board-team 的路径解析(含 Windows 盘符与 ~,只读)。
  • 退役家族说明:doctor / desktop-launcher / dsh-perf / describe-image / model-capabilities 五个家族的残留导出已清除,它们在 0.4.12 就已不挂载,无功能损失;残留行会被记为 failed import 但不影响宿主启动。

新功能

  • [remote-bridge] 接管网络接入栈,并从聚合包中退役 remote-web-ui
  • [task-board] 支持卡片附件
  • [team-hub] 成员支持通过评论可 @ 的 handle 标识命名
  • [team-hub] 支持通过账号服务按邮箱初始化首个管理员
  • [team-hub] 支持通过账号服务按邮箱邀请成员
  • [team-hub] 在成员传输形态中暴露 account_user_id
  • [team-hub] 新增 Go 静态单二进制自托管运行时
  • [team-hub] 新增 Node 自托管运行时
  • [plugin-manager] 在官方插件页面列出内置插件
  • [team-hub] 支持凭账号服务断言完成成员登录
  • [remote-bridge] 支持经由托管中继投递推送通知
  • [remote-bridge] 在设备花名册中携带中继令牌
  • [team-hub] 支持初始化首个团队及其首位管理员
  • [plugins] 本地化插件页展示元数据并彻底移除退役家族
  • [browser-view] 新增真实浏览器 CDP 模式
  • [remote-bridge] 记住每个模型的推理强度配置
  • [team-hub] 强制执行 A4 Host 契约
  • [task-board] 支持从扩展任务草稿转发执行目标
  • [task-board-team] 新增 team-hub provider 扩展包
  • [team-hub] 新增 Agent 花名册并重塑问题与活动流形态
  • [team-hub] 新增 issue 状态机、租约、问题、评论、收件箱与路由
  • [team-hub] 新增 GitHub 登录、会话与 Host 令牌、成员关系与 APNs 推送
  • [team-hub] 新增 D1 schema、核心模块与团队频道
  • [task-board] 看板扩展契约新增可选的 follow-up 与 rework 能力

修复

  • [remote-bridge] 向配对二维码提供 socket URL,而非源地址自身的协议方案
  • [remote-bridge] 将配对触发按钮安放在页脚末端
  • [market] 适配皮肤 CSS 隔离转换
  • [task-board] 在选择器中展示模型提供商
  • [team-hub] 正确解析含转义换行的 APNs p8 密钥
  • [team-hub] 统一会话密钥环境变量名称
  • [task-board] provider 集成凭据不暴露在看板广播数据中
  • [remote-bridge] 中继推送时同步传递卡片解除状态
  • [task-board-team] 仅在绑定有效运行工作区时认领 issue
  • [remote-bridge] 仅丢弃判定为过期的档位,且仅在确实过期时丢弃
  • [remote-bridge] 保留可读的推理强度行并扣留过期档位
  • [task-board-team] 对客户端服务进行探测而非直接读取
  • [git-graph] 消除分支胶囊定位引发的反馈死循环 (#1972)
  • [task-board-team] 在令牌修复与重连期间保留待结算项并与 hub 对齐
  • [task-board-team] 尚有待结算项时不再认领新卡片,对齐 hub 准入门禁
  • [task-board-team] 对 hub 回复已过期的结算停止无效重试
  • [task-board-team] 通过单次在途请求认领返工,对被拒绝的结算执行重试
  • [team-hub] 每次全新认领时铸造新的尝试编号
  • [team-hub] 遇到冲突的 Agent 名称时跳过而非导致整批注册失败
  • [team-hub] 按限额命名 Host 配额测试并列出邀请状态码
  • [task-board-team] 在频道升级请求头中提供 Host Token
  • [task-board-team] 严格契合冻结的传输样例
  • [task-board-team] 经由草稿钉住成员预设并等待 hub 应答

其他改动

  • 将远程访问呈现为移动端 App,不再展示已退役的浏览器镜像路径
  • [market] 按钉住的输入源同步市场静态资产
  • [satellites] 钉住皮肤中心 CSS worker 修复提交
  • [team-hub] 对齐初始化引导契约、文档与笔记中的邮箱查询逻辑
  • [team-hub] 退役 Worker 与 Node 实现,保留单一 Go hub 实现
  • [archive] 将跨仓相对链接替换为纯文本引用
  • [archive] 修复断言 jwks 端点并收紧环境矩阵
  • [archive] 补充自托管服务部署交接文档
  • [task-board] 记录团队协作功能交付总结
  • 移除空文件
  • [remote-bridge,task-board-remote] 调整两处测试用例以符合 test-standards BDD 规范
  • [task-board-remote] 在传输层钉住镜像卡片的团队载荷
  • [notes] 记录中继投递的技术路线与决策
  • [remote-bridge] 补充中继链路测试覆盖
  • [notes] 将团队协作笔记迁移至 implemented 并记录部署事实
  • [task-board-team] 采纳 hub 端初始化引导契约样例
  • [archive] 归档已部署 team-hub 的交接记录
  • [team-hub] 在 workers.dev 域名下提供 hub 服务
  • [team-hub] 将部署指向已创建的 D1 数据库
  • [team-hub] 改用 cf 工具而非 wrangler 进行部署
  • [team-hub] 统一通过 cf 命令行工具部署
  • [market] 再次按钉住的输入源同步市场资产
  • [sync-shared] 适配浏览器设置卡片的跨包副本同步
  • [task-board-team] 使账本路径断言具备跨平台兼容能力
  • [archive] 补充 git-graph 分支胶囊验证截图 (#1972)
  • [task-board-team] 列明哪些结算拒绝属于可重试情形
  • [task-board-team] 按其实际测试内容为租约失效认领测试命名
  • [task-board-team] 将过期的结算明确描述为终态
  • [task-board-team] 明确评论线程比对所读取的样例名称
  • [task-board-team] 阐明认领、重连与结算的具体行为
  • [team-hub] 阐明谁负责铸造 attempt 以及命名冲突的处理方式
  • [team-hub] 逐一校验每个契约样例元素与每项事件
  • [team-hub] 指出规格正文中仍存在出入的一处状态码
  • [team-hub] 记录 A4 阶段决策与待同步正文
  • [team-hub] 敲定 Host 契约、socket 鉴权与令牌单元
  • [team-hub] 发布 Host 契约样例文件
  • 在按路径过滤的车道中运行 team-hub 类型检查与测试
  • [task-board] 记录任务草稿执行目标的设计事实
  • [team-hub] 将实现决策吸纳进通信协议规范
  • [task-board-team] 注册包并在词表中补充俄文文案
  • [team-hub] 定义 Agent 列表、问题与活动流的传输结构
  • [team-hub] 记录部署输入项与协议偏离点
  • [team-hub] 搭建独立 Workers 工程脚手架
  • [team-hub] 补充身份、收件箱、问题与活动的只读接口
  • [task-board] 在包契约规则中列出 follow-up 与 rework
  • [task-board] 在扩展契约笔记中记录 follow-up 与 rework
  • [team-hub] 明确返工执行前必须先认领
  • [team-hub] 补齐协议评审中发现的缺失项
  • [team-hub] 新增 team-hub 通信协议规格 v1
  • [notes] 提出任务看板团队协作扩展提案
  • [plugin-manager] 明确迁移映射表的唯一写入者
  • [readme] 从 GitHub API 同步贡献者名单

English This release delivers core architectural upgrades and new capabilities: the remote access path (`remote-bridge`) takes over the full network ingress infrastructure with a hardened ingress gate, while the aggregate package officially retires the legacy browser mirror `remote-web-ui`; the task board introduces team collaboration powered by the standalone Go self-hosted hub `team-hub` and adds card attachments for images and files; the browser view introduces a real-browser CDP mode; and official plugin page display metadata and built-in plugin grouping are established. The four satellite repositories align to `0.4.13`, with the skin center isolating CSS safety transforms in short-lived workers to eliminate plugin installation failures on Windows. > **The remote ingress stack moves into `remote-bridge`, and the aggregate retires `remote-web-ui`**: All network ingress infrastructure (relay registry, cloudflared tunnels, Durable Object connectors, LAN forwarding and firewall controls) converges into `packages/dsh-remote-bridge`. A loopback-only ingress gateway (`ingress-gate`) strictly restricts the external attack surface to the `/ios/v1` protocol. The aggregate `@linxin666/dsh-web-all` removes `remote-web-ui`, with existing profiles smoothly supported via tombstone exports and `retiredPlugins` registration without launcher interruptions; relay identity and device states keep their historical paths so paired devices remain paired. > **Task board team collaboration and the Go standalone service `team-hub`**: Introduces multi-host team collaboration via `@linxin666/dsh-task-board-team` and the standalone Go service `team-hub` (SQLite storage, in-memory replay and real-time WebSocket channels, zero external dependencies). The task board extension contract adds optional `followUp` and `rework` capabilities, supporting human or Agent assignees, GitHub OAuth login and admin email bootstrap, Host Token node claims with leases, question routing and workspace claim gates. > **Task board card attachments and credential isolation**: The task board schema upgrades to v7, supporting image and file card attachments. The ledger stores metadata and sha256 digests only—never raw bytes—with bytes validated through official attachment storage (`ctx.attachments`). Model pickers now display the model provider name, and provider integration credentials stay off the public board wire. > **Browser view gains real-browser CDP mode**: `dsh-browser-view` adds an explicit opt-in mode connecting directly to an external Chrome/Edge CDP endpoint (`http://127.0.0.1:9222`), allowing page inspection and screencasting using real profile logins without altering the default isolated browser mode. > **Plugin page display metadata and built-in plugin group**: All family packages supply official `locale/<lang>.json` display metadata (bilingual Chinese/English, with Russian where applicable), rendering localized display titles in the aggregate; the official Plugins page gains a built-in plugin group and an update toolbar; five retired plugin shells are fully removed. > **The four satellite repositories align to `0.4.13`**: All four satellites publish first and align to `0.4.13`. The skin center (`dsh-skins`, `66ec9f1`) isolates CSS safety transforms inside short-lived worker processes, resolving Windows plugin install failures caused by native addons; pet (`dsh-pet`, `9ccb048`), community plugin index (`dsh-community-plugins`, `3b0673d`) and preset center (`dsh-presets`, `92c3154`) carry no functional changes and align their version numbers. ### Upgrade Notes - **Update Task False Alarms Fixed in 0.4.13**: `plugin-manager` no longer reports a non-zero exit code caused by pnpm 11's build script gate (`ERR_PNPM_IGNORED_BUILDS`) as a failure; previously this condition was reported as an update failure even though installation had already taken effect. Fixed in this release to align status reporting with actual installation results. - **Remote Access Path Changes**: The browser pairing path is retired from the aggregate along with `remote-web-ui`, and mobile devices connect via `remote-bridge`'s `/ios/v1` protocol; if `@linxin666/dsh-remote-web-ui` was previously installed **standalone**, it must be uninstalled after upgrading (otherwise it will contend with bridge for the same relay identity and lease). Paired mobile devices do not need to re-pair. - **Two Behavioral Changes**: The "Built-in Plugins" section in Settings is taken offline by default by the aggregate (disabling this plugin restores it); the task board wire no longer transmits provider integration credential fields. - **Manual Migration for 0.3.x**: There is no Doctor pre-launch migration; the legacy package `@linxin666/dsh-web-ui-all` is frozen at 0.3.6 and deprecated, and its gateway does not serve under the current runtime (rc.5), making automatic GUI migration impossible. Follow these three executable steps: 1. `dsh plugin remove @linxin666/dsh-web-ui-all` 2. `dsh plugin add @linxin666/dsh-web-all@0.4.13` 3. **In-place replace** the legacy name with the new name `@linxin666/dsh-web-all` in `dsh.profile.bundles` (the official CLI only writes `dependencies`, not `bundles`; omitting the third step results in `skipping profile bundle`). If migration is interrupted halfway (the profile ends up with empty `dependencies` while `bundles` still references the legacy package name), **do not** run `dsh plugin install` as prompted (which reinstalls the deprecated 0.3.6); redo the three steps above instead. - **Platform Verification Notice**: This release was tested and verified on macOS; Linux and Windows remain **unverified**. Specific unverified areas comprise: the newly added loopback listener (`ingress-gate`), new permission bits for `$DSH_HOME/remote-bridge/model-efforts.json` (directory 0700 / file 0600), and path resolution in `task-board-team` (including Windows drive letters and `~`, read-only). - **Retired Plugin Families Notice**: Residual exports for the five families `doctor` / `desktop-launcher` / `dsh-perf` / `describe-image` / `model-capabilities` have been cleared; they were already unmounted in 0.4.12, with no loss of functionality; residual lines will be logged as `failed import` but **do not affect host startup**. ### New Features - [remote-bridge] Take over the ingress stack and retire remote-web-ui from the aggregate - [task-board] Add card attachments - [team-hub] Name members by a mention handle a comment can @ - [team-hub] Bootstrap the first admin by email through the account service - [team-hub] Invite members by email through the account service - [team-hub] Expose account_user_id on the member wire shape - [team-hub] Add the Go self-hosted runtime as a static binary - [team-hub] Add self-hosted Node runtime - [plugin-manager] List built-in plugins on the official Plugins page - [team-hub] Sign members in with account service assertions - [remote-bridge] Deliver push notifications through the hosted relay - [remote-bridge] Carry the relay token in the device roster - [team-hub] Bootstrap the first team and its first admin - [plugins] Localize plugin page display metadata and remove retired families - [browser-view] Add real-browser CDP mode - [remote-bridge] Remember each model's reasoning effort - [team-hub] Enforce the A4 host contract - [task-board] Forward execution targets from an extension task draft - [task-board-team] Add the team-hub provider extension package - [team-hub] Add the agent roster and reshape questions and activity - [team-hub] Add the issue state machine, leases, questions, comments, inbox and router - [team-hub] Add GitHub login, session and host tokens, membership and APNs - [team-hub] Add the D1 schema, core modules and the team channel - [task-board] Add optional follow-up and rework provider capabilities ### Bug Fixes - [remote-bridge] Hand the pairing QR a socket URL, not the origin's own scheme - [remote-bridge] Seat the pairing trigger on the footer's trailing edge - [market] Support isolated skin CSS transform - [task-board] Show model provider in pickers - [team-hub] Read the APNs p8 key through its escaped newlines - [team-hub] Unify the session key environment name - [task-board] Keep provider integration credentials off the board wire - [remote-bridge] Carry the card dismissal across the relay push - [task-board-team] Claim issues only with a run workspace bound - [remote-bridge] Drop only the level judged stale, and only a really stale one - [remote-bridge] Keep readable effort rows and withhold stale levels - [task-board-team] Probe client services instead of reading them - [git-graph] Stop the hero chip placement feedback loop ([#1972](https://github.com/zhu1090093659/dsh-web/issues/1972)) - [task-board-team] Keep an owed settlement through a token fix and reconnect like the hub - [task-board-team] Never claim a card whose settlement is still owed, and match the hub gates - [task-board-team] Stop retrying a settlement the hub answered as expired - [task-board-team] Claim a rework through one flight and retry refused settlements - [team-hub] Mint a new attempt on every fresh claim - [team-hub] Skip a clashing agent name instead of failing the registration - [team-hub] Name the host quota test after its limit and list the invite status codes - [task-board-team] Present the Host Token in the channel upgrade header - [task-board-team] Conform to the frozen wire samples - [task-board-team] Pin the member preset through the draft and wait for the hub ### Other Changes - Present remote access as the phone app, not the retired browser path - [market] Sync assets with pinned inputs - [satellites] Pin skin CSS worker fix - [team-hub] Align bootstrap contract, docs, and notes with email lookup - [team-hub] Retire the Worker and Node implementations, keep the Go hub - [archive] Replace cross-repo relative links with plain text references - [archive] Fix assertion jwks endpoint and tighten env matrix - [archive] Add self-hosted services deployment handoff document - [task-board] Record team collaboration delivery summary - Remove empty file - [remote-bridge,task-board-remote] Meet test-standards BDD rules in two specs - [task-board-remote] Pin the mirror card's team payload on the wire - [notes] Record the relay delivery road - [remote-bridge] Cover the relay road - [notes] Migrate team collaboration note to implemented and record deployment facts - [task-board-team] Accept the hub-side bootstrap contract sample - [archive] Hand off the deployed team hub - [team-hub] Serve the hub on its workers.dev hostname - [team-hub] Point the deployment at the created D1 database - [team-hub] Deploy with cf instead of wrangler - [team-hub] Deploy through cf instead of wrangler - [market] Sync assets with pinned inputs - [sync-shared] Account for browser settings card copies - [task-board-team] Make ledger path assertion platform aware - [archive] Add the git-graph hero chip verification image ([#1972](https://github.com/zhu1090093659/dsh-web/issues/1972)) - [task-board-team] List which settlement refusals stay retryable - [task-board-team] Name the lapsed-lease claim test after what it exercises - [task-board-team] Describe an expired settlement as final - [task-board-team] Name the sample the comment-thread comparison reads - [task-board-team] State the claim, reconnect and settlement behaviour - [team-hub] State who mints the attempt and how a name clash registers - [team-hub] Compare every contract sample element and every event - [team-hub] Point at the one status code the spec text still contradicts - [team-hub] Record the A4 decisions and the text still to sync - [team-hub] Settle the host contract, socket auth and token units - [team-hub] Publish the host contract samples - Run team-hub typecheck and tests in a path-filtered lane - [task-board] Record the task draft execution targets - [team-hub] Fold implementation decisions into the protocol - [task-board-team] Register the package and add its Russian copy - [team-hub] Define agent list and question and activity wire shapes - [team-hub] Record deployment inputs and the protocol deviations - [team-hub] Scaffold the standalone Workers project - [team-hub] Add identity, inbox, question and activity reads - [task-board] List follow-up and rework in the package contract rules - [task-board] Record follow-up and rework in the extension contract note - [team-hub] Claim before rework - [team-hub] Close protocol review gaps - [team-hub] Add team-hub protocol specification v1 - [notes] Propose task board team collaboration extension - [plugin-manager] Make the migration map name its one writer - [readme] Sync contributor list from GitHub API --- Generated automatically by the release pipeline (scripts/release-notes.mjs).

由发布管线自动生成(scripts/release-notes.mjs)。

Source: README.md, updated 2026-10-31