dsh-turn-navigator
Manifest valid@deepseek-ai/dsh-turn-navigator
English | 中文
A compact turn navigator for long DSH Web conversations. It follows the conversation scroll, previews a user turn on hover, and jumps to that turn on click. It stays hidden until the conversation contains at least three user turns.
Preview

It supports keyboard focus, light and dark themes, and reduced-motion preferences. When needed, it loads only enough older history to decide whether the navigator should appear without moving the reader's current position.
Installation
The plugin is private and not published. Its private repository is dsh-external/dsh-turn-navigator, but the repository remains empty until the first reviewed push. Use the local installation path until a reviewed commit is available, then start Web:
dsh plugin --profile web add -w "/path/to/dsh-turn-navigator"
dsh web
After the first reviewed commit is pushed, install that exact private revision with:
dsh plugin --profile web add -w github:dsh-external/dsh-turn-navigator#<reviewed-commit>
The checked-in lib/ output installs without rebuilding. A compatible DSH Web version is required. To remove the plugin:
dsh plugin --profile web remove -w @deepseek-ai/dsh-turn-navigator
Required DSH Web slot
This plugin registers into conversation.chat.navigator; it does not own or render that slot. A compatible DSH Web build must ship the same contract in both the host runtime and the official private client SDK declarations. A plugin-local type augmentation is not a substitute: it could make TypeScript pass while a host that does not render the slot silently shows no navigator.
Add the slot in the owning @deepseek-ai/dsh-client-ui-conversation package at these points:
- In the slot contract, declare a session-scoped single slot whose owner supplies anchored older-history loading, and include it in the chat view's
PropsRenderSlotsunion:
export interface TurnNavigatorOwnerProps {
loadOlder: () => void
}
interface SlotMap {
'conversation.chat.navigator': {
kind: 'single'
scope: 'session'
owner: TurnNavigatorOwnerProps
}
}
- In the chat view registration, claim the child slot with the same kind and scope:
children: {
'conversation.chat.navigator': { kind: 'single', scope: 'session' },
}
- In the chat view component, render the slot beside the transcript scroll container and pass the callback that preserves the current reading row while older history is prepended:
{renderSlot('conversation.chat.navigator', { loadOlder: loadOlderAnchored })}
- Cover declaration and disposal, render dispatch, and anchored older-history loading in the host package tests, then publish a matching private SDK version for
@deepseek-ai/dsh-client-ui-conversationand its aligned client peers. A source-only host change does not unblock an external plugin that develops only against official registry packages.
Development and verification
The project .npmrc selects the private @deepseek-ai/* scope; pnpm 11 reads its ${NPM_TOKEN} authentication mapping from the trusted user-level ~/.npmrc. The SDK packages are pinned to the reviewed 0.0.1-rc.2 set. Set NPM_TOKEN, install without lifecycle scripts, then run the checks:
pnpm install --ignore-scripts
pnpm run check
Do not link a DSH source checkout into this directory. Use pnpm run watch beside dsh web --dev for live browser changes. See compat/ for the isolated assembled Web fixture.
Model Experience
None. The plugin only renders existing conversation data in the browser.
KV Cache effect
None.
Known Limitations and Deferred Work
- The private
0.0.1-rc.2SDK does not yet declare the requiredconversation.chat.navigatorslot, so the full development check remains blocked until a matching official SDK release. Do not add a local type shim; the installation target must provide the real slot. - Only loaded history receives markers; earlier turns appear after older history is loaded.
- Previews show text only.
Comments
Loading…
From the same category
by zhu1090093659
DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
★ 8.3k
↓ 203/wk
Apache-2.0
TypeScript
Oct 2, 2026
dsh plugin --profile web add dsh-webA collection of independent Web UI plugins and skins, including task boards, Git graphs, mobile access, and live token stats.
★ 7.4k
↓ 172/wk
Apache-2.0
TypeScript
dsh plugin --profile web add dsh-webby omdsh-dev
开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git,
★ 4k
↓ 63k/wk
MIT
TypeScript
Oct 1, 2026
dsh plugin --profile web add dsh-better-sidebarby bowenliang123
The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,
★ 1.8k
↓ 37.3k/wk
Apache-2.0
TypeScript
Sep 30, 2026
dsh plugin --profile web add dsh-contextby Devin-AXIS
DeepSeek Harness 可编辑设计系统:AI 生成、可视化编辑、模板市场与 PPT|Native Design & PPT Studio for DeepSeek Harness.
★ 1.4k
↓ 510/wk
NOASSERTION
JavaScript
Sep 4, 2026
dsh plugin --profile web add deepseek-idesignby agentrq
AgentRQ: Human-in-loop realtime conversational task manager for AI Agents. Self-hosted! Control your own agents from wherever you want Mobile, Web, Desktop. Designed to work well with your own Claude
★ 1.1k
↓ 56/wk
Apache-2.0
JavaScript
Oct 2, 2026
dsh plugin --profile web add @agentrq/dsh-plugin-agentrq