Bundle
dsh-user-message-jump
DSH Web 客户端插件:在会话左侧显示用户消息快速跳转竖带(类 Codex 会话目录)。
- Source
- jiangnan-awa
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 14 days ago
Readme
# dsh-user-message-jump
DSH(DeepSeek Harness)Web 客户端插件:在会话左侧显示**用户消息快速跳转竖带**,参考 Codex 会话左侧的目录导航。
## 效果
- 会话区左缘出现一条约 14px 宽的竖带,**每条短横线代表一条用户消息**(普通 `user` 消息 + 运行中插入的 `steering` 消息),从上到下按时间排列;
- **悬停**:横线平滑变长(12px → 36px)并变为品牌色,右侧弹出气泡显示消息文本预览(最多 3 行)与发送时间;
- **点击**:会话滚动到对应消息(顶部留 12px 空隙),该消息行以品牌色描边高亮约 1.2 秒,对应横线保持高亮标记;
- 横线之间为**无缝命中区**(每个命中区 8px 高),鼠标在相邻横线间移动不会「选空」;竖带空白处点击穿透,不遮挡会话内容;
- 无用户消息时自动隐藏;支持键盘操作(Tab 聚焦 + Enter/Space 跳转)。
## 安装
1. 构建(仓库已提交 `lib/client.js`,可直接使用;如需修改源码请先构建):
```bash
npm run build
```
2. 安装并装载(官方 bundle 通道):
本包声明了 `dsh.bundle`(`cordis.patch.yml` 包级补丁层),可通过 DSH 官方安装命令直接装进 profile 的 bundle 栈:
```bash
dsh plugin --profile <name> add dsh-user-message-jump
```
等价于在 profile 的 `cordis.patch.yml` 手工挂载:
```yaml
- insert:
- id: user-message-jump
name: dsh-user-message-jump
```
> 若 profile 里已有上面的手工挂载行,改用 bundle 通道前请删除它,避免双挂载。
3. 重启 DSH;Web 端会通过 `dsh.client` 扫描把本包编入启动图(`/plugins/<name>/client.js?rev=<hash>`),刷新页面后生效。
### 要求
- DSH 版本支持 web 客户端模块系统(`dsh.client` / `window.__ModuleLoader__`);
- 运行环境包含 `react`(seed 模块)与声明 `conversation.session.header.actions` 槽位的会话 UI 包(DSH 自带)。
## 开发
```
├── package.json # dsh.bundle 声明(cordis.patch.yml 补丁层)+ dsh.client 声明 + exports["./client"]
├── cordis.patch.yml # dsh.bundle.patch 包级补丁层(一行 insert)
├── src/
│ ├── client.js # 插件源码(纯 JS,createPlugin(React) 工厂)
│ └── style.css # 竖带样式(仅使用 DSH 主题 token)
├── scripts/
│ └── build.mjs # 打包为 window.__ModuleLoader__.load 格式
├── lib/
│ └── client.js # 构建产物(已提交,扫描时需要存在)
└── README.md
```
- 修改源码后执行 `npm run build` 重新生成 `lib/client.js`(带内容哈希 rev,页面自动取新包)。
- 样式仅使用 DSH 主题 token(如 `--dsw-alias-bg-overlay`、`--dsw-alias-brand-primary`),跟随亮/暗主题。
### 作为动态 Cordis 插件使用(免安装)
在 DSH 会话中也可用动态 Cordis 插件方式临时加载同一功能(代码形态略有差异:CSS 用 `styles.insert`,定时器走 `ctx.timer`(`inject: ['timer']`),无需 `__ModuleLoader__` 包装),详见 DSH 的 cordis 插件开发文档。
## License
[MIT](./LICENSE)
Install
dsh plugin --profile web add github:jiangnan-awa/dsh-user-message-jump
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-user-message-jump from the hub
- 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.