hawkongz/dsh-chat-locator ↗★ 1

dsh-chat-locator

Turn-rail settings for the DSH Web conversation locator: tick thickness, rail side, a curved length gradient anchored on the hovered tick, and a plain-text hover preview with adjustable line count, font size, and width. 适合需要快速定位、跳转和预览 DSH 历史对话轮次的用户。

패키지
dsh-chat-locator
호환성
미검증
Cordis peer 범위
*
버전
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.