Bundle
dsh-chain-toggle-all
DSH Web GUI: one-click expand/collapse all reasoning chains and tool chains in the current session (官方 repository-plugin 格式 / official bundle format)
- Source
- NekoDD-wow
- License
- MIT
- Updated
- Updated yesterday
Readme
<h1 align="center">dsh-chain-toggle-all</h1>
<p align="center">
<strong>DSH Web GUI 一键展开/收起全部思维链与工具链</strong><br/>
会话头部一个按钮:展开全部 Think 链 + 工具链,再点一下全部收起。
</p>
## 功能
- 在会话头部操作行新增「**展开全部 / 收起全部**」按钮
- 点击「展开全部」:当前会话内**所有**思维链(Think)与工具链(Tool call)一次性展开
- 点击「收起全部」:全部折叠回一行摘要
- 按钮文案随真实状态自动切换:手动展开/收起任意一条链,按钮文字也会跟着变(MutationObserver 监听 `aria-expanded`)
- 会话内没有任何链时按钮自动隐藏,不占空间
## 安装
官方 **bundle 插件** 格式(仓库根 `package.json` 的 `dsh.bundle` + `dsh.client`)。经官方 profile 管理:
```sh
dsh plugin --profile web add "github:NekoDD-wow/dsh-chain-toggle-all" # git 源(推荐)
```
装完 **重启 web**(bundle 层在启动时合成),会话头部标题右侧即可看到按钮。
## 工作原理
思维链(`ReasoningRow`)与工具链(`ToolRow`)底层共用同一个 `DisclosureRow` 组件,每行带有:
- `data-disclosure-row` — 行标记
- `aria-expanded` — 展开状态
- 整行 `role=button`,点击即切换展开
插件扫描会话滚动容器(`[data-conversation-scroll]`)内的
`[data-variant="think"] [data-disclosure-row], [data-tool] [data-disclosure-row]`,
确定目标状态(有任何折叠 → 全部展开;全部展开 → 全部收起)后对目标行执行 `.click()`。
纯前端实现:不修改 DSH 源码,不注入全局样式,插件卸载即完全还原。
## 开发
```
dsh-chain-toggle-all/
├── package.json # dsh.bundle.patch + dsh.client 元数据
├── cordis.patch.yml # profile 组合层插入行
└── .dsh-plugin/
├── package.json
├── index.mjs # host half(空 apply,占位)
└── client.js # browser half(__ModuleLoader__ bundle)
```
## License
MIT
Install
dsh plugin --profile web add github:NekoDD-wow/dsh-chain-toggle-all
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-chain-toggle-all from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.