diff --git a/README.md b/README.md index c0d60a6bf1..e66a7d0162 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ A **feature plugin** is an installable software module. A **skill** is a user-ma ![Standalone Skill plugin in the official Harness interface](docs/assets/screenshots/skill-standalone.png) -Standalone installation retains Harness branding and native navigation. The optional presentation bundle adds WorkDSH branding and its dark theme. +Standalone installation retains Harness branding and native navigation. The optional presentation bundle adds WorkDSH branding and the workbench composition. @@ -150,12 +150,12 @@ Each installable module has a matching **GitHub prerelease, versioned package, S | Module | Package version | Download | Scope | | --- | --- | --- | --- | | Library | `workdsh-plugin-library@0.1.0-alpha.1` | [Library `.tgz`](https://github.com/techflag/workdsh/releases/download/library-v0.1.0-alpha.1/workdsh-plugin-library-0.1.0-alpha.1.tgz) · [Release](https://github.com/techflag/workdsh/releases/tag/library-v0.1.0-alpha.1) | Local folders, full-text search, original previews, fixed revisions, and new-conversation context. | -| Skill management | `workdsh-plugin-skills@0.1.0-alpha.30` | [Skill `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-skills-0.1.0-alpha.30.tgz) · [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | Independently installable feature plugin. | -| Experts | `workdsh-plugin-experts@0.1.0-alpha.5` | [Expert `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-experts-0.1.0-alpha.5.tgz) · [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | Expert definitions and reviewed revisions composed with the official DSH Team runtime. | -| Connectors | `workdsh-plugin-connectors@0.1.0-alpha.1` | [Connector `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-connectors-0.1.0-alpha.1.tgz) · [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | Multiple stdio/HTTP MCP instances, official credential storage, health/tool discovery, and per-conversation tool isolation. | -| Activity | `workdsh-plugin-activity@0.1.0-alpha.4` | [Activity `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-activity-0.1.0-alpha.4.tgz) · [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | Visible task, skill, and expert-team activity. | -| Office | `workdsh-plugin-office@0.1.0-alpha.7` | [Office `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-office-0.1.0-alpha.7.tgz) · [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | Supported editable working copies, previews, and file export. | -| WorkDSH presentation | `workdsh-bundle@0.1.0-alpha.46` | [Presentation `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-bundle-0.1.0-alpha.46.tgz) · [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | Optional brand, theme, and workbench composition. Install feature plugins separately. | +| Skill management | `workdsh-plugin-skills@0.1.0-alpha.31` | [Skill `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-skills-0.1.0-alpha.31.tgz) · [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | Independently installable feature plugin. | +| Experts | `workdsh-plugin-experts@0.1.0-alpha.7` | [Expert `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-experts-0.1.0-alpha.7.tgz) · [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | Expert definitions and reviewed revisions composed with the official DSH Team runtime. | +| Connectors | `workdsh-plugin-connectors@0.1.0-alpha.2` | [Connector `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-connectors-0.1.0-alpha.2.tgz) · [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | Multiple stdio/HTTP MCP instances, official credential storage, health/tool discovery, and per-conversation tool isolation. | +| Activity | `workdsh-plugin-activity@0.1.0-alpha.4` | [Activity `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-activity-0.1.0-alpha.4.tgz) · [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | Visible task, skill, and expert-team activity. | +| Office | `workdsh-plugin-office@0.1.0-alpha.7` | [Office `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-office-0.1.0-alpha.7.tgz) · [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | Supported editable working copies, previews, and file export. | +| WorkDSH presentation | `workdsh-bundle@0.1.0-alpha.47` | [Presentation `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-bundle-0.1.0-alpha.47.tgz) · [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | Optional brand and workbench composition. Install feature plugins separately. | Workbench `alpha.10` is currently delivered within the presentation bundle. Shared UI, contracts, and the local identity/access/audit foundation are supporting packages, **not standalone end-user downloads**. See the [complete module map](docs/RELEASES.md). @@ -165,7 +165,7 @@ Workbench `alpha.10` is currently delivered within the presentation bundle. Shar Use **Node.js 22.19+ on the 22 LTS line, or Node 24+**, **pnpm 10.34.5**, and the official **Harness CLI `0.1.6-alpha.2`**. These commands assume `dsh` resolves to that CLI, rather than an older desktop launcher. -For the complete product, download every asset from [project release `v0.1.0-alpha.6`](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) into one directory. The Library is currently a separate prerelease, so also download the [Library Alpha package](https://github.com/techflag/workdsh/releases/tag/library-v0.1.0-alpha.1). Stop the target profile, `cd` to that directory, install the project bundle, then add the Library package separately: +For the complete product, download every asset from [project release `v0.1.0-alpha.7`](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) into one directory. The Library is currently a separate prerelease, so also download the [Library Alpha package](https://github.com/techflag/workdsh/releases/tag/library-v0.1.0-alpha.1). Stop the target profile, `cd` to that directory, install the project bundle, then add the Library package separately: ```sh node install-workdsh.mjs --profile workdsh @@ -180,12 +180,12 @@ dsh plugin --profile workdsh add "$PWD/workdsh-provider-identity-local-0.1.0-alp dsh plugin --profile workdsh add "$PWD/workdsh-plugin-audit-0.1.0-alpha.4.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-access-0.1.0-alpha.5.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-library-0.1.0-alpha.1.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-plugin-skills-0.1.0-alpha.30.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-plugin-experts-0.1.0-alpha.5.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-plugin-connectors-0.1.0-alpha.1.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-plugin-skills-0.1.0-alpha.31.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-plugin-experts-0.1.0-alpha.7.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-plugin-connectors-0.1.0-alpha.2.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-activity-0.1.0-alpha.4.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-office-0.1.0-alpha.7.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-bundle-0.1.0-alpha.46.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-bundle-0.1.0-alpha.47.tgz" dsh --profile workdsh ``` @@ -272,7 +272,7 @@ Public expert creation is reusable across domains, with methods, real Skill sele ### Native PPT editing preview -[Office alpha.7 project release and installable archive](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) +[Office alpha.7 project release and installable archive](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) ![WorkDSH 原生 PPT 编辑](docs/assets/screenshots/workdsh-ppt-live-preview.png) @@ -339,17 +339,17 @@ The current build inventory additionally includes the following package versions | [react-remove-scroll-bar](https://github.com/theKashey/react-remove-scroll-bar) | 2.3.8 | MIT | | [unicount](https://github.com/josephg/unicount) | 1.1.0 | ISC | -## 2026-09-19 Project alpha release / 项目级预览发行 +## 2026-09-20 Project alpha release / 项目级预览发行 -本批通过九个精确安装包的隔离官方 Web Profile 安装、匿名 401 / 认证 200 边界检查、Host 冷启动与全部模块移除后冷启动。完整构建、110 项集成测试、14 项活动测试、2 项规划测试通过。验证环境:Harness 0.1.6-alpha.2,Node 22.23.2,macOS。小时级专家团稳定性、任意 Office 保真及多平台整体验收尚未完成。 +本批修复设置页「外观」切换不生效(外观改由官方 ThemeRuntime 与用户偏好驱动,浅色/深色/跟随系统即时生效),能力中心删除「行业应用」标签,并修复设置导航重复的「Agent 预设」页。本批通过九个精确安装包的隔离官方 Web Profile 安装、匿名 401 / 认证 200 边界检查、Host 冷启动与全部模块移除后冷启动。完整构建、110 项集成测试、14 项活动测试、2 项规划测试通过。验证环境:Harness 0.1.6-alpha.2,Node 22.23.2,macOS。小时级专家团稳定性、任意 Office 保真及多平台整体验收尚未完成。 | 模块 | 安装包版本 | 下载 | | --- | --- | --- | -| experts | `workdsh-plugin-experts@0.1.0-alpha.5` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-experts-0.1.0-alpha.5.tgz) | -| skills | `workdsh-plugin-skills@0.1.0-alpha.30` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-skills-0.1.0-alpha.30.tgz) | -| connectors | `workdsh-plugin-connectors@0.1.0-alpha.1` | [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-connectors-0.1.0-alpha.1.tgz) | -| activity | `workdsh-plugin-activity@0.1.0-alpha.4` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-activity-0.1.0-alpha.4.tgz) | -| office | `workdsh-plugin-office@0.1.0-alpha.7` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-office-0.1.0-alpha.7.tgz) | -| bundle | `workdsh-bundle@0.1.0-alpha.46` | [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-bundle-0.1.0-alpha.46.tgz) | +| experts | `workdsh-plugin-experts@0.1.0-alpha.7` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-experts-0.1.0-alpha.7.tgz) | +| skills | `workdsh-plugin-skills@0.1.0-alpha.31` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-skills-0.1.0-alpha.31.tgz) | +| connectors | `workdsh-plugin-connectors@0.1.0-alpha.2` | [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-connectors-0.1.0-alpha.2.tgz) | +| activity | `workdsh-plugin-activity@0.1.0-alpha.4` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-activity-0.1.0-alpha.4.tgz) | +| office | `workdsh-plugin-office@0.1.0-alpha.7` | [Release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-office-0.1.0-alpha.7.tgz) | +| bundle | `workdsh-bundle@0.1.0-alpha.47` | [Project release](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) · [tgz](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-bundle-0.1.0-alpha.47.tgz) | 下载所需tgz后,使用官方CLI:`dsh plugin --profile add /absolute/path/.tgz`。基础身份、审计与授权配套见专家发行附件;各模块独立安装。仅发布GitHub alpha附件,未发布npm注册表。Office依赖引用与声明许可证见下文;现有notice及检查报告保留。 diff --git a/README.zh-CN.md b/README.zh-CN.md index 8e81bbc129..b5752c86ec 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -139,7 +139,7 @@ flowchart TB ![独立技能插件与官方 Harness 界面](docs/assets/screenshots/skill-standalone.png) -单独安装技能插件时保留 Harness 品牌和原生导航;可选展示组合包提供 WorkDSH 品牌及深色主题。 +单独安装技能插件时保留 Harness 品牌和原生导航;可选展示组合包提供 WorkDSH 品牌与工作台组合。 @@ -150,12 +150,12 @@ flowchart TB | 模块 | 包版本 | 下载 | 安装范围 | | --- | --- | --- | --- | | 资料库 | `workdsh-plugin-library@0.1.0-alpha.1` | [资料库 `.tgz`](https://github.com/techflag/workdsh/releases/download/library-v0.1.0-alpha.1/workdsh-plugin-library-0.1.0-alpha.1.tgz) · [发布页](https://github.com/techflag/workdsh/releases/tag/library-v0.1.0-alpha.1) | 本地目录、全文搜索、原件预览、固定修订与新对话上下文。 | -| 技能管理 | `workdsh-plugin-skills@0.1.0-alpha.30` | [技能 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-skills-0.1.0-alpha.30.tgz) · [项目发行](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | 可独立安装的 Harness 功能插件。 | -| 专家 | `workdsh-plugin-experts@0.1.0-alpha.5` | [专家 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-experts-0.1.0-alpha.5.tgz) · [发布页](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | 专家定义、已审阅修订及其与官方 DSH Team 运行时的组合。 | -| 连接器 | `workdsh-plugin-connectors@0.1.0-alpha.1` | [连接器 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-connectors-0.1.0-alpha.1.tgz) · [项目发行](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | 多 stdio/HTTP MCP 实例、官方凭据存储、健康与工具发现、按对话隔离工具。 | -| 工作动态 | `workdsh-plugin-activity@0.1.0-alpha.4` | [动态 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-activity-0.1.0-alpha.4.tgz) · [发布页](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | 显示任务、技能和专家团队工作状态。 | -| Office | `workdsh-plugin-office@0.1.0-alpha.7` | [Office `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-plugin-office-0.1.0-alpha.7.tgz) · [发布页](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | 支持范围内的可编辑工作副本、预览和文件导出。 | -| WorkDSH 展示组合 | `workdsh-bundle@0.1.0-alpha.46` | [展示 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.6/workdsh-bundle-0.1.0-alpha.46.tgz) · [项目发行](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) | 可选品牌、主题与工作台组合;功能插件按需独立安装。 | +| 技能管理 | `workdsh-plugin-skills@0.1.0-alpha.31` | [技能 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-skills-0.1.0-alpha.31.tgz) · [项目发行](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | 可独立安装的 Harness 功能插件。 | +| 专家 | `workdsh-plugin-experts@0.1.0-alpha.7` | [专家 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-experts-0.1.0-alpha.7.tgz) · [发布页](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | 专家定义、已审阅修订及其与官方 DSH Team 运行时的组合。 | +| 连接器 | `workdsh-plugin-connectors@0.1.0-alpha.2` | [连接器 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-connectors-0.1.0-alpha.2.tgz) · [项目发行](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | 多 stdio/HTTP MCP 实例、官方凭据存储、健康与工具发现、按对话隔离工具。 | +| 工作动态 | `workdsh-plugin-activity@0.1.0-alpha.4` | [动态 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-activity-0.1.0-alpha.4.tgz) · [发布页](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | 显示任务、技能和专家团队工作状态。 | +| Office | `workdsh-plugin-office@0.1.0-alpha.7` | [Office `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-plugin-office-0.1.0-alpha.7.tgz) · [发布页](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | 支持范围内的可编辑工作副本、预览和文件导出。 | +| WorkDSH 展示组合 | `workdsh-bundle@0.1.0-alpha.47` | [展示 `.tgz`](https://github.com/techflag/workdsh/releases/download/v0.1.0-alpha.7/workdsh-bundle-0.1.0-alpha.47.tgz) · [项目发行](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) | 可选品牌与工作台组合;功能插件按需独立安装。 | Workbench `alpha.10` 目前随展示包交付。共享 UI、contracts 和本地身份/授权/审计基础属于配套包,**不作为面向用户的独立下载项**。完整对应关系见[模块发布说明](docs/RELEASES.md)。 @@ -165,7 +165,7 @@ Workbench `alpha.10` 目前随展示包交付。共享 UI、contracts 和本地 使用 **Node.js 22 LTS 的 22.19+ 或 Node 24+**、**pnpm 10.34.5**,以及官方 **Harness CLI `0.1.6-alpha.2`**。以下命令要求 `dsh` 指向该版本 CLI,而不是旧桌面应用的启动器。 -完整产品请把[项目发行 `v0.1.0-alpha.6`](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6)的全部资产下载到同一目录;资料库目前是独立预发布,还需下载[资料库 Alpha 安装包](https://github.com/techflag/workdsh/releases/tag/library-v0.1.0-alpha.1)。停止目标 Profile,进入下载目录后先安装项目总包,再单独加入资料库: +完整产品请把[项目发行 `v0.1.0-alpha.7`](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7)的全部资产下载到同一目录;资料库目前是独立预发布,还需下载[资料库 Alpha 安装包](https://github.com/techflag/workdsh/releases/tag/library-v0.1.0-alpha.1)。停止目标 Profile,进入下载目录后先安装项目总包,再单独加入资料库: ```sh node install-workdsh.mjs --profile workdsh @@ -180,12 +180,12 @@ dsh plugin --profile workdsh add "$PWD/workdsh-provider-identity-local-0.1.0-alp dsh plugin --profile workdsh add "$PWD/workdsh-plugin-audit-0.1.0-alpha.4.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-access-0.1.0-alpha.5.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-library-0.1.0-alpha.1.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-plugin-skills-0.1.0-alpha.30.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-plugin-experts-0.1.0-alpha.5.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-plugin-connectors-0.1.0-alpha.1.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-plugin-skills-0.1.0-alpha.31.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-plugin-experts-0.1.0-alpha.7.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-plugin-connectors-0.1.0-alpha.2.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-activity-0.1.0-alpha.4.tgz" dsh plugin --profile workdsh add "$PWD/workdsh-plugin-office-0.1.0-alpha.7.tgz" -dsh plugin --profile workdsh add "$PWD/workdsh-bundle-0.1.0-alpha.46.tgz" +dsh plugin --profile workdsh add "$PWD/workdsh-bundle-0.1.0-alpha.47.tgz" dsh --profile workdsh ``` @@ -258,7 +258,7 @@ corepack pnpm probe:browser ### 原生 PPT 编辑预览 -[Office alpha.7 项目发行与安装包](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) +[Office alpha.7 项目发行与安装包](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) ![WorkDSH 原生 PPT 编辑](docs/assets/screenshots/workdsh-ppt-live-preview.png) diff --git a/docs/MODULE-VERSIONS.md b/docs/MODULE-VERSIONS.md index 12b1ddae48..db4854ca1c 100644 --- a/docs/MODULE-VERSIONS.md +++ b/docs/MODULE-VERSIONS.md @@ -30,10 +30,10 @@ | --- | --- | --- | --- | | 领域公开契约 | 0.1 | `workdsh-contracts@0.1.0-alpha.9` | implemented | | 共享展示组件 | 0.1 | `workdsh-ui@0.1.0-alpha.6` | implemented | -| 默认组合包 | 0.1 | `workdsh-bundle@0.1.0-alpha.46` | in_progress | +| 默认组合包 | 0.1 | `workdsh-bundle@0.1.0-alpha.47` | in_progress | | 工作台 | 0.1 | `workdsh-plugin-workbench@0.1.0-alpha.11` | implemented | -| 专家管理 | 0.1 | `workdsh-plugin-experts@0.1.0-alpha.5` | in_progress | -| 技能管理 | 0.1 | `workdsh-plugin-skills@0.1.0-alpha.30` | implemented | +| 专家管理 | 0.1 | `workdsh-plugin-experts@0.1.0-alpha.7` | in_progress | +| 技能管理 | 0.1 | `workdsh-plugin-skills@0.1.0-alpha.31` | implemented | | 资源授权 | 0.1 | `workdsh-plugin-access@0.1.0-alpha.5` | implemented | | 审计 | 0.1 | `workdsh-plugin-audit@0.1.0-alpha.4` | implemented | | 本地身份提供方 | 0.1 | `workdsh-provider-identity-local@0.1.0-alpha.5` | implemented | @@ -41,10 +41,16 @@ | 协作与活动展示 | 0.1 | `workdsh-plugin-activity@0.1.0-alpha.4` | in_progress | | 项目管理 | 0.1 | `workdsh-plugin-projects@0.1.0-alpha.2` | in_progress | | 资料库 | 0.1 | `workdsh-plugin-library@0.1.0-alpha.2` | implemented | -| 连接器管理 | 0.1 | `workdsh-plugin-connectors@0.1.0-alpha.1` | in_progress | +| 连接器管理 | 0.1 | `workdsh-plugin-connectors@0.1.0-alpha.2` | in_progress | 2026-09-18 更新:bundle、experts、skills、office、activity、projects、library 跟随 DSH 0.1.6-alpha.2 升级 bump;contracts 补 bump α.9(补记 2026-09-17 项目任务上下文只读契约 `ProjectTaskContext`/`taskContext`,属兼容补全);experts/office/activity 同时携带其未发布批次;公开发行仍以上次 prerelease 为准。 +2026-09-20 更新:experts bump α.5→α.6(Unreleased)——修复设置面板重复「Agent 预设」页:移除对官方增量 list 槽 `settings.section` 的包装注册,保留 `conversation.hero.agentPreset` 单座槽接管;公开 prerelease 仍为 α.5,待下次发行携带。 + +2026-09-20 更新(二):skills α.30→α.31、experts α.6→α.7、connectors α.1→α.2(均 Unreleased)——按用户决定删除能力中心「行业应用」标签入口(行业应用暂时用不到,暂无领域实现,能力页保留专家/技能/连接器三标签);公开 prerelease 仍为 skills α.30、experts α.5、connectors α.1,待下次发行携带。 + +2026-09-20 更新(三):bundle α.46→α.47(Unreleased)——修复设置页「外观」切换不生效:工作台客户端不再注册并强制 `workdsh` 深色主题、不再拦截 `theme/change`,外观改由官方 ThemeRuntime 与用户偏好驱动(浅色/深色/跟随系统即时生效,选中态恢复);bundle 的 `dsh.client.inject` 与开发依赖同步移除 `@deepseek-ai/dsh-client-ui-theme`。公开 prerelease 仍为 bundle α.46,待下次发行携带。 + 以下旧快照仅供追溯,旧“专家planned”不覆盖当前实现。 ## 历史版本线快照(被2026-09-14表覆盖) diff --git a/docs/RELEASES.md b/docs/RELEASES.md index 1cee3655af..e53ec67902 100644 --- a/docs/RELEASES.md +++ b/docs/RELEASES.md @@ -1,3 +1,9 @@ +## 2026-09-20 WorkDSH 项目级 alpha.7 + +[`v0.1.0-alpha.7`](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.7) 是 Harness `0.1.6-alpha.2` 基线上的维护版。九个可安装包中四个模块更新:skills `alpha.31`、experts `alpha.7`、connectors `alpha.2`、bundle `alpha.47`;identity-local、audit、access、office、activity 沿用当前已验收版本。 + +修复设置页「外观」切换不生效:工作台客户端不再强制 `workdsh` 深色主题、不再拦截 `theme/change`,外观改由官方 ThemeRuntime 与用户偏好驱动,浅色/深色/跟随系统即时生效。能力中心删除「行业应用」标签(用户决定,暂用不到);修复设置导航重复的「Agent 预设」页,移除对官方 `settings.section` 增量槽的包装式注册。构建、typecheck、集成 110/110、活动 14/14、规划 2/2 与精确版本门禁通过;macOS 已覆盖九包隔离安装与冷启动;Windows、Linux、卸载与自动回滚仍未验收。相对 alpha.6,专家团长任务探针、真实模型两阶段交接、连接器隔离探针与腾讯文档实连未在本批制品上复跑。 + ## 2026-09-19 WorkDSH 项目级 alpha.6 [`v0.1.0-alpha.6`](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) 将项目组合升级到 DeepSeek Harness `0.1.6-alpha.2`。九个可安装包中五个模块随升级与开发推进更新:skills `alpha.30`、experts `alpha.5`、office `alpha.7`、activity `alpha.4`、bundle `alpha.46`;identity-local、audit、access、connectors 沿用当前已验收版本。 diff --git a/docs/STATUS.md b/docs/STATUS.md index a295ba2eb3..8c2c406413 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -1,3 +1,37 @@ +## 2026-09-20:外观(主题)切换修复(bundle α.47,用户报告) + +用户报告设置→通用设置→外观切换不起作用(附截图)。根因:`packages/bundle/src/client/harness/client.ts` 客户端注册并强制 `workdsh` 深色主题、监听 `theme/change` 把非深色快照拉回。设置页点击实际已写入 settings(settings.yaml 实证 light 已持久化),但 DOM 被立即拉回深色,且激活偏好变成非内置值,三个选项均无选中态。官方 `ui-theme` 偏好与 ThemePresenter 应用链本身完好,问题全部来自该强制层(alpha.1 起引入,对应 UI-DESIGN 旧表述“维持深色呈现”)。 + +修复:bundle α.46→α.47(随本批发布)删除主题强制块与 `ui-theme` import;`dsh.client.inject` 与 devDependencies 的 ui-theme 引用同步移除;UI-DESIGN 相关表述改写为“外观由官方 ThemeRuntime 与用户偏好驱动,不注册第二套主题、不拦截 theme/change”。构建与 typecheck 通过;重装预览并重启后浏览器实测:加载按 system 解析生效,点「深色」→ themeSource=dark、body 深色,点「浅色」→ 白底且 settings.yaml 同步写入,点「跟随系统」→ source=system,三选项选中态正确显示。 + +同日 preview 清理:`dsh.profile.bundles` 又出现两个滞留 agent-team bundle(19→17,疑似运行中 UI 操作写回),备份 `.test-runtime/preview/_fix-backup-1789890313/` 后移除,dump-config 无重复 id。 + +未执行:刷新后持久性的最后一轮浏览器复验被中断(三向切换与 settings 写入当日已实测);未单独复跑浅色全站深度视觉走查。 + +## 2026-09-20:能力中心「行业应用」标签删除(用户决定修正) + +用户明确指令:删除能力中心「行业应用」标签项(`['apps', '行业应用']`),行业应用暂时用不到;此前批次记录的“隐藏、实现后恢复”处理按此修正为删除。 + +核对现状:三处 `capabilityTabs`(ExpertsPanel/SkillsPanel/ConnectorsPanel)源码与构建产物均已不含该标签项,能力页保留专家/技能/连接器三标签。文档同步:skills α.31 / experts α.7 / connectors α.2(Unreleased)CHANGELOG、MODULE-VERSIONS 与 UI-DESIGN 措辞由“隐藏(实现后恢复)”改为“删除(暂时用不到)”。应用域规划与模块登记(applications 模块、D08/P1-05)保留,台账与交付顺序未变。 + +预览生效过程(用户报告界面仍显示「行业应用」):根因是预览环境装载的是旧制品(skills α.29 / experts α.6 / connectors α.1,均含四标签),源码与工作区 dist 的删除未同步到预览。本批次重新 `npm pack` 三个包并装入 preview(skills α.31 sha256 `aad8517e…5759`、experts α.7 `86453460…ce31`、connectors α.2 `60d440a8…a4ef`),重启后浏览器实测能力中心工具栏为 3 个标签「专家/技能/连接器」,页面全文无「行业应用」(uid 快照与 DOM 统计双证)。未执行:专家/技能/连接器各标签页深度交互复跑(本轮仅验证标签栏与技能页首屏);未提交、未推送。 + +## 2026-09-20:preview 启动阻塞修复(滞留 agent-team-profile 层) + +用户要求启动 WorkDSH 预览;启动报 `duplicate loader entry id: agent-team`。根因:preview profile 的 `dsh.profile.bundles` 中存在无代码/脚本引用的滞留条目 `@deepseek-ai/dsh-experimental-agent-team-profile`(0.1.6-alpha.2 升级仅作 pnpm.overrides 版本锁定,仓库脚本与文档均无装配引用),其官方 patch 与 workdsh-plugin-experts 的 "Official Team composition" 插入重复的 `agent-team`/`tool-agent-team` 条目。按 2026-09-15 用户授权决定(官方 Team 由 experts 插件装配)移除该滞留条目,保留 experts 装配(maxMembers: 16);原 package.json 备份于 /tmp/preview-profile-package.json.bak。 + +验证:dump-config 仅剩一个 `id: agent-team`;`corepack pnpm preview`(Node 22.23.2,heap 8192,隔离 Home .test-runtime/preview)启动成功,18989 token 兑换 303 → 首页 200;Client 启动图含 workdsh-plugin-experts/office/activity 与 client-ui-agent-team。 + +未执行:浏览器真实交互与专家团真实模型任务;未提交、未推送、未改仓库代码与锁文件。备注:preview 当前制品批次为 Sep 19 安装(experts α.4 / skills α.29 / bundle α.45),落后于已发布 alpha.6 制品(α.5/α.30/α.46),未在本轮重装。 + +同日续:按用户要求在 WorkDSH 预览环境安装第三方插件 `@wxg-prc-cpg/browser-skill-dsh-plugin@0.3.0`(腾讯 BrowserSkill 的 DSH 插件)。经官方 `dsh plugin --profile preview add`(DSH_HOME=.test-runtime/preview)装入,bundles 追加、dump-config 含 `id: browserskill`;重启预览后经认证 API `/api/workdsh-skills` list 实测技能总数 169、含 `browser-skill`(state=readonly,插件自带技能)。同插件此前已按用户最初命令装入 `~/.dsh/profiles/web`(Host/client 加载已单独验证)。浏览器扩展连接(bsk 0 连接)与 `browser_*` 工具端到端调用未验证;pnpm 忽略构建脚本警告为既有依赖,未处理。 + +同日续二:修复用户报告的设置面板出现两个「Agent 预设」页。根因:`workdsh-plugin-experts` 的 PresetMenu 为在原生设置页过滤专家预设并拦截对它们的“设为默认/复制”,对 `settings.section` 槽做了包装式注册(复用官方 id/order/label);但该槽是官方声明的增量 list 槽——每条注册各自成页、无替换语义,包装只会生成第二个同名设置页(实测两条目内容相同、DOM 同图标,且不随开关累积)。`conversation.hero.agentPreset` 是单座槽(后注册者接管),那里的包装仍然有效。按用户选定方案 A 移除包装:`PresetMenu.tsx` 删除 settings.section 包装注册(保留 hero 单座槽接管与守卫),`tests/integration/expert-native-presets.test.mjs` 改为单注册断言并新增防回归(注册项不得含 settings.section)。expert-native-presets 3/3、专家相关(manager/preset-authoring/preset-projection)21/21 通过,构建后 `client.browser.js` 中 settings.section 计数为 0。 + +experts 由 α.5 bump 至 α.6(Unreleased,含 CHANGELOG/README/MODULE-VERSIONS);tarball sha256 `80266b1e…f47349`,装入 preview(file: 依赖指向新 tarball)并重启,浏览器实测设置导航 7 项且「Agent 预设」恰好 1 个(修复前 2 个),设置页内容正常、控制台无错误。已知边界:设置页层面的专家预设过滤与守卫随包装移除(依赖官方 Host,官方页自身对 broken 预设提供“加载失败”标记与禁用/删除)。附带发现(与本修复无关,未处理):预览数据中 3 个自定义预设显示“加载失败”(需求分析顾问、工作复盘顾问、重复的旧钱日清 `wd-exp-member-e65ec2cc5a6d-5503a26730a7`),其 compose 引用 harness 已更名的 `@deepseek-ai/dsh-workflow-worker-thread`(现为 `workflow-ptc`)。新会话 hero 席位的真实选专家任务未复跑。 + +同日续三(用户追问「agent 为什么会加载失败」,复核并修正上条判断):从运行界面读取官方悬停原因,3 行完全相同——`row "workflow-worker-thread" names a plugin that cannot be resolved: @deepseek-ai/dsh-workflow-worker-thread`。机制:官方 `dsh-agent-presets` 发现期健康检查(`packageInstalled`)从 harnessBase 逐级向上查 `node_modules//package.json`,任一插件行不可解析即整份预设标 broken(设置页「加载失败」徽标、选择器过滤、不可设为默认/复制)。修正上条:①需求分析顾问(rev-5058e190350f)与工作复盘顾问(rev-5c1bd5347882)**当前发布修订本身**仍是 `workdsh-expert-compiler/0.1` 于 9-12 编译的产物(origin=default 内置种子,并非“已删专家”),专家详情显示「preset 异常/请重新发布后再召唤」且不可召唤,修复路径=专家页重新发布(`presetIdFor` 将 COMPILER_VERSION 计入摘要,重编必产新目录、必含 `workflow-ptc` 行);②旧钱日清行 `wd-exp-member-e65ec2cc5a6d-5503a26730a7` 是被 rev-6fde772afe3d 取代的历史修订(rev-d495197e1084,0.1 编译)的残留目录,当前发布的钱日清修订(`…-22b44693c88f`,0.3 编译)健康,不影响钱日清当前使用。主环境 `~/.dsh` 亦有同批 3 个引用 worker-thread 的旧预设(含文档评审顾问),但主环境 node_modules 链仍解析到 0.1.5-rc.1 的该包(全局 dsh 自带、hoisted),按官方解析算法可解析——该失败为 alpha.2 运行环境(预览)特有。未执行:重新发布修复动作本身、残留目录清理、主环境运行态复核。 + ## 2026-09-19:WorkDSH v0.1.0-alpha.6 公开发布回执 按既定项目级发布流程完成 alpha.6 公开发布:源码提交 `debc429`(release: prepare)+ `ab096f0`(installer 测试断言修复)已推送 main(`8ba8626..debc429`),annotated tag `v0.1.0-alpha.6` 指向发布提交;GitHub prerelease [v0.1.0-alpha.6](https://github.com/techflag/workdsh/releases/tag/v0.1.0-alpha.6) 携带 13 个资产(九包 .tgz + SHA256SUMS + release-manifest.json + RELEASE-NOTES.md + install-workdsh.mjs),未发布 npm。 diff --git a/docs/UI-DESIGN.md b/docs/UI-DESIGN.md index 1c53c50b51..fdae9eae65 100644 --- a/docs/UI-DESIGN.md +++ b/docs/UI-DESIGN.md @@ -78,7 +78,7 @@ ### 能力中心 -顶部直接排列专家/技能/连接器标签、右侧搜索与“我的”入口,不设置营销标题。行业应用保留产品入口,呈现位置随应用域设计确定,不删除功能。 +顶部直接排列专家/技能/连接器标签、右侧搜索与“我的”入口,不设置营销标题。(2026-09-20 用户决定:行业应用暂时用不到,删除能力中心该标签入口;应用域规划与模块不删除。) 专家发布前以已保存且校验过的定义提供完整使用预览,包含专业设定、真实固定技能与示例;预览不自动试用或发布。采用公共Modal,正文内部滚动、确认操作固定;完整内容可审阅,不能仅展示60字截断摘要。版本摘要收在辅助详情里,用户先看到用途和专业内容。 @@ -246,7 +246,7 @@ D01 后续必须验证:公开布局/Slot 的替换范围、默认首页选择 ## 17. 正式界面与原型对齐(用户纠偏) -能力页直接使用专家/技能/连接器/行业应用分类工具栏、右侧搜索、“我安装的 N”入口和“添加技能”。技能页是用户或组织的全局技能库,不显示任务选择器;所有 WorkDSH 业务任务默认解析全局技能层,项目与 preset 只增加受控范围或覆盖。任务页可展示本次运行最终解析结果,但不能反向成为技能所有者。当前产品没有 SkillHub、套件和可靠的技能分类元数据,不展示空标签、虚构分类或无动作筛选器。 +能力页直接使用专家/技能/连接器分类工具栏(行业应用标签按 2026-09-20 用户决定删除)、右侧搜索、“我安装的 N”入口和“添加技能”。技能页是用户或组织的全局技能库,不显示任务选择器;所有 WorkDSH 业务任务默认解析全局技能层,项目与 preset 只增加受控范围或覆盖。任务页可展示本次运行最终解析结果,但不能反向成为技能所有者。当前产品没有 SkillHub、套件和可靠的技能分类元数据,不展示空标签、虚构分类或无动作筛选器。 信息架构可以保留“已安装/公共技能”两个范围,但当前不开发公共市场,只展示 Harness 默认/本地已安装集合。分类在企业版设计中是独立目录对象,不写入 Harness 官方 frontmatter。未来企业服务端返回真实 taxonomy 且至少存在两个有效分类后,才显示可操作分类筛选;当前没有数据时只显示“全部”和已安装集合。 @@ -254,9 +254,9 @@ D01 后续必须验证:公开布局/Slot 的替换范围、默认首页选择 “我安装的”是市场页内的独立视图:市场头部“我安装的 N”入口进入,页面含“全部技能”返回链接、计数标题、“批量管理”与“搜索已安装的技能”页内搜索,卡片、批量与详情复用市场同一实现;进入与返回重置面板滚动并把焦点分别迁移到返回链接与入口。列表采用紧凑卡片,展示真实名称、摘要和调用状态;选择卡片进入独立详情层,返回后保留列表条件。详情顶部包含返回、标识、名称、摘要与“去试试”;试用通过官方 Session 和 Conversation 预填 `/name`。概述区只渲染 Host 契约实际返回的正文与元数据。编辑、打开目录、启停和卸载必须分别接入授权、路径及冲突处理,不得以无动作菜单或仅改 Client 状态模拟。长列表进入详情必须重置内容滚动位置。 -正式工作台使用官方 ThemeRuntime 注册 WorkDSH 中性深色,生命周期内维持深色呈现;不写用户全局主题偏好,卸载恢复原偏好。普通入口不显示接入诊断;调试 query 可显式开启。 +正式工作台的外观由官方 ThemeRuntime 与用户偏好驱动:设置页的浅色/深色/跟随系统即时生效,不注册第二套主题、不拦截 theme/change,也不写用户全局主题偏好。普通入口不显示接入诊断;调试 query 可显式开启。 -验收必须在真实 Host 页面检查 sidebar 与内容同时为深色,不能只对主面板截图。原生导航与全业务导航之间剩余差异单独记录,不靠示例数据填充。 +验收深色外观时必须在真实 Host 页面检查 sidebar 与内容同时为深色,不能只对主面板截图。原生导航与全业务导航之间剩余差异单独记录,不靠示例数据填充。 ## 18. 正式公共侧栏切片 diff --git a/docs/releases/v0.1.0-alpha.7.md b/docs/releases/v0.1.0-alpha.7.md new file mode 100644 index 0000000000..12c1386e86 --- /dev/null +++ b/docs/releases/v0.1.0-alpha.7.md @@ -0,0 +1,39 @@ +# WorkDSH v0.1.0-alpha.7 + +这是 WorkDSH 在 Harness `0.1.6-alpha.2` 基线上的维护版。九个可安装包中四个模块更新:skills `alpha.31`、experts `alpha.7`、connectors `alpha.2`、bundle `alpha.47`;identity-local、audit、access、office、activity 沿用当前已验收版本。 + +## 本版更新 + +- 修复设置页「外观」切换不生效:工作台客户端不再注册并强制 `workdsh` 深色主题、不再拦截 `theme/change`;外观改由官方 ThemeRuntime 与用户偏好驱动,浅色/深色/跟随系统即时生效,三个选项的选中态恢复显示。 +- 能力中心删除「行业应用」标签(用户决定,暂用不到):专家、技能、连接器三个页面的标签栏只保留专家/技能/连接器;应用域规划与模块登记保留,交付顺序未变。 +- 修复设置导航出现两个「Agent 预设」页:移除对官方 `settings.section` 增量槽的包装式注册(保留会话 hero 单座槽接管与守卫)。设置页层面的专家预设过滤随包装移除,官方页自身对不可用预设提供“加载失败”标记与禁用/删除。 + +## 安装或升级 + +Release 附带九个 `.tgz`、`SHA256SUMS`、`release-manifest.json`、本说明和校验型安装器。把全部资产放在同一目录,停止目标 Profile 后执行: + +```sh +node install-workdsh.mjs --profile workdsh +dsh --profile workdsh +``` + +如果 `workdsh` 不存在,安装器创建它;如果已经存在,安装器原地升级插件并保留数据。可用 `--dry-run` 查看命令,也可用 `--dsh /absolute/path/to/dsh` 指定 CLI。安装器不会写入或输出连接器令牌与模型密钥。 + +## 验证范围 + +- Node.js `22.23.2`、pnpm `10.34.5`、macOS,Harness `0.1.6-alpha.2`。 +- 全仓 build 与 typecheck PASS;集成 110/110、活动 14/14、规划 2/2;`check:plan` PASS(29 模块/50 文档)、`check:versions` PASS(513 条 α2 锁定)。 +- 隔离环境全新安装九个包、匿名 401 / 认证 200 边界检查与 Host 冷启动。 +- 预览环境浏览器实测:外观三向切换即时生效与选中态恢复、能力中心三标签且无「行业应用」、设置导航单一「Agent 预设」页。 +- 九包打包、SHA-256 清单、发布清单和安装器 dry-run。 + +## 已知边界 + +- 目前只完成 macOS 验收;Windows 与 Linux 暂缓。 +- 卸载、事务式自动回滚、签名、SBOM 和构建来源证明尚未交付。 +- 连接器交互式 OAuth、多账号切换和凭据迁移尚未完成;已验证的是令牌授权。 +- 小时级专家团稳定性和官方 fork 成员浏览器历史仍未签收。 +- 相对 alpha.6,专家团长任务探针、真实模型两阶段交接、连接器隔离探针与腾讯文档实连未在本批制品上复跑。 +- 设置页对专家预设的“设为默认/复制”过滤随本版移除,过滤仅保留在会话 hero 席位。 +- projects 与 library 源码同步推进到 `0.1.0-alpha.2`,不进入本次安装组合;library 保持独立发行。 +- 这是 GitHub 资产发行,未发布 npm;模块 API 与保存数据仍可能变化。 diff --git a/package.json b/package.json index 83656b4a33..4c49022559 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "workdsh", - "version": "0.1.0-alpha.6", + "version": "0.1.0-alpha.7", "private": true, "type": "module", "description": "WorkDSH planning and plugin workspace", diff --git a/packages/bundle/CHANGELOG.md b/packages/bundle/CHANGELOG.md index 70241799fe..e1a031768f 100644 --- a/packages/bundle/CHANGELOG.md +++ b/packages/bundle/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.1.0-alpha.47 — 2026-09-20 + +- 修复设置页「外观」切换不生效:工作台客户端不再注册并强制 `workdsh` 深色主题、不再拦截 `theme/change`;外观改由官方 ThemeRuntime 与用户偏好驱动,浅色/深色/跟随系统切换即时生效,三个选项的选中态恢复显示。 + # 0.1.0-alpha.46 — 2026-09-18 - 跟随 DSH 0.1.6-alpha.2 升级:组合包与功能插件的官方依赖精确锁定同步至 `0.1.6-alpha.2`;projects、experts、skills、library、office、activity 六个客户端插件完成 Client Session 迁移。 diff --git a/packages/bundle/package.json b/packages/bundle/package.json index bf1ebd8dde..50b4b1e1e8 100644 --- a/packages/bundle/package.json +++ b/packages/bundle/package.json @@ -1,6 +1,6 @@ { "name": "workdsh-bundle", - "version": "0.1.0-alpha.46", + "version": "0.1.0-alpha.47", "private": true, "type": "module", "description": "WorkDSH default Harness bundle and client composition", @@ -36,8 +36,7 @@ "@deepseek-ai/dsh-client-ui-layout", "@deepseek-ai/dsh-client-ui-sidebar", "@deepseek-ai/dsh-api-remotes", - "@deepseek-ai/dsh-api-session-controller", - "@deepseek-ai/dsh-client-ui-theme" + "@deepseek-ai/dsh-api-session-controller" ] } }, @@ -59,7 +58,6 @@ "@deepseek-ai/dsh-client-ui-renderer": "0.1.6-alpha.2", "@deepseek-ai/dsh-client-ui-sidebar": "0.1.6-alpha.2", "@deepseek-ai/dsh-client-ui-slots": "0.1.6-alpha.2", - "@deepseek-ai/dsh-client-ui-theme": "0.1.6-alpha.2", "@deepseek-ai/dsh-skill": "0.1.6-alpha.2", "@types/react": "19.2.14", "react": "19.2.4", diff --git a/packages/bundle/src/client/harness/client.ts b/packages/bundle/src/client/harness/client.ts index 13cac140ab..8f21e3ca34 100644 --- a/packages/bundle/src/client/harness/client.ts +++ b/packages/bundle/src/client/harness/client.ts @@ -2,14 +2,13 @@ import type { Context } from '@deepseek-ai/cordis'; import type {} from '@deepseek-ai/dsh-api-remotes/client'; import type {} from '@deepseek-ai/dsh-client-ui-renderer/client'; import type {} from '@deepseek-ai/dsh-client-ui-sidebar/client'; -import type {} from '@deepseek-ai/dsh-client-ui-theme/client'; import * as workbench from 'workdsh-plugin-workbench'; import { BrandMark, BrandName, DiagnosticsMark } from '../components/Brand.js'; import { DiagnosticsPanel, type Inventory } from '../components/DiagnosticsPanel.js'; import { NavigationLocation } from '../components/NavigationLocation.js'; export const name = 'workdsh-client'; -export const inject = ['slots', 'layout', 'remote', 'remote.pluginInventory', 'theme']; +export const inject = ['slots', 'layout', 'remote', 'remote.pluginInventory']; const productViews: Readonly> = { experts: 'workdsh-experts', skills: 'workdsh-skills', assistant: 'workdsh-assistant', projects: 'workdsh-projects', @@ -28,23 +27,8 @@ export function apply(ctx: Context): void { return selected; }; - const previousTheme = ctx.theme.getTheme().preference; - const unregisterTheme = ctx.theme.register({ id: 'workdsh', colorScheme: 'dark', tokens: { - '--dsw-alias-bg-layer-1': '#121212', '--dsw-alias-bg-layer-2': '#202020', - '--dsw-alias-bg-layer-3': '#242424', '--dsw-alias-label-primary': '#e7e7e7', - '--dsw-alias-label-secondary': '#a5a5a5', '--dsw-specific-sidebar-fill': '#202020', - '--dsw-specific-sidebar-nav-item-active': '#3a3a3a', - } }); - const stopThemeSync = ctx.on('theme/change', snapshot => { - if (snapshot.active.colorScheme !== 'dark') ctx.theme.setTheme('workdsh'); - }); - ctx.theme.setTheme('workdsh'); - ctx.effect(() => () => { - stopThemeSync(); - if (ctx.theme.getTheme().active.id === 'workdsh') ctx.theme.setTheme(previousTheme); - unregisterTheme(); - }); - + // Appearance follows the official ThemeRuntime and the user's Settings and + // system preference; the workbench must not pin a theme or veto theme/change. ctx.plugin(workbench); ctx.slots.inject('sidebar.brand.name', () => ctx.slots.register({ name: 'sidebar.brand.name', priority: -10 }, BrandName)); ctx.slots.inject('sidebar.brand.mark', () => ctx.slots.register({ name: 'sidebar.brand.mark', priority: -10 }, BrandMark)); diff --git a/packages/plugins/connectors/CHANGELOG.md b/packages/plugins/connectors/CHANGELOG.md index 100358b13f..c6f3f4937d 100644 --- a/packages/plugins/connectors/CHANGELOG.md +++ b/packages/plugins/connectors/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.1.0-alpha.2 — Unreleased(2026-09-20) + +- 按用户决定删除能力中心「行业应用」标签入口(行业应用暂时用不到,暂无领域实现);能力页工具栏保留专家/技能/连接器三个标签。 + # 0.1.0-alpha.1 — 2026-09-15 - 新增真实的本地 stdio MCP 示例,复用 DSH 0.1.6 官方 MCP Client、工具发现、资源读取和生命周期。 diff --git a/packages/plugins/connectors/package.json b/packages/plugins/connectors/package.json index c6967b4e75..6315676597 100644 --- a/packages/plugins/connectors/package.json +++ b/packages/plugins/connectors/package.json @@ -1,6 +1,6 @@ { "name": "workdsh-plugin-connectors", - "version": "0.1.0-alpha.1", + "version": "0.1.0-alpha.2", "private": false, "type": "module", "description": "MCP connector management and a verified local example for WorkDSH", diff --git a/packages/plugins/connectors/src/client/ConnectorsPanel.tsx b/packages/plugins/connectors/src/client/ConnectorsPanel.tsx index d31d8f22af..cfe95e38f9 100644 --- a/packages/plugins/connectors/src/client/ConnectorsPanel.tsx +++ b/packages/plugins/connectors/src/client/ConnectorsPanel.tsx @@ -31,7 +31,7 @@ export function ConnectorsPanel({ toggleNavigation, management, openCapability, const remove = async () => { if (!removeTarget) return; setBusy(true); setError(''); try { await management.remove(removeTarget.id); setRemoveTarget(undefined); await refresh(); } catch (cause) { setError(cause instanceof Error ? cause.message : '删除连接器失败。'); setBusy(false); } }; const normalized = query.trim().toLowerCase(); const filtered = rows.filter(row => `${row.title} ${row.description} ${row.serverName} ${row.toolNames.join(' ')}`.toLowerCase().includes(normalized)); const detail = rows.find(row => row.id === expanded); - const capabilityTabs = [['experts', '专家'], ['skills', '技能'], ['connectors', '连接器'], ['apps', '行业应用']] as const; + const capabilityTabs = [['experts', '专家'], ['skills', '技能'], ['connectors', '连接器']] as const; const capabilityKey: Record = { experts: 'workdsh-experts', skills: 'workdsh-skills', connectors: 'workdsh-connectors' }; return
diff --git a/packages/plugins/experts/CHANGELOG.md b/packages/plugins/experts/CHANGELOG.md index c518c14af0..0094b52319 100644 --- a/packages/plugins/experts/CHANGELOG.md +++ b/packages/plugins/experts/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.1.0-alpha.7 — Unreleased(2026-09-20) + +- 按用户决定删除能力中心「行业应用」标签入口(行业应用暂时用不到,暂无领域实现);能力页工具栏保留专家/技能/连接器三个标签。 + +## 0.1.0-alpha.6 — Unreleased(2026-09-20) + +- 修复设置面板出现两个「Agent 预设」页:`settings.section` 是增量 list 槽(每次注册各自成页,无替换语义),PresetMenu 对它的包装注册只会在官方页旁再生成一个同名页。现移除该包装注册,仅保留 `conversation.hero.agentPreset` 单座槽的接管(专家预设过滤与设为默认/复制守卫继续生效);设置页列表回到官方 Host 行为。 +- 测试同步:`expert-native-presets` 断言单一注册并新增防回归检查(注册项不得包含 `settings.section`)。 + ## 0.1.0-alpha.5 — 2026-09-18 - 适配 DeepSeek Harness 0.1.6-alpha.2:成员与子代理根会话改用官方 `sessions.subagentAddress` 解析;打开专家会话改用官方 `uiWorkspace.openSession` 导航。 diff --git a/packages/plugins/experts/README.md b/packages/plugins/experts/README.md index 62c698b6a9..06fc9ae2e2 100644 --- a/packages/plugins/experts/README.md +++ b/packages/plugins/experts/README.md @@ -1,6 +1,6 @@ # WorkDSH 专家插件 / Experts plugin -一个插件管理多个专家与专家团配置。当前源码候选为 `workdsh-plugin-experts@0.1.0-alpha.5`,面向 **DeepSeek Harness 0.1.6-alpha.2 / Cordis 4.0.2**;候选代码与已经发布的安装包分别验收。 +一个插件管理多个专家与专家团配置。当前源码候选为 `workdsh-plugin-experts@0.1.0-alpha.7`,面向 **DeepSeek Harness 0.1.6-alpha.2 / Cordis 4.0.2**;候选代码与已经发布的安装包分别验收。 WorkDSH manages authored expert assets and immutable revisions. Team execution, messaging, tasks and the Web team panel use the official DSH Agent Teams plugins. diff --git a/packages/plugins/experts/package.json b/packages/plugins/experts/package.json index 37c2a71847..997e486485 100644 --- a/packages/plugins/experts/package.json +++ b/packages/plugins/experts/package.json @@ -1,6 +1,6 @@ { "name": "workdsh-plugin-experts", - "version": "0.1.0-alpha.5", + "version": "0.1.0-alpha.7", "private": false, "type": "module", "description": "Local expert management plugin for DeepSeek Harness (D04 / P1-02, expert module 0.1)", diff --git a/packages/plugins/experts/src/client/ExpertsPanel.tsx b/packages/plugins/experts/src/client/ExpertsPanel.tsx index d4577b5da4..310aec4fbd 100644 --- a/packages/plugins/experts/src/client/ExpertsPanel.tsx +++ b/packages/plugins/experts/src/client/ExpertsPanel.tsx @@ -180,7 +180,7 @@ export function ExpertsPanel({ toggleNavigation, management, openCapability, has catch (cause) { setError(messageOf(cause)); } finally { setActing(false); } }; - const capabilityTabs = [['experts', '专家'], ['skills', '技能'], ['connectors', '连接器'], ['apps', '行业应用']] as const; + const capabilityTabs = [['experts', '专家'], ['skills', '技能'], ['connectors', '连接器']] as const; const capabilityKey: Record = { experts: 'workdsh-experts', skills: 'workdsh-skills', connectors: 'workdsh-connectors' }; const isDraft = (summary: ExpertSummary) => summary.publishedRevisionRef === undefined; const stateLabel = (summary: ExpertSummary) => isDraft(summary) ? '草稿' : AVAILABILITY_LABEL[summary.availability]; diff --git a/packages/plugins/experts/src/client/PresetMenu.tsx b/packages/plugins/experts/src/client/PresetMenu.tsx index 2c35aab8d3..69e994f2e0 100644 --- a/packages/plugins/experts/src/client/PresetMenu.tsx +++ b/packages/plugins/experts/src/client/PresetMenu.tsx @@ -26,35 +26,39 @@ function StableNativePresetSeat(props: any) { return ; } -/** Native controllers stay owned by Harness; expert execution uses the binding-aware summon path. */ +/** + * Native controllers stay owned by Harness; expert execution uses the binding-aware summon path. + * + * Only the new-session control is wrapped: `conversation.hero.agentPreset` is a single-seat + * slot, so a later registration takes the seat over. `settings.section` is an additive list + * slot (every registration is its own page with no replacement semantics), so wrapping it + * only produced a duplicate "Agent 预设" page next to the Harness-owned one. The settings + * page stays the Harness owner's; expert presets remain guarded by the Host-side preset + * checks, not by a second client page. + */ export function installExpertPresetMenu(ctx: Context, _management: ExpertManagementClient): void { - const install = (key: string, entryId?: string) => { + const install = (key: string) => { let dispose: (() => void) | undefined; const ready = () => { if (dispose) return; - const original = ctx.slots.entriesOfSlot(key as any).find((entry: any) => entryId ? entry.options.id === entryId : !!entry.inject); + const original = ctx.slots.entriesOfSlot(key as any).find((entry: any) => !!entry.inject); if (!original?.inject) return; const Native = original.component as React.ComponentType; const projected = new WeakMap(); - const project = (state: any, field: 'rows' | 'options') => { + const project = (state: any, field: 'options') => { let value = projected.get(state); if (!value) { value = { ...state, [field]: nativePresetRows(state[field]) }; projected.set(state, value); } return value; }; function PublicPresets(props: any) { - if (entryId) { - const useSection = (selector: (state: any) => unknown) => props.useAgentPresetSection((state: any) => selector(project(state, 'rows'))); - return { requireNativePreset(id); await props.makeDefault(id); }} beginCopy={(id: string) => { requireNativePreset(id); props.beginCopy(id); }}/>; - } const current = props.useAgentPresetSeat((state: any) => state.current); if (current && !isNativePreset(current)) return ; const useSeat = (selector: (state: any) => unknown) => props.useAgentPresetSeat((state: any) => selector(project(state, 'options'))); return { requireNativePreset(id); return props.select(id); }} />; } - dispose = ctx.slots.register({ name: key, ...(entryId ? { id: entryId, order: original.options.order, label: original.options.label } : {}), priority: -10, locale: 'settings.agentPreset', inject: original.inject } as any, PublicPresets); + dispose = ctx.slots.register({ name: key, priority: -10, locale: 'settings.agentPreset', inject: original.inject } as any, PublicPresets); }; - ctx.effect(() => { const stop = ctx.slots.subscribe(key as any, ready); ready(); return () => { stop(); dispose?.(); }; }, `workdsh.expert-preset-menu.${entryId ?? 'seat'}`); + ctx.effect(() => { const stop = ctx.slots.subscribe(key as any, ready); ready(); return () => { stop(); dispose?.(); }; }, 'workdsh.expert-preset-menu.seat'); }; install('conversation.hero.agentPreset'); - install('settings.section', 'agent-presets'); } diff --git a/packages/plugins/skills/CHANGELOG.md b/packages/plugins/skills/CHANGELOG.md index b7bc3822c4..bda0d7b41c 100644 --- a/packages/plugins/skills/CHANGELOG.md +++ b/packages/plugins/skills/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0-alpha.31 — Unreleased(2026-09-20) + +- 按用户决定删除能力中心「行业应用」标签入口(行业应用暂时用不到,暂无领域实现);能力页工具栏保留专家/技能/连接器三个标签。 + ## 0.1.0-alpha.30 — Unreleased(2026-09-18) - 适配 DeepSeek Harness 0.1.6-alpha.2:当前会话改由 `SessionSummary.retainedBy.mainView` 推导;打开技能会话改用官方 `uiWorkspace.openSession` 导航。 diff --git a/packages/plugins/skills/README.md b/packages/plugins/skills/README.md index d318f61804..e577af84ad 100644 --- a/packages/plugins/skills/README.md +++ b/packages/plugins/skills/README.md @@ -2,7 +2,7 @@ > GitHub 模块制品与兼容矩阵:[发布说明](../../../docs/RELEASES.md)。当前验证 Harness **0.1.6-alpha.2 Web**;内置 **0.1.2-rc.1** 的旧桌面入口缺失尚未修复,本包不包含该兼容修复。 -状态:**Skill 0.1 本地面向用户的技能市场与独立安装交付完成**。当前候选制品 `workdsh-plugin-skills@0.1.0-alpha.30`,尚未发布 npm。一个插件管理多个 Skill 业务对象;用户制作技能不需要发布 npm 包。 +状态:**Skill 0.1 本地面向用户的技能市场与独立安装交付完成**。当前候选制品 `workdsh-plugin-skills@0.1.0-alpha.31`,尚未发布 npm。一个插件管理多个 Skill 业务对象;用户制作技能不需要发布 npm 包。 本包提供标准 Host `apply/inject`、独立 Client `apply/inject`、`dsh.bundle` 配置 patch 和 `dsh.client` 浏览器产物。官方 Loader/Profile/Cordis 拥有加载及生命周期;不依赖 WorkDSH 总包或另一个插件框架。独立安装、默认组合、移除与重装见[实际验收](../../../docs/evidence/skills-standalone-package.md)。 diff --git a/packages/plugins/skills/package.json b/packages/plugins/skills/package.json index 52aa81c22d..9247ec5a75 100644 --- a/packages/plugins/skills/package.json +++ b/packages/plugins/skills/package.json @@ -1,6 +1,6 @@ { "name": "workdsh-plugin-skills", - "version": "0.1.0-alpha.30", + "version": "0.1.0-alpha.31", "private": false, "type": "module", "exports": { diff --git a/packages/plugins/skills/src/client/SkillsPanel.tsx b/packages/plugins/skills/src/client/SkillsPanel.tsx index 8b183a8fd9..d22cd98ced 100644 --- a/packages/plugins/skills/src/client/SkillsPanel.tsx +++ b/packages/plugins/skills/src/client/SkillsPanel.tsx @@ -211,7 +211,7 @@ export function SkillsPanel({ toggleNavigation, management, startSkillTask, star const available = entries.filter(entry => !entry.installed && inCategory(entry.categories) && (matches(entry.name) || matches(entry.title) || matches(entry.description))); const filtered = skills.filter(skill => inCategory(skill.categories) && matches(`${skill.name} ${skill.title ?? ''} ${skill.localizedDescription ?? skill.description} ${skill.whenToUse ?? ''}`)); const installedFiltered = skills.filter(skill => `${skill.name} ${skill.title ?? ''} ${skill.localizedDescription ?? skill.description} ${skill.whenToUse ?? ''}`.toLowerCase().includes(installedQuery.trim().toLowerCase())); - const capabilityTabs = [['experts', '专家'], ['skills', '技能'], ['connectors', '连接器'], ['apps', '行业应用']] as const; + const capabilityTabs = [['experts', '专家'], ['skills', '技能'], ['connectors', '连接器']] as const; const capabilityKey: Record = { experts: 'workdsh-experts', skills: 'workdsh-skills', connectors: 'workdsh-connectors' }; const countsLine =
{busy ? '正在读取…' : error || notice || `共 ${skills.length} 个已安装技能 · 当前显示 ${view === 'installed' ? installedFiltered.length : filtered.length} 个`}
; const batchBar =
已选择 {selectedNames.length} 项
; diff --git a/scripts/pack-project-release.mjs b/scripts/pack-project-release.mjs index a4bd3ca140..3dda9aed29 100644 --- a/scripts/pack-project-release.mjs +++ b/scripts/pack-project-release.mjs @@ -61,17 +61,17 @@ await writeFile(join(destination, 'release-manifest.json'), JSON.stringify({ verified: [ 'full build and typecheck on Harness 0.1.6-alpha.2', '110 integration tests, 14 activity tests and 2 planning tests', + 'planning and exact-version gates (29 modules / 50 documents; 513 locked entries)', + 'browser-verified appearance switching (light / dark / system), capability tabs without the industry-apps tab and a single Agent presets settings page in the packaged Web preview', 'fresh-profile installation of the nine packages on Harness 0.1.6-alpha.2, authenticated 200 / anonymous 401 checks and Host cold start', - 'planning and exact-version gates', - 'packaged Web expert-team long task, reconnect, interrupt/resume, handoff, failure visibility and cold recovery', - 'explicit real-model lead, analyst and reviewer two-stage Team handoff', - 'connector tool/resource discovery, lifecycle, multi-instance and per-session isolation probe', - 'real Tencent Docs token connection and read-only account query in WorkDSH', + 'cold Host startup after all nine modules are removed', + 'nine-package packing with SHA-256 checksums and a checksum-verifying installer', ], limitations: [ 'alpha preview; package APIs and stored data may change', 'interactive OAuth, connector multi-account switching and public authorization are not complete', 'hour-scale expert-team soak, official fork-member browser history, arbitrary Office fidelity and cross-platform acceptance remain incomplete', + 'relative to alpha.6, the packaged expert-team long task, real-model two-stage handoff, connector isolation probe and Tencent Docs connection were not re-run on this batch artifacts', 'packages are GitHub assets and are not published to the npm registry', ], }, null, 2) + '\n'); diff --git a/tests/integration/expert-native-presets.test.mjs b/tests/integration/expert-native-presets.test.mjs index 4258d93eae..7ccc35c4fa 100644 --- a/tests/integration/expert-native-presets.test.mjs +++ b/tests/integration/expert-native-presets.test.mjs @@ -10,26 +10,25 @@ test('native new-session and default menus exclude every compiled expert includi }); import { installExpertPresetMenu } from '../../packages/plugins/experts/dist/client/PresetMenu.js'; -test('both native Slot adapters filter the roster and refuse internal select/default mutations', async () => { +test('native new-session Slot adapter filters the roster and refuses internal select mutations', async () => { const registrations = []; const ctx = { slots: { - entriesOfSlot: key => [{ options: key === 'settings.section' ? {id:'agent-presets',order:20,label:'Agent presets'} : {}, inject: () => ({}), component: 'native-preset' }], + entriesOfSlot: () => [{ options: {}, inject: () => ({}), component: 'native-preset' }], register: (options, component) => { registrations.push({options, component}); return () => {}; }, subscribe: () => () => {}, }, effect: callback => callback() }; installExpertPresetMenu(ctx, {}); - assert.equal(registrations.length, 2); + assert.equal(registrations.length, 1); + // Regression: 'settings.section' is an additive list slot — re-registering it (same id or not) + // rendered a second "Agent 预设" page next to the Harness-owned one. + assert.ok(registrations.every(entry => entry.options.name !== 'settings.section')); const rows = [{id:'dsh-base'}, {id:'wd-exp-public-expert'}]; let writes = 0; const seat = registrations[0].component({ useAgentPresetSeat: selector => selector({options:rows}), select: async () => { writes++; } }); assert.deepEqual(seat.props.useAgentPresetSeat(s => s.options), rows.slice(0,1)); await assert.rejects(seat.props.select(rows[1].id), /召唤专家/); - const settings = registrations[1].component({ useAgentPresetSection: selector => selector({rows}), makeDefault: async () => { writes++; }, beginCopy: () => { writes++; } }); - assert.deepEqual(settings.props.useAgentPresetSection(s => s.rows), rows.slice(0,1)); - await assert.rejects(settings.props.makeDefault(rows[1].id), /召唤专家/); - assert.throws(() => settings.props.beginCopy(rows[1].id), /召唤专家/); assert.equal(writes, 0); - await settings.props.makeDefault('dsh-base'); + await seat.props.select('dsh-base'); assert.equal(writes, 1); }); @@ -37,7 +36,7 @@ test('summoned expert keeps the unfiltered authored roster for its read-only lab let Seat; const ctx = {slots:{entriesOfSlot: () => [{options:{},inject:()=>({}),component:'native'}], subscribe:()=>()=>{},register:(_,component)=>{Seat=component;return ()=>{};}},effect:fn=>fn()}; installExpertPresetMenu(ctx, {}); - // Capture the hero adapter (the fake settings owner intentionally does not match). + // The single registration is the hero-seat adapter. const rows=[{id:'standard',name:'标准模式'},{id:'wd-exp-finance',name:'公司财务专家团'}]; const element=Seat({useAgentPresetSeat:selector=>selector({current:'wd-exp-finance',options:rows})}); assert.equal(element.props.useAgentPresetSeat(s=>s.options)[1].name,'公司财务专家团');