dsh-at-file
FSMargoo/dsh-at-fileCodex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
在 DSH 聊天区右侧添加非等长非等距对话密度地图(历史聊天标签),一轮对话一个刻度,刻度长度与纵向距离反映消息大小,点击刻度可跳转至对应对话,标签繁杂时鼠标悬停会自动拉伸便于点击。
安装:dsh plugin --profile web add github:weien666/dsh-conversation-density-map
简体中文 | English
A minimal **conversation density map** plugin for **DeepSeek Harness**: within a fixed-height strip on the right side of the chat area, it uses small ticks to intuitively show the distribution, lengths, and current position of the entire conversation. Click any tick to smoothly jump to the corresponding turn.Pure frontend, zero dependencies, no build step — the actual plugin consists of only 3 source files.
user → AI → user → AI alternation;|
Regular window vs maximized window The horizontal length of the ticks changes automatically with conversation size (ticks stay equal-length in a regular window; once maximized, each tick represents the length of its message content) |
Regular window · hover spreading for dense conversations When there are many turns and the ticks are crowded, moving the mouse near the right edge automatically spreads the ticks vertically for easier clicking |
Maximized window · hover spreading for dense conversations The vertical spreading effect of the same scenario in a maximized window |
dsh-conversation-density-map/
│
├── client.js ← Plugin core: browser half (conversation density map implementation)
├── index.js ← Plugin core: host half (empty implementation)
├── package.json ← Plugin core: declares dsh.client / dsh.bundle
├── cordis.patch.yml ← bundle patch (applied automatically by `dsh plugin` on install; no manual insert needed)
│
├── docs/ ← demo GIFs (for repository display only; not downloaded during installation)
│
├── README.md
├── LICENSE
└── .gitignore
Static DSH plugins are installed in two steps: "place the plugin files into the DSH profile" + "register it so it takes effect" — no
npm installrequired. The steps below use Windows as an example. The plugin core consists of the 3 source files at the repository root (client.js / index.js / package.json) plus cordis.patch.yml.
dsh plugin --profile web add github:weien666/dsh-conversation-density-map
The install automatically appends the plugin to dsh.profile.bundles and applies the built-in patch (cordis.patch.yml) — no manual insert needed. Only the source files are installed; the GIFs in docs/ are not downloaded. After installing, restart DSH (dsh web restart) and hard-refresh the browser (Ctrl+Shift+R) to activate.
Open the Releases page of this repository and download the latest dsh-conversation-density-map-vX.Y.Z.zip — it contains only the 3 source files, no GIF clutter;
Extract it to any directory, e.g. D:\plugins\dsh-conversation-density-map (the folder containing the 3 source files after extraction is the "plugin directory");
Create a junction under the node_modules directory of the DSH config directory, pointing to it:
mklink /J "C:\Users\<YourUsername>\.dsh\profiles\web\node_modules\dsh-conversation-density-map" "D:\plugins\dsh-conversation-density-map"
Edit C:\Users\<YourUsername>\.dsh\profiles\web\cordis.patch.yml and append at the end:
- insert:
- id: conversation-density-map
name: dsh-conversation-density-map
Restart DSH (or refresh the web page with Ctrl+F5) → done.
node_modules\dsh-conversation-density-map\), then add the registration lines.If installed via Method A (one-line command):
dsh plugin --profile web remove dsh-conversation-density-map
Automatically removes the dependency and removes it from dsh.profile.bundles (the insert comes from the in-package patch, so no manual deletion is needed).
If installed via Method B / C (manual): reverse the steps:
insert lines in the profile's cordis.patch.yml;node_modules);All plugin effects are managed through the DSH lifecycle; no styles or listeners are left behind after uninstallation.
0.1.x DOM structure: data-chat-flow / data-chat-anchor-key / data-conversation-scroll);