Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
timeout-minutes: 30
env:
DRY_RUN: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run && 'true' || 'false' }}
HARNESS_REF: dsh-v0.2.0-rc.2
HARNESS_REF: dsh-v0.2.1-rc.2
steps:
- uses: actions/checkout@v4

Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## 0.3.9 — 2026-10-17

- Accept Harness `0.2.1-rc.2` (`dsh-v0.2.1-rc.2`, `687f282e8625c6b8d11ff58211a90524be2e4317`). Peer range and `engines.dsh` are `>=0.2.1-rc.1 <0.2.2`. That range accepts `0.2.1-rc.1`, `0.2.1-rc.2`, and stable `0.2.1`; rejects `0.2.1` alphas and `0.2.0-rc.*`.
- Follow the 0.2.1 image-slot split: mirror `conversation.chat.message.images` and `conversation.chat.user.images` instead of the removed `conversation.message.images`, and stop passing the removed `renderMessageImages` / `openSkill` Chat node owner fields.
- Supply the new required `useGroupAction` Chat node hook context (Reader still owns folding) and the new `commandLine` terminal label.

## 0.3.8 — 2026-10-13

- Fix host entry bundling in tsdown: stop externalising relative host imports and add a portable output build guard to prevent missing bundled modules (`ERR_MODULE_NOT_FOUND ./skill-roots.ts`, #58, #59, #61).
Expand Down
8 changes: 4 additions & 4 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@
Open **Settings → Plugins → Add plugin** and enter this in “Package name or address”:

```text
github:aa2246740/dsh-better-display#v0.3.6
github:aa2246740/dsh-better-display#v0.3.9
```

The desktop plugin manager owns the Desktop profile and its bundled package manager. This release includes built `lib/`; normal use needs no clone, build, or DSHX installation. Follow the app if it asks you to reload or reopen after installation.

### Web CLI

```sh
dsh plugin --profile web add github:aa2246740/dsh-better-display#v0.3.6
dsh plugin --profile web add github:aa2246740/dsh-better-display#v0.3.9
```

This official CLI command writes only the `web` profile; it cannot modify the Desktop App profile. **pnpm** must be on PATH. For an already-running Web Host, reopen that Host once and reload the page because bundles are read at boot.
Expand All @@ -26,15 +26,15 @@ Adds a **阅读** tab to DeepSeek Harness. While a turn runs you see steps, thin

A ````mcp-app` fence in the final answer mounts as an interactive card in the reading view, inside `<iframe sandbox="allow-scripts allow-forms">` without `allow-same-origin`. The card can fill the next prompt via JSON-RPC. The skill pack is [`skills/generative-mcpapps/`](skills/generative-mcpapps/). Settings → **Better Display** can preview deliverables in the right Sidebar (system app remains the default), turn on translucent frosted glass (off by default), toggle process auto-folding (On is the default), and reports whether that skill is installed in a harness skill root.

Targets DeepSeek Harness **0.2.0-rc.2** (`dsh-v0.2.0-rc.2`). Display only. It does not change Agent execution, the SDK, or credentials. Node.js `^22.19.0 || >=24`. New sessions default to reading. The `@deepseek-ai/dsh-*` peer range is `>=0.2.0-rc.1 <0.2.1`: it accepts `0.2.0-rc.2` and stable `0.2.0`, rejects `0.2.0` alphas, and rejects `0.1.7-rc.2`.
Targets DeepSeek Harness **0.2.1-rc.2** (`dsh-v0.2.1-rc.2`). Display only. It does not change Agent execution, the SDK, or credentials. Node.js `^22.19.0 || >=24`. New sessions default to reading. The `@deepseek-ai/dsh-*` peer and `engines.dsh` range is `>=0.2.1-rc.1 <0.2.2`: it accepts `0.2.1-rc.1`, `0.2.1-rc.2`, and stable `0.2.1`, rejects `0.2.1` alphas, and rejects `0.2.0-rc.*`.

**0.3.0** keeps the existing reading layout, folding, and motion while using official feedback, tool details, file cards, and file links. It also fixes process content staying expanded after auto-folding is re-enabled. See the [official integration notes](docs/official-rendering-bridge.md) for coverage and upgrade checks.

From a local checkout or tarball (development/local testing):

```sh
dsh plugin --profile web add ./dsh-better-display
dsh plugin --profile web add ./dsh-better-display-0.3.6.tgz
dsh plugin --profile web add ./dsh-better-display-0.3.9.tgz
```

`dsh.bundle` is captured at Host boot. Do not also insert the same row by hand in the profile `cordis.patch.yml`, or it will mount twice.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@
打开 **设置 → 插件 → 添加插件**,在“包名或地址”中输入:

```text
github:aa2246740/dsh-better-display#v0.3.6
github:aa2246740/dsh-better-display#v0.3.9
```

桌面端的插件管理器负责 Desktop profile 和其内置包管理器。本发布已包含编译好的 `lib/`;普通使用不需要 clone、构建或安装 DSHX。若应用在安装完成后提示刷新或重新打开,请按提示完成。

### Web CLI

```sh
dsh plugin --profile web add github:aa2246740/dsh-better-display#v0.3.6
dsh plugin --profile web add github:aa2246740/dsh-better-display#v0.3.9
```

这条官方 CLI 命令只写入 `web` profile,不能修改 Desktop App 的 profile。本机 PATH 上需要有 **pnpm**。对于已经运行的 Web Host,请重新打开该 Host 一次,再刷新网页;插件 bundle 会在启动时读取。
Expand All @@ -26,15 +26,15 @@ dsh plugin --profile web add github:aa2246740/dsh-better-display#v0.3.6

最终回答里的 ````mcp-app` 代码块会在阅读视图里挂成交互卡片,跑在 `<iframe sandbox="allow-scripts allow-forms">` 里,没有 `allow-same-origin`。卡片可以通过 JSON-RPC 把下一轮 prompt 填进输入框。技能包在 [`skills/generative-mcpapps/`](skills/generative-mcpapps/)。设置里的 **Better Display** 可把产物改为右侧栏预览(默认仍用系统应用),打开半透明毛玻璃(默认关),设置过程自动折叠开关(默认开),并检测该技能是否已装进宿主技能目录。

面向 DeepSeek Harness **0.2.0-rc.2**(`dsh-v0.2.0-rc.2`)。只改展示,不改 Agent 执行、SDK 或模型凭据。Node.js `^22.19.0 || >=24`。新会话默认进阅读。`@deepseek-ai/dsh-*` peer 范围是 `>=0.2.0-rc.1 <0.2.1`:接受 `0.2.0-rc.2` 和稳定版 `0.2.0`,拒绝 `0.2.0` alpha,也拒绝 `0.1.7-rc.2`。
面向 DeepSeek Harness **0.2.1-rc.2**(`dsh-v0.2.1-rc.2`)。只改展示,不改 Agent 执行、SDK 或模型凭据。Node.js `^22.19.0 || >=24`。新会话默认进阅读。`@deepseek-ai/dsh-*` peer 与 `engines.dsh` 范围是 `>=0.2.1-rc.1 <0.2.2`:接受 `0.2.1-rc.1`、`0.2.1-rc.2` 和稳定版 `0.2.1`,拒绝 `0.2.1` alpha,也拒绝 `0.2.0-rc.*`。

**0.3.0** 保留现有阅读布局、折叠和动效,接入官方反馈、工具详情、文件卡片及文件链接;并修复重新开启自动折叠后仍保持展开的问题。接入范围和升级检查见 [官方能力接入说明](docs/official-rendering-bridge.md)。

本地目录或 tarball(开发/本地测试):

```sh
dsh plugin --profile web add ./dsh-better-display
dsh plugin --profile web add ./dsh-better-display-0.3.6.tgz
dsh plugin --profile web add ./dsh-better-display-0.3.9.tgz
```

`dsh.bundle` 是开机捕获的。不要再往 profile 的 `cordis.patch.yml` 手写同一条 insert,会重复挂载。
Expand Down
29 changes: 16 additions & 13 deletions compat/harness-rc2.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
{
"harnessVersion": "0.2.0-rc.2",
"harnessVersion": "0.2.1-rc.2",
"hashes": {
"packages/client/ui-slots/src/index.ts": "27a453937cdcc28923c37ad90cd01489e458e205dc03032629183087b5b585d0",
"packages/client/ui-slots/src/renderer.ts": "ee834aafc19367922c139d41f677233fbdfcc042b4deff9f616aa43220ee09ee",
"packages/client/ui-slots/src/index.ts": "43989fb355e1e85316caa70b28de3294f9d6e7b179199a4e429dcd1ef73f2e24",
"packages/client/ui-slots/src/renderer.ts": "43ba3492fff724ffbe71d0b4bcfca410ab695d019aa2e163d2c8dd56cab1a849",
"packages/client/ui-renderer/src/client/registry.ts": "6b8b6b969d8bcf0314ea20438a223f3a90e1bd516571faecae5c3c01008ecf21",
"packages/client/ui-renderer/src/client/scoped-slots.tsx": "661382e8f8219d0aa69bec96e867f805ede41e0b7b4650169eed98f45c64fc0c",
"packages/client/ui-chat/src/client/contract/slots.ts": "99071c39ccc88d63505acf4cce7b2cf2a8b4cf5a9856b473e3ef11f8c7c52a7e",
"packages/client/ui-tool/src/client/contract/slots.ts": "9c88c132770426c799f6baac6f9cf9a5a9e6f031cbe919b5ee5aca4ab9be72cf",
"packages/client/ui-renderer/src/client/scoped-slots.tsx": "ff53b648f9a6fbd59bc13b89fbe33c67b32421c99ab7923689bfa1b47cea95c1",
"packages/client/ui-chat/src/client/contract/slots.ts": "1ff2e1d53d5566f78f23ef1fe83817eed10d6f0166f67bc08cd9159dfdf8b33a",
"packages/client/ui-tool/src/client/contract/slots.ts": "ba3d869c09fead1a4de6eef0b23a276d795ab159a3f9d5df1c5e8fe1c40a7415",
"packages/client/ui-deliverables/src/client/Deliverables.tsx": "b8d0a19dc208af7f8f44459adba9afe648cd3c398d75917ccfaf2f8c730cfe74",
"packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx": "ac98e943bde17e8f5e7ace6d16d0343297e7cb86da14d066eb6a856cf8363f07",
"packages/client/ui-chat/src/client/chat/MessageItem.tsx": "c9e3bffd724e93ffe7fcb3566d02d2300ae6ab55678bd094f26e4e58d6c24713",
"packages/client/ui-chat/src/client/chat/AssistantNodeView.tsx": "239c8fe1305ede17d3786bfdd61e7e52f3cab30ae548befe172867c52deef388",
"packages/client/ui-chat/src/client/chat/TurnTailNodeView.tsx": "4b493845e7d28b93a2db2198e70deffcf4b290c31218923fc7c945af737b56d1",
"packages/client/ui-chat/src/client/chat/TurnProcessNodeView.tsx": "714f2f5a05d7f69c008148b286f7ca7cd0a4231b97d18877797dd14fb07190a0",
"packages/client/ui-tool/src/client/tool/models/tool-call-model.ts": "f3d71d4453ba56ba73812126f39f4a720b5fd7bab7ce9ac40c74c15860bb2556",
"packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx": "e0d3e450a160ef395e4f50063d83a83a749763f7876fa0a36c5c2de68f6be387",
"packages/client/ui-chat/src/client/chat/MessageItem.tsx": "118a4d1dcf9eb3b128708b3021acd6f2f7584004f6f904e2d61df23daa528e63",
"packages/client/ui-chat/src/client/chat/AssistantNodeView.tsx": "72bbc22bd8584c6f8c07656e33b7adb5858f2151eff6e21c6e9a9e87178c41c2",
"packages/client/ui-chat/src/client/chat/TurnTailNodeView.tsx": "835118e15bb4518d8865de9421425456e377bd623cd8bad2d88ac95ae038b94f",
"packages/client/ui-chat/src/client/chat/TurnProcessNodeView.tsx": "b7aa82eeb7c8e32bc7e67cca6f4695d23d0ee497c4fc537160a78716a3283dd6",
"packages/client/ui-tool/src/client/tool/models/tool-call-model.ts": "1c9d44c2a2da9953edd922e21a9987995356dfc7fb8f3f066938e779a7927384",
"packages/client/ui-primitives/src/markdown/MarkdownText.tsx": "ff500ab71ac6a55df416f84cc1f5900327b9908c5180c4e2b3888377bd417a97",
"packages/client/ui-primitives/src/markdown/render.tsx": "6e4af631d34ae8c8ea1dbeabd1b4593ee9ff23c3470d2855708b3cf8b84bbca2",
"packages/client/ui-primitives/src/markdown/parse.ts": "e281b4120306987cce9cf6d8bccfeddec2fe0c7b7b1cc190966f6dcbfd320b1b",
Expand All @@ -22,6 +22,8 @@
},
"registrations": [
"conversation.chat.assistant-actions | feedback | packages/client/ui-message-feedback/src/client/index.ts",
"conversation.chat.flow | (chain/single) | packages/client/ui-chat/src/client/apply.ts",
"conversation.chat.message.images | (chain/single) | packages/client/ui-attachment/src/client/index.ts",
"conversation.chat.node | assistant-step | packages/client/ui-chat/src/client/chat/register-node-renderers.ts",
"conversation.chat.node | command | packages/client/ui-chat/src/client/chat/register-node-renderers.ts",
"conversation.chat.node | command-input | packages/client/ui-goal/src/client/index.ts",
Expand All @@ -40,10 +42,11 @@
"conversation.chat.node | unknown | packages/client/ui-chat/src/client/chat/register-node-renderers.ts",
"conversation.chat.node | user | packages/client/ui-chat/src/client/chat/register-node-renderers.ts",
"conversation.chat.node | workflow-run | packages/client/ui-workflow-run/src/client/index.ts",
"conversation.chat.reasoning.body | (chain/single) | packages/client/ui-chat/src/client/chat/register-node-renderers.ts",
"conversation.chat.turnTail | (chain/single) | packages/client/ui-plan/src/client/index.ts",
"conversation.chat.turnTail | @deepseek-ai/dsh-client-ui-deliverables | packages/client/ui-deliverables/src/client/index.ts",
"conversation.chat.turnTail | schedule-created | packages/client/ui-schedule/src/client/index.ts",
"conversation.message.images | (chain/single) | packages/client/ui-attachment/src/client/index.ts",
"conversation.chat.user.images | (chain/single) | packages/client/ui-attachment/src/client/index.ts",
"tool.call.images | (chain/single) | packages/client/ui-attachment/src/client/index.ts",
"tool.call.toolview | ask_user_question | packages/client/ui-tool/src/client/tool/toolviews/ask-question-row.tsx",
"tool.call.toolview | bash | packages/client/ui-tool/src/client/tool/toolviews/bash-sample.tsx",
Expand Down
2 changes: 1 addition & 1 deletion docs/official-rendering-bridge.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 官方能力接入说明

`0.3.0` 在 `v0.2.1` 的阅读布局上接入官方内容和控件,经过试用验收后发布。当前验收目标是 Harness `0.2.0-rc.2`(`dsh-v0.2.0-rc.2`,`639ed015397290b3745d163aafe02ffee4aa3f84`)。`conversation.chat.turnTail` 仍是 `list`。相对 `0.1.7-rc.2`,官方注册清单没有增减;`schedule-created` 和 `schedule_update` 继续走已有镜像座位,Reader 不另写这两张卡片。图标仍使用 `*Regular` 名称。开发者消息里的工具增减行用官方标题和计数,本地 Markdown 图片接受 Desktop 文件路由 `dsh-app://app/api/file`。`0.2.0-rc.2` 里官方对话的模型重试行增加了 `TextShimmer`,进行中的 `TurnProcessNodeView` 改为关闭后才渲染;阅读页本来就自己呈现这两行,所以阅读布局不跟着改。后续仍需维护的自有展示逻辑和升级边界见下文。
`0.3.0` 在 `v0.2.1` 的阅读布局上接入官方内容和控件,经过试用验收后发布。当前验收目标是 Harness `0.2.1-rc.2`(`dsh-v0.2.1-rc.2`,`687f282e8625c6b8d11ff58211a90524be2e4317`)。`conversation.chat.turnTail` 仍是 `list`。相对 `0.2.0-rc.2`,官方注册清单在记录基线时再核对;`schedule-created` 和 `schedule_update` 继续走已有镜像座位,Reader 不另写这两张卡片。图标仍使用 `*Regular` 名称。开发者消息里的工具增减行用官方标题和计数,本地 Markdown 图片接受 Desktop 文件路由 `dsh-app://app/api/file`。`0.2.0-rc.2` 起官方对话的模型重试行增加了 `TextShimmer`,进行中的 `TurnProcessNodeView` 改为关闭后才渲染;阅读页本来就自己呈现这两行,所以阅读布局不跟着改。Peer 与 `engines.dsh` 为 `>=0.2.1-rc.1 <0.2.2`。后续仍需维护的自有展示逻辑和升级边界见下文。

## 一个具体例子

Expand Down
Loading