release: prepare v0.1.0-alpha.7

This commit is contained in:
techflag
2026-09-20 18:47:26 +08:00
parent 31f68bb641
commit 8e29c4ce08
25 changed files with 190 additions and 99 deletions
+21 -21
View File
@@ -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.
</details>
@@ -150,12 +150,12 @@ Each installable module has a matching **GitHub prerelease, versioned package, S
| Module | Package version | Download | Scope |
| --- | --- | --- | --- |
| Library | `[email protected]` | [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 | `[email protected]0` | [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 | `[email protected].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 | `[email protected].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 | `[email protected]` | [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 | `[email protected]` | [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 | `[email protected]6` | [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 | `[email protected]1` | [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 | `[email protected].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 | `[email protected].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 | `[email protected]` | [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 | `[email protected]` | [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 | `[email protected]7` | [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 | `[email protected].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 | `[email protected]0` | [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 | `[email protected].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 | `[email protected]` | [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 | `[email protected]` | [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 | `[email protected]6` | [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 | `[email protected].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 | `[email protected]1` | [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 | `[email protected].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 | `[email protected]` | [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 | `[email protected]` | [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 | `[email protected]7` | [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 <profile> add /absolute/path/<package>.tgz`。基础身份、审计与授权配套见专家发行附件;各模块独立安装。仅发布GitHub alpha附件,未发布npm注册表。Office依赖引用与声明许可证见下文;现有notice及检查报告保留。
+13 -13
View File
@@ -139,7 +139,7 @@ flowchart TB
![独立技能插件与官方 Harness 界面](docs/assets/screenshots/skill-standalone.png)
单独安装技能插件时保留 Harness 品牌和原生导航;可选展示组合包提供 WorkDSH 品牌及深色主题。
单独安装技能插件时保留 Harness 品牌和原生导航;可选展示组合包提供 WorkDSH 品牌与工作台组合。
</details>
@@ -150,12 +150,12 @@ flowchart TB
| 模块 | 包版本 | 下载 | 安装范围 |
| --- | --- | --- | --- |
| 资料库 | `[email protected]` | [资料库 `.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) | 本地目录、全文搜索、原件预览、固定修订与新对话上下文。 |
| 技能管理 | `[email protected]0` | [技能 `.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 功能插件。 |
| 专家 | `[email protected].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 运行时的组合。 |
| 连接器 | `[email protected].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 实例、官方凭据存储、健康与工具发现、按对话隔离工具。 |
| 工作动态 | `[email protected]` | [动态 `.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 | `[email protected]` | [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 展示组合 | `[email protected]6` | [展示 `.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) | 可选品牌、主题与工作台组合;功能插件按需独立安装。 |
| 技能管理 | `[email protected]1` | [技能 `.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 功能插件。 |
| 专家 | `[email protected].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 运行时的组合。 |
| 连接器 | `[email protected].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 实例、官方凭据存储、健康与工具发现、按对话隔离工具。 |
| 工作动态 | `[email protected]` | [动态 `.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 | `[email protected]` | [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 展示组合 | `[email protected]7` | [展示 `.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)
+10 -4
View File
@@ -30,10 +30,10 @@
| --- | --- | --- | --- |
| 领域公开契约 | 0.1 | `[email protected]` | implemented |
| 共享展示组件 | 0.1 | `[email protected]` | implemented |
| 默认组合包 | 0.1 | `[email protected]6` | in_progress |
| 默认组合包 | 0.1 | `[email protected]7` | in_progress |
| 工作台 | 0.1 | `[email protected]` | implemented |
| 专家管理 | 0.1 | `[email protected].5` | in_progress |
| 技能管理 | 0.1 | `[email protected]0` | implemented |
| 专家管理 | 0.1 | `[email protected].7` | in_progress |
| 技能管理 | 0.1 | `[email protected]1` | implemented |
| 资源授权 | 0.1 | `[email protected]` | implemented |
| 审计 | 0.1 | `[email protected]` | implemented |
| 本地身份提供方 | 0.1 | `[email protected]` | implemented |
@@ -41,10 +41,16 @@
| 协作与活动展示 | 0.1 | `[email protected]` | in_progress |
| 项目管理 | 0.1 | `[email protected]` | in_progress |
| 资料库 | 0.1 | `[email protected]` | implemented |
| 连接器管理 | 0.1 | `[email protected].1` | in_progress |
| 连接器管理 | 0.1 | `[email protected].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表覆盖)
+6
View File
@@ -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 沿用当前已验收版本。
+34
View File
@@ -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/[email protected]`(腾讯 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/<pkg>/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。
+4 -4
View File
@@ -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. 正式公共侧栏切片
+39
View File
@@ -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 与保存数据仍可能变化。
+1 -1
View File
@@ -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",
+4
View File
@@ -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 迁移。
+2 -4
View File
@@ -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",
+3 -19
View File
@@ -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<Record<string, string>> = {
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));
+4
View File
@@ -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、工具发现、资源读取和生命周期。
+1 -1
View File
@@ -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",
@@ -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<string, string> = { experts: 'workdsh-experts', skills: 'workdsh-skills', connectors: 'workdsh-connectors' };
return <section className="wd-connectors" data-testid="workdsh-connectors"><style>{connectorCss}</style>
<header className="cap-header"><button className="nav-toggle" onClick={toggleNavigation} aria-label="切换导航">导航</button>
+9
View File
@@ -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` 导航。
+1 -1
View File
@@ -1,6 +1,6 @@
# WorkDSH 专家插件 / Experts plugin
一个插件管理多个专家与专家团配置。当前源码候选为 `[email protected].5`,面向 **DeepSeek Harness 0.1.6-alpha.2 / Cordis 4.0.2**;候选代码与已经发布的安装包分别验收。
一个插件管理多个专家与专家团配置。当前源码候选为 `[email protected].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.
+1 -1
View File
@@ -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)",
@@ -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<string, string> = { 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];
@@ -26,35 +26,39 @@ function StableNativePresetSeat(props: any) {
return <Native {...seatProps} load={load}/>;
}
/** 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<any>;
const projected = new WeakMap<object, any>();
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 <Native {...props} useAgentPresetSection={useSection} makeDefault={async (id: string) => { 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 <SummonedExpertSeat {...props}/>;
const useSeat = (selector: (state: any) => unknown) => props.useAgentPresetSeat((state: any) => selector(project(state, 'options')));
return <StableNativePresetSeat Native={Native} {...props} useAgentPresetSeat={useSeat} select={async (id: string) => { 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');
}
+4
View File
@@ -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` 导航。
+1 -1
View File
@@ -2,7 +2,7 @@
> GitHub 模块制品与兼容矩阵:[发布说明](../../../docs/RELEASES.md)。当前验证 Harness **0.1.6-alpha.2 Web**;内置 **0.1.2-rc.1** 的旧桌面入口缺失尚未修复,本包不包含该兼容修复。
状态:**Skill 0.1 本地面向用户的技能市场与独立安装交付完成**。当前候选制品 `[email protected]0`,尚未发布 npm。一个插件管理多个 Skill 业务对象;用户制作技能不需要发布 npm 包。
状态:**Skill 0.1 本地面向用户的技能市场与独立安装交付完成**。当前候选制品 `[email protected]1`,尚未发布 npm。一个插件管理多个 Skill 业务对象;用户制作技能不需要发布 npm 包。
本包提供标准 Host `apply/inject`、独立 Client `apply/inject`、`dsh.bundle` 配置 patch 和 `dsh.client` 浏览器产物。官方 Loader/Profile/Cordis 拥有加载及生命周期;不依赖 WorkDSH 总包或另一个插件框架。独立安装、默认组合、移除与重装见[实际验收](../../../docs/evidence/skills-standalone-package.md)。
+1 -1
View File
@@ -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": {
@@ -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<string, string> = { experts: 'workdsh-experts', skills: 'workdsh-skills', connectors: 'workdsh-connectors' };
const countsLine = <div role="status" aria-live="polite" className={error ? 'error counts' : notice ? 'notice counts' : 'muted counts'}>{busy ? '正在读取…' : error || notice || `共 ${skills.length} 个已安装技能 · 当前显示 ${view === 'installed' ? installedFiltered.length : filtered.length} 个`}</div>;
const batchBar = <div className="batch-bar" role="toolbar" aria-label="批量管理技能"><span>已选择 {selectedNames.length} 项</span><button disabled={!selectedNames.length || busy} onClick={() => void runBatch('enable')}>启用</button><button disabled={!selectedNames.length || busy} onClick={() => void runBatch('disable')}>停用</button><button className="danger" disabled={!selectedNames.length || busy} onClick={() => setConfirmBatchUninstall(true)}>卸载</button></div>;
+5 -5
View File
@@ -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');
@@ -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,'公司财务专家团');