hawkongz/dsh-chat-locator ↗★ 1

dsh-chat-locator

提供对话定位条及悬停预览设置页面 适合需要快速定位、跳转和预览 DSH 历史对话轮次的用户。

包名
dsh-chat-locator
兼容性
待验证
Cordis 依赖范围
*
版本
1.2.0
许可证
MIT
最近更新
2026年9月20日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hawkongz/dsh-chat-locator

📖 Usage

Everything lives on one settings page: Settings → 对话定位条. The table below lists each control with its default and range.

SettingDefaultRangeWhat it does
Show the locator rail
显示对话定位条OnOn / OffHides the whole rail. Turn jumping and unloaded-turn paging are unaffected.
Tick thickness
横线粗细2px1–8pxThe line width of each turn's tick. Tick spacing stays at 10px, so 8px is the practical ceiling.
Rail side
轨道位置RightLeft / RightWhich edge of the conversation area the rail hugs. The hover preview opens on the opposite side automatically.
Hover preview
悬停预览OnOn / OffShows the prompt and response for the hovered turn. Also gates the length gradient — with the preview off, no gradient is applied.
Preview line count
预览正文行数31–6How many lines of the response to show. The card grows with the content; only the overflow is clipped.
Preview font size
预览字号12px10–18pxThe card's font size. Line height scales with it at 1.5x, and the card height is computed from the same line height, so larger text is never clipped.
Preview card width
预览框宽度300px200–420pxThe card's width. It keeps the built-in container clamp, so it shrinks automatically in a narrow window.
Restore defaults
恢复默认——Resets all seven settings to their factory values. Disabled when everything is already at its default.

The length gradient

With the preview enabled, the tick you point at is the longest, and the ticks around it taper away along a curve:

Distance from the hovered tick0±1±2≥3
Width32px21px14px12px
Drop per step—11px7px2px

The adjacent tick gives up the most width, then progressively less, flattening out as it rejoins the rail. The width table is generated from 12 + 20 * (1 - d/3)^2, and docs/design-notes.md records how the exponent was tuned (2.5 was a cliff, 1.5 left the neighbours too long, 2.0 is the compromise in use). The gradient anchors on the hovered tick — the active turn's tick is never resized — and it disappears the moment the pointer leaves.

Troubleshooting

The plugin ships one debug hook. Run it in the browser console:

__dshChatLocator.state()
// {
//   railPrefix: 'eGxaPq', railFound: true, rules: '…',
//   config: { … },
//   settingsStatus: { status: 'ready', writable: true, unsupported: [] }
// }
What you seeWhat it means
railPrefix: nullThe rail is not rendered in this view — fewer than two turns, a container narrower than 900px, or a non-conversation view. Nothing is broken.
settingsStatus.status !== 'ready'The host settings namespace was not read. Check that the host half loaded.
settingsStatus.unsupported is non-emptyThe running host process has not registered those fields yet, so they apply to this session only. Restart dsh web; the plugin back-fills them automatically.