Skip to content
dsh.fish
Bundle

dsh-tidy-display

One plugin for a calmer DeepSeek Harness: reading view + message rail + smart history loading, for Harness 0.1.0-0.2.1 (all rc).

Source
drscrewdriver
stars
1 stars
License
MIT
Updated
Updated yesterday

Readme

# dsh-tidy-display

[简体中文](README.md) | [English](README.en.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [Русский](README.ru.md) | [Español](README.es.md)

**整洁显示** —— DeepSeek Harness(DSH)**0.1.0–0.2.0** 的一个社区插件:把「阅读视图」与「消息轨」缝合成一个插件,长会话可扫读、可定位、可续聊。

> 本项目由两个广受欢迎的 DSH 插件合并而来:
> [dsh-better-display](https://github.com/aa2246740/dsh-better-display)(阅读视图,经 fork 维护)×
> [dsh-tidychat](https://github.com/BananaSoldier01/dsh-tidychat)(消息轨 / 智能加载)。
> 合并消除了两者因 DOM 契约产生的冲突,并向两者致敬。

<!-- host-compat:begin — generated by scripts/sync-hosts.mjs from scripts/hosts.mjs; DO NOT EDIT -->
- **支持的 DSH 宿主:** `0.1.0-rc.2` `0.1.0-rc.3` `0.1.0-rc.6` `0.1.0-rc.7` `0.1.0-rc.8` `0.1.1-rc.1` `0.1.1-rc.2` `0.1.2-rc.1` `0.1.5-rc.1` `0.1.5-rc.2` `0.1.5-rc.3` `0.1.7-rc.1` `0.1.7-rc.2` `0.2.0-rc.1` `0.2.0-rc.2` `0.2.1-rc.1` `0.2.1-rc.2`(覆盖 0.1.0 / 0.1.1 / 0.1.2 / 0.1.5 / 0.1.7 / 0.2.0 / 0.2.1 七条线共 17 个 rc)
<!-- host-compat:end -->

## 来源与致谢(如实说明)

**实时显示(流式阅读)** 来自 [dsh-better-display](https://github.com/aa2246740/dsh-better-display) 阅读视图:上游 aa2246740 的流式渲染、过程折叠编排、官方桥接,经 drscrewdriver fork 增强。本项目未重写其渲染与动效链路。

**消息轨** 来自 [dsh-tidychat](https://github.com/BananaSoldier01/dsh-tidychat):canvas 轨、鱼眼悬停、配色链、智能加载均为移植,经 drscrewdriver compat 线增强(白色柔光、steering 同视、DOM 单一事实源)。

### 原版 better-display 的不足,与本项目 / fork 的修复

1. **消息与思考没有底框**——最终回答与思考文字直接铺在页面背景上,换肤、壁纸、深色主题下可读性差。→ fork 为回答加上了官方 `--dsw-alias-bg-layer-1` 半透明气泡底,思考卡加同款衬底(fork 提交 `fa3a795`、`94d59c7`)。
2. **阅读视图丢弃宿主行级锚点**——`data-chat-anchor-key` / `data-chat-flow-kind` 不随消息行输出,以该契约为事实源的第三方插件(如 tidychat 消息轨)在阅读视图下解析出 0 行、**静默失效**。→ 已向上游提交修复 PR [aa2246740/dsh-better-display#41](https://github.com/aa2246740/dsh-better-display/pull/41);合并项目内同样自带该修复。
3. 自带 TimelineRail 只有官方大纲一轨——无鱼眼摘要、无点击跳转、无配色能力。

### 原版 dsh-tidychat 的不足,与合并的动机

1. 折叠 / 分隔线是 DOM 手术,与宿主 0.1.2+ 的原生折叠功能重叠,需要用户手动二选一。
2. v0.2.10 及更早版本在 DSH 0.1.2 宿主上消息轨取数路径读错快照——解析出 0 轮、**实际从未渲染**(v0.3.0 修复,见其仓库 `docs/RAIL-ROOT-CAUSE-ANALYSIS.md`)。
3. 与 better-display 阅读视图**双向冲突**:tidychat 的手术作用不到阅读视图的行;阅读视图丢锚点又反过来废掉消息轨——这正是本项目合并的直接动机。

对两个上游与作者(aa2246740、BananaSoldier01)致谢——本项目站在它们肩上;上游后续改进若与本项目不冲突,会择机跟进。

## 宿主兼容性

| DSH 宿主 | 阅读视图 | 消息轨 | 设置入口 |
|---|---|---|---|
| 0.2.0-rc.1+(本线,`compat/0.2.0`) | ✅ | ✅(双视图) | 起子插件设置 → 整洁显示 |
| 0.1.7-rc.1+(main 线) | ✅ | ✅(双视图) | 起子插件设置 → 整洁显示 |
| 0.1.5-alpha.1 ~ 0.1.6(含 0.1.5) | ❌ | ✅(`compat/0.1.5` 线,tag `v0.1.0-dsh0.1.5`) | 插件配置卡片 |
| 0.1.2-alpha.2 ~ 0.1.4.x | ❌ | ✅(`compat/0.1.2` 线,tag `v0.1.0-dsh0.1.2`) | 插件配置卡片 |
| 0.1.0-rc.7 ~ 0.1.2-alpha.1(含 0.1.1) | ❌ | ✅(`compat/0.1.1` 线,tag `v0.1.0-dsh0.1.1`) | 插件配置卡片 |

- 阅读视图绑定宿主槽位契约,按线锁基线(本线 0.2.0-rc.2,main 线 0.1.7-rc.2;官方在 0.1.7-rc.1 → rc.2 → 0.2.0 之间都有契约漂移),不下放旧宿主。
- 旧宿主反向适配**已实施**:消息轨子集(轨 + 柔光 + 配色 + 智能加载)在三条兼容分支上发布,安装一行式形如 `dsh plugin --profile web add github:drscrewdriver/dsh-tidy-display#v0.1.0-dsh0.1.5`;npm 发布后补 dist-tag `dsh-0.1.5` / `dsh-0.1.2` / `dsh-0.1.1`。0.1.5 线的官方轨接管为待实测项;0.1.3 / 0.1.4 随 `compat/0.1.2` 线理论可用、未实测。
- 0.2.0 线(本分支):安装 `dsh plugin --profile web add github:drscrewdriver/dsh-tidy-display#v0.2.0-dsh0.2.0`;npm 发布后可用 dist-tag:`dsh plugin --profile web add dsh-tidy-display@dsh-0.2.0`。
- 0.1.0-rc.6 及更早不在支持范围(请使用 dsh-tidychat 0.1.0)。
- 矩阵截至 2026-09-30(tidy-display v0.2.0 / better-display 0.3.3-fork.5 / tidychat 0.3.4 线)。

## 功能

### 阅读视图(来自 better-display)
- 执行过程收拢为可展开的摘要,最终回答以**消息气泡**呈现(半透明底 + 可选毛玻璃,透出皮肤壁纸)
- 思考卡同款半透明衬底;流式思考可跟随滚动、可暂停、可展开全文
- 官方桥接:工具视图、反馈、产物卡片、turnTail 等经官方槽位渲染
- mcp-app 代码块渲染为沙箱交互卡片(`<iframe sandbox="allow-scripts allow-forms">`);技能包见 [`skills/generative-mcpapps/`](skills/generative-mcpapps/)
- 交付物行、等待时钟、pending 回显;原版「对话 / 轨迹」、输入框、模型选择、工具和审批都还在

### 消息轨(来自 dsh-tidychat)
- 会话区边缘的 canvas 导航轨:鱼眼悬停 + 摘要卡、点击跳转、滚动时当前轮高亮
- 样式**横线 / 圆点**,位置**左缘 / 右缘(镜像)**
- **白色柔光外圈**:当前轮与悬停轮标记底下垫一层柔光,复杂壁纸上也清晰
- **配色**:标记色 / 强调色各自「自动(跟随主题,对比不足自动纠偏)/ 自定义(取色器 + HEX/RGB 文本 + 透明度滑杆)」
- **接管官方消息轨**:隐藏官方右缘 TurnNavigator(隐藏而非卸载),只保留本轨
- 原生「对话」视图与「阅读」视图**双视图都可用**

### 设置
所有设置集中在 **设置 → 起子插件设置 → 整洁显示**:消息轨(开关 / 位置 / 样式 / 外圈柔光 / 接管 / 配色)+ 消息气泡 / 半透明毛玻璃 / 自动折叠 / 产物打开方式。配置持久化在 `dsh.reader.v1`。

## 安装

> ⚠️ **与 `dsh-better-display`、`@bananasoldier01/dsh-tidychat` 互斥**:三者都会在 `conversation.view` 列表槽位注册 `reader` 视图(同 id 同优先级),同时启用会在激活期因重复注册直接失败(client 侧报 `entry did not activate`,页面卡在「插件加载失败」)。启用本插件前先卸载或禁用它们。

### DSH Studio 桌面 App(推荐)

打开 **设置 → 插件 → 添加插件**,输入包名:

```text
dsh-tidy-display
```

### Web CLI

npm 已发布,直接用包名:

```sh
dsh plugin --profile web add dsh-tidy-display
```

GitHub 地址同样可用(旧宿主 compat 线按 tag 装,见上方兼容矩阵):

```sh
dsh plugin --profile web add github:drscrewdriver/dsh-tidy-display
```

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

```sh
dsh plugin --profile web add ./dsh-tidy-display
dsh plugin --profile web add ./dsh-tidy-display-0.1.0.tgz
```

`dsh.bundle` 是开机捕获的:**不要**再往 profile 的 `cordis.patch.yml` 手写同一条 insert(会重复挂载);已装过的卸载用 `dsh plugin --profile web remove dsh-tidy-display`。对已经运行的 Web Host,安装后重开一次 Host 再刷新网页。

## 开发

```sh
pnpm install
npm run typecheck
npm run build      # 产物 lib/(入库;check-harness-compat 门需要 Harness 源码检出)
npm test
```

面向 DeepSeek Harness **0.1.0–0.2.0 的全部 rc**(枚举清单见上方 host-compat 管理块)。只改展示,不改 Agent 执行、SDK 或模型凭据。Node.js `^22.19.0 || >=24`。新会话默认进阅读。

## 与原项目的关系

详见顶部「[来源与致谢](#来源与致谢如实说明)」——上游后续改进若与本项目不冲突会择机跟进。

## 许可

展示与 Markdown 部分来自 DeepSeek Harness(MIT)。动效参考 [Transitions.dev](https://transitions.dev/)。本仓库代码 [MIT](LICENSE)。

Install

dsh plugin --profile web add github:drscrewdriver/dsh-tidy-display

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source