dsh-better-display 0.3.2 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.en.md +13 -15
  3. package/README.md +13 -15
  4. package/compat/harness-rc2.json +11 -9
  5. package/docs/official-rendering-bridge.md +1 -1
  6. package/lib/client.js +829 -2680
  7. package/lib/client.js.map +1 -1
  8. package/lib/types/client/ChoreographedFlow.d.ts.map +1 -1
  9. package/lib/types/client/ChoreographedFlow.js +6 -0
  10. package/lib/types/client/ChoreographedFlow.js.map +1 -1
  11. package/lib/types/client/Reader.js +1 -1
  12. package/lib/types/client/index.d.ts.map +1 -1
  13. package/lib/types/client/index.js.map +1 -1
  14. package/lib/types/client/markdown/render.d.ts.map +1 -1
  15. package/lib/types/client/markdown/render.js +2 -1
  16. package/lib/types/client/markdown/render.js.map +1 -1
  17. package/lib/types/client/native/ContextInjectionRow.d.ts.map +1 -1
  18. package/lib/types/client/native/ContextInjectionRow.js +15 -3
  19. package/lib/types/client/native/ContextInjectionRow.js.map +1 -1
  20. package/lib/types/client/native/tool-update.d.ts +23 -0
  21. package/lib/types/client/native/tool-update.d.ts.map +1 -0
  22. package/lib/types/client/native/tool-update.js +22 -0
  23. package/lib/types/client/native/tool-update.js.map +1 -0
  24. package/lib/types/client/platform-media.d.ts +1 -1
  25. package/lib/types/client/platform-media.d.ts.map +1 -1
  26. package/lib/types/client/platform-media.js +9 -4
  27. package/lib/types/client/platform-media.js.map +1 -1
  28. package/package.json +22 -17
  29. package/scripts/build-motion-fixture.mjs +12 -0
  30. package/scripts/link-harness-dependencies.mjs +2 -0
  31. package/scripts/verify-flowcell.mjs +87 -0
  32. package/scripts/verify-tool-shimmer.mjs +62 -0
  33. package/src/client/ChoreographedFlow.tsx +5 -0
  34. package/src/client/Reader.module.css +5 -2
  35. package/src/client/Reader.tsx +1 -1
  36. package/src/client/index.tsx +2 -0
  37. package/src/client/markdown/render.tsx +2 -1
  38. package/src/client/native/ContextInjectionRow.module.css +4 -0
  39. package/src/client/native/ContextInjectionRow.tsx +28 -6
  40. package/src/client/native/tool-update.ts +32 -0
  41. package/src/client/platform-media.ts +9 -3
  42. package/tests/context-tool-update.test.ts +33 -0
  43. package/tests/platform-media.test.ts +6 -0
  44. package/tests/stock-install.test.ts +17 -0
  45. package/tsdown.config.ts +7 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.5 — 2026-10-04
4
+
5
+ - Release finished expand animations so process rows return to their natural height. Content changes after expanding no longer leave blank space or clip steps until a page refresh.
6
+ - Preserve the collapse animation until React removes the content, avoiding a one-frame flash.
7
+ - Restore plain CSS handling in the motion fixture builder and add browser regression coverage for content resize, repeated disclosures, instant collapse, disabled motion, and rapid reversal.
8
+
9
+ ## 0.3.4 — 2026-09-28
10
+
11
+ - Accept Harness `0.2.0-rc.1` (`dsh-v0.2.0-rc.1`, `4878cdabd87d4041bdaff61d04c966883b9fd07a`). Peer range is `>=0.2.0-rc.1 <0.2.1`. That range accepts `0.2.0-rc.1` and stable `0.2.0`, rejects `0.2.0` alphas, and rejects `0.1.7-rc.2`.
12
+ - `conversation.chat.turnTail` stays a list slot. Icon imports stay on the `*Regular` names. Official registrations are unchanged from `0.1.7-rc.2`.
13
+ - Stock chat `MessageItem` wraps an active model-retry line in `TextShimmer`, and `TurnProcessNodeView` renders only after the turn closes. Reader already owns those rows, so the reading layout is unchanged. `compat/harness-rc2.json` is re-recorded against this tag after that review.
14
+
15
+ ## 0.3.3 — 2026-09-24
16
+
17
+ - Accept Harness `0.1.7-rc.2` (`dsh-v0.1.7-rc.2`, `477b4f420553e8a52c2fbccc464d7561b239c443`). Peer range stays `>=0.1.7-rc.1 <0.1.8`.
18
+ - `conversation.chat.turnTail` stays a list slot. The new `schedule-created` tail entry and `schedule_update` tool view are additional official registrations, mirrored through the existing seats.
19
+ - Developer tool-change context (`tool-addition` / `tool-removal`) uses the official title and count copy instead of a generic injection row.
20
+ - Local Markdown images accept the Desktop file route `dsh-app://app/api/file`.
21
+
3
22
  ## 0.3.2 — 2026-09-24
4
23
 
5
24
  - 补齐 0.1.7-rc.1 官方桥接的运行时契约:工具视图传入 `phase`/`useDisclosure`/`hookContext{callId}`,聊天节点改用 `{turnData, disclosureReset}` 快照 store;修复真实宿主里官方工具视图静默落到 fallback 的问题。
package/README.en.md CHANGED
@@ -2,41 +2,39 @@
2
2
 
3
3
  [中文](./README.md)
4
4
 
5
- Prefer npm (version-pinable):
5
+ ## Install
6
6
 
7
- ```sh
8
- dsh plugin --profile web add dsh-better-display@0.3.1
9
- ```
7
+ ### DSH Studio desktop app (recommended)
10
8
 
11
- Or latest:
9
+ Open **Settings → Plugins → Add plugin** and enter this in “Package name or address”:
12
10
 
13
- ```sh
14
- dsh plugin --profile web add dsh-better-display
11
+ ```text
12
+ github:aa2246740/dsh-better-display#v0.3.5
15
13
  ```
16
14
 
17
- Fallback: install from GitHub (tracks the default branch tip):
15
+ 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.
16
+
17
+ ### Web CLI
18
18
 
19
19
  ```sh
20
- dsh plugin --profile web add github:aa2246740/dsh-better-display
20
+ dsh plugin --profile web add github:aa2246740/dsh-better-display#v0.3.5
21
21
  ```
22
22
 
23
- You need official `dsh` (or `npx @deepseek-ai/dsh`) and **pnpm** on PATH. `dsh plugin add` runs pnpm in `$DSH_HOME/profiles/web`. This repo commits built `lib/`, so git / npm installs do not need `prepare` or a profile `allowBuilds` entry.
24
-
25
- Then restart that Host and reload the page. `dsh plugin add` writes the profile. It does not hot-load a running process.
23
+ 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.
26
24
 
27
25
  Adds a **阅读** tab to DeepSeek Harness. While a turn runs you see steps, thinking, and progress. After a successful turn those collapse and the final answer stays. Native Chat / Trajectory, the composer, model picker, tools, and approvals stay. The reading column keeps ChatView's `data-chat-flow` hook so third-party skins that gate the composer on that mark still treat Reader as an interactive conversation.
28
26
 
29
27
  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.
30
28
 
31
- Targets DeepSeek Harness **0.1.7-rc.1**. Display only. It does not change Agent execution, the SDK, or credentials. Node.js `^22.19.0 || >=24`. New sessions default to reading.
29
+ 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`.
32
30
 
33
31
  **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.
34
32
 
35
- From a local checkout or tarball:
33
+ From a local checkout or tarball (development/local testing):
36
34
 
37
35
  ```sh
38
36
  dsh plugin --profile web add ./dsh-better-display
39
- dsh plugin --profile web add ./dsh-better-display-0.3.1.tgz
37
+ dsh plugin --profile web add ./dsh-better-display-0.3.5.tgz
40
38
  ```
41
39
 
42
40
  `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.
package/README.md CHANGED
@@ -2,41 +2,39 @@
2
2
 
3
3
  [English](./README.en.md)
4
4
 
5
- 推荐用 npm(可钉版本):
5
+ ## 安装
6
6
 
7
- ```sh
8
- dsh plugin --profile web add dsh-better-display@0.3.1
9
- ```
7
+ ### DSH Studio 桌面 App(推荐)
10
8
 
11
- 也可以装 latest:
9
+ 打开 **设置 → 插件 → 添加插件**,在“包名或地址”中输入:
12
10
 
13
- ```sh
14
- dsh plugin --profile web add dsh-better-display
11
+ ```text
12
+ github:aa2246740/dsh-better-display#v0.3.5
15
13
  ```
16
14
 
17
- 备选:从 GitHub 直装(跟默认分支最新提交):
15
+ 桌面端的插件管理器负责 Desktop profile 和其内置包管理器。本发布已包含编译好的 `lib/`;普通使用不需要 clone、构建或安装 DSHX。若应用在安装完成后提示刷新或重新打开,请按提示完成。
16
+
17
+ ### Web CLI
18
18
 
19
19
  ```sh
20
- dsh plugin --profile web add github:aa2246740/dsh-better-display
20
+ dsh plugin --profile web add github:aa2246740/dsh-better-display#v0.3.5
21
21
  ```
22
22
 
23
- PATH 上要有官方 `dsh`(没有就用 `npx @deepseek-ai/dsh`)和 **pnpm**。`dsh plugin add` 会在 `$DSH_HOME/profiles/web` 里跑 pnpm。仓库已提交编译好的 `lib/`,git / npm 安装都不用 `prepare`,也不用改 profile 的 `allowBuilds`。
24
-
25
- 然后重启这个 Host,再刷新页面。`dsh plugin add` 只写 profile,不会热挂正在跑的进程。
23
+ 这条官方 CLI 命令只写入 `web` profile,不能修改 Desktop App 的 profile。本机 PATH 上需要有 **pnpm**。对于已经运行的 Web Host,请重新打开该 Host 一次,再刷新网页;插件 bundle 会在启动时读取。
26
24
 
27
25
  给 DeepSeek Harness 加一个 **阅读** 页签:执行时能看到步骤、思考和进度;整轮成功结束后把过程收起来,留下最终回答。原版「对话 / 轨迹」、输入框、模型选择、工具和审批都还在。阅读列保留宿主 ChatView 的 `data-chat-flow` 钩子,依赖该标记显示输入框的第三方皮肤不会把阅读页当成仅检视视图。
28
26
 
29
27
  最终回答里的 ````mcp-app` 代码块会在阅读视图里挂成交互卡片,跑在 `<iframe sandbox="allow-scripts allow-forms">` 里,没有 `allow-same-origin`。卡片可以通过 JSON-RPC 把下一轮 prompt 填进输入框。技能包在 [`skills/generative-mcpapps/`](skills/generative-mcpapps/)。设置里的 **Better Display** 可把产物改为右侧栏预览(默认仍用系统应用),打开半透明毛玻璃(默认关),设置过程自动折叠开关(默认开),并检测该技能是否已装进宿主技能目录。
30
28
 
31
- 面向 DeepSeek Harness **0.1.7-rc.1**。只改展示,不改 Agent 执行、SDK 或模型凭据。Node.js `^22.19.0 || >=24`。新会话默认进阅读。
29
+ 面向 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`。
32
30
 
33
31
  **0.3.0** 保留现有阅读布局、折叠和动效,接入官方反馈、工具详情、文件卡片及文件链接;并修复重新开启自动折叠后仍保持展开的问题。接入范围和升级检查见 [官方能力接入说明](docs/official-rendering-bridge.md)。
34
32
 
35
- 本地目录或 tarball:
33
+ 本地目录或 tarball(开发/本地测试):
36
34
 
37
35
  ```sh
38
36
  dsh plugin --profile web add ./dsh-better-display
39
- dsh plugin --profile web add ./dsh-better-display-0.3.1.tgz
37
+ dsh plugin --profile web add ./dsh-better-display-0.3.5.tgz
40
38
  ```
41
39
 
42
40
  `dsh.bundle` 是开机捕获的。不要再往 profile 的 `cordis.patch.yml` 手写同一条 insert,会重复挂载。
@@ -1,21 +1,21 @@
1
1
  {
2
- "harnessVersion": "0.1.7-rc.1",
2
+ "harnessVersion": "0.2.0-rc.2",
3
3
  "hashes": {
4
4
  "packages/client/ui-slots/src/index.ts": "27a453937cdcc28923c37ad90cd01489e458e205dc03032629183087b5b585d0",
5
5
  "packages/client/ui-slots/src/renderer.ts": "ee834aafc19367922c139d41f677233fbdfcc042b4deff9f616aa43220ee09ee",
6
6
  "packages/client/ui-renderer/src/client/registry.ts": "6b8b6b969d8bcf0314ea20438a223f3a90e1bd516571faecae5c3c01008ecf21",
7
- "packages/client/ui-renderer/src/client/scoped-slots.tsx": "082ebd62a6d287704d116fa1b233f12ab62a91bc6ccccf99d8137b1f33b8d02b",
8
- "packages/client/ui-chat/src/client/contract/slots.ts": "4bfe6f2b3d33d0ba4dc82f7ed93255ad4a2df16c6540937a07a658bd66d4d664",
9
- "packages/client/ui-tool/src/client/contract/slots.ts": "4ae6334ebb0c6a267c13e8b6b504a614d302e77b4080a63408b97f4d25b22a3f",
7
+ "packages/client/ui-renderer/src/client/scoped-slots.tsx": "661382e8f8219d0aa69bec96e867f805ede41e0b7b4650169eed98f45c64fc0c",
8
+ "packages/client/ui-chat/src/client/contract/slots.ts": "99071c39ccc88d63505acf4cce7b2cf2a8b4cf5a9856b473e3ef11f8c7c52a7e",
9
+ "packages/client/ui-tool/src/client/contract/slots.ts": "9c88c132770426c799f6baac6f9cf9a5a9e6f031cbe919b5ee5aca4ab9be72cf",
10
10
  "packages/client/ui-deliverables/src/client/Deliverables.tsx": "b8d0a19dc208af7f8f44459adba9afe648cd3c398d75917ccfaf2f8c730cfe74",
11
- "packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx": "d0a60ef4c8620e7916579f1e7f959fa2c81e8dcdbc1dea1d7ea16b5b667adb62",
12
- "packages/client/ui-chat/src/client/chat/MessageItem.tsx": "181844e9c1809607458dfdfbbffa50cbc16357d0696ae78a8ee13f86b5fd6354",
11
+ "packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx": "ac98e943bde17e8f5e7ace6d16d0343297e7cb86da14d066eb6a856cf8363f07",
12
+ "packages/client/ui-chat/src/client/chat/MessageItem.tsx": "c9e3bffd724e93ffe7fcb3566d02d2300ae6ab55678bd094f26e4e58d6c24713",
13
13
  "packages/client/ui-chat/src/client/chat/AssistantNodeView.tsx": "239c8fe1305ede17d3786bfdd61e7e52f3cab30ae548befe172867c52deef388",
14
14
  "packages/client/ui-chat/src/client/chat/TurnTailNodeView.tsx": "4b493845e7d28b93a2db2198e70deffcf4b290c31218923fc7c945af737b56d1",
15
- "packages/client/ui-chat/src/client/chat/TurnProcessNodeView.tsx": "731a879e517c9ff28c7d833863e774745666cffe3a2fd2f9aa3fff1adcbc4a17",
16
- "packages/client/ui-tool/src/client/tool/models/tool-call-model.ts": "d3373fbb23ae4fb158ed009d0c0d7aaa5a22609946adb52e48a30cb02323c16f",
15
+ "packages/client/ui-chat/src/client/chat/TurnProcessNodeView.tsx": "714f2f5a05d7f69c008148b286f7ca7cd0a4231b97d18877797dd14fb07190a0",
16
+ "packages/client/ui-tool/src/client/tool/models/tool-call-model.ts": "f3d71d4453ba56ba73812126f39f4a720b5fd7bab7ce9ac40c74c15860bb2556",
17
17
  "packages/client/ui-primitives/src/markdown/MarkdownText.tsx": "ff500ab71ac6a55df416f84cc1f5900327b9908c5180c4e2b3888377bd417a97",
18
- "packages/client/ui-primitives/src/markdown/render.tsx": "6bcd477f6830587e5258aed48df81b0c7c0c0e661ea74ba8828fc4be653875de",
18
+ "packages/client/ui-primitives/src/markdown/render.tsx": "6e4af631d34ae8c8ea1dbeabd1b4593ee9ff23c3470d2855708b3cf8b84bbca2",
19
19
  "packages/client/ui-primitives/src/markdown/parse.ts": "e281b4120306987cce9cf6d8bccfeddec2fe0c7b7b1cc190966f6dcbfd320b1b",
20
20
  "packages/client/ui-primitives/src/markdown/incremental.ts": "eaa266bb77dfb646738d0fdd79be4f1c4bc5490f7bf3f4127f9ffb72ef741ff8",
21
21
  "packages/client/ui-primitives/src/markdown/katex.tsx": "8227e04d29333d2568021ed012143237b457852bce25d82cf394d72b941e74a5"
@@ -42,6 +42,7 @@
42
42
  "conversation.chat.node | workflow-run | packages/client/ui-workflow-run/src/client/index.ts",
43
43
  "conversation.chat.turnTail | (chain/single) | packages/client/ui-plan/src/client/index.ts",
44
44
  "conversation.chat.turnTail | @deepseek-ai/dsh-client-ui-deliverables | packages/client/ui-deliverables/src/client/index.ts",
45
+ "conversation.chat.turnTail | schedule-created | packages/client/ui-schedule/src/client/index.ts",
45
46
  "conversation.message.images | (chain/single) | packages/client/ui-attachment/src/client/index.ts",
46
47
  "tool.call.images | (chain/single) | packages/client/ui-attachment/src/client/index.ts",
47
48
  "tool.call.toolview | ask_user_question | packages/client/ui-tool/src/client/tool/toolviews/ask-question-row.tsx",
@@ -68,6 +69,7 @@
68
69
  "tool.call.toolview | schedule_create | packages/client/ui-tool/src/client/tool/toolviews/details-row.tsx",
69
70
  "tool.call.toolview | schedule_delete | packages/client/ui-tool/src/client/tool/toolviews/details-row.tsx",
70
71
  "tool.call.toolview | schedule_list | packages/client/ui-tool/src/client/tool/toolviews/details-row.tsx",
72
+ "tool.call.toolview | schedule_update | packages/client/ui-tool/src/client/tool/toolviews/details-row.tsx",
71
73
  "tool.call.toolview | send_message | packages/client/ui-tool/src/client/tool/toolviews/details-row.tsx",
72
74
  "tool.call.toolview | session_event_read | packages/client/ui-tool/src/client/tool/toolviews/details-row.tsx",
73
75
  "tool.call.toolview | session_event_search | packages/client/ui-tool/src/client/tool/toolviews/details-row.tsx",
@@ -1,6 +1,6 @@
1
1
  # 官方能力接入说明
2
2
 
3
- `0.3.0` 在 `v0.2.1` 的阅读布局上接入官方内容和控件,经过试用验收后发布。当前验收目标是 Harness `0.1.7-rc.1`。`conversation.chat.turnTail` 在这一版是 `list`,不再是 `chain`。后续仍需维护的自有展示逻辑和升级边界见下文。
3
+ `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` 改为关闭后才渲染;阅读页本来就自己呈现这两行,所以阅读布局不跟着改。后续仍需维护的自有展示逻辑和升级边界见下文。
4
4
 
5
5
  ## 一个具体例子
6
6