DeepSHPlugins
dsh-turn-nav 项目预览
GITHUB / COMMUNITY PROJECT

dsh-turn-nav

UI 增强TypeScriptMIT

DeepSeek Harness Web 对话轮次导航轨,支持 mixed / DeepSeek / Codex 三种视觉风格。

1 Starsxiaheng1 更新时间 2026-08-21
访问 GitHub 仓库
dsh-turn-nav 项目预览

项目介绍

中文

DeepSeek Harness Web 对话轮次导航轨,支持 mixed / DeepSeek / Codex 三种视觉风格。

English

Turn histogram navigation rail for DeepSeek Harness Web with mixed, DeepSeek, and Codex visual variants.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
xiaheng1
仓库
xiaheng1/dsh-turn-nav
GitHub Stars
1
Forks
0
开发语言
TypeScript
许可证
MIT
最近推送
2026-08-21
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

53/ 100
维护活跃
86
文档与实用信息
100
生态关注度
9
安装便捷信号
75
项目声明信号
100

近 21 天仍在更新;README 含完整安装与使用说明;关注度尚低(1)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:xiaheng1/dsh-turn-nav

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

dsh-turn-nav

English | 中文

⚠️ AI-generated notice: This plugin was AI-assisted. Test it in a safe environment before production use.

Turn histogram navigation rail for DeepSeek Harness Web with mixed, DeepSeek, and Codex visual variants.

Unfocused turns render as short bars on the right edge of the conversation. Hovering or keyboard-focusing a bar grows it into a wave (the focused bar is longest) and shows a preview card with the message you sent in that turn. While sweeping along the rail, the preview card stays visible and smoothly slides to the active bar, showing that turn's message text. Clicking a bar smooth-scrolls the conversation to that turn.

Install

dsh plugin --profile web add git+https://github.com/xiaheng1/dsh-turn-nav.git
dsh plugin --profile web install

Then restart dsh web and hard-refresh the browser (Ctrl+F5).

For a local folder:

dsh plugin --profile web add <absolute-path-to-this-folder>
dsh plugin --profile web install

Usage

  1. Open a workspace and a conversation.
  2. Move the pointer over the right-edge rail: the bar under the pointer grows, adjacent bars form a wave, and a shared preview card smoothly slides to the active bar showing that turn's message.
  3. Click a bar to smooth-scroll to that turn.

The rail hides on narrow screens (max-width: 767px) by default; set hideOnNarrow: false to keep it visible.

Configuration

The quickest way to change defaults is to edit dsh-turn-nav.config.json in the repository/package root. The plugin reads it at startup as the base layer; if the file is missing, built-in defaults are used. Only include the fields you actually want to pin — visual dimensions left out fall back to the active variant's own defaults, so switching variant re-baselines on that variant's look instead of inheriting the previous one's (e.g. switching to codex without pinning barWidth yields the codex 6px resting tick, not the mixed 12px bar).

For per-deployment overrides, the plugin also registers a dsh-turn-nav settings namespace. Edit $DSH_HOME/settings.yaml (or settings.json) to override defaults:

dsh-turn-nav:
  waveTransitionMs: 120
  barWidth: 14
  focusedBarWidth: 30
  previewEnabled: true

You can also read and update the effective config from the browser console:

// Read the currently effective config.
dshTurnNav.getConfig()

// Update one or more fields (takes effect immediately in this session; it is
// not written back to the settings document — edit dsh-turn-nav.config.json
// or settings.yaml to persist).
dshTurnNav.updateConfig({ waveTransitionMs: 120 })

// Clear all user overrides and return to defaults.
dshTurnNav.resetConfig()

If a field is not configured, the variant-specific recommended default is used (mixed, deepseek, and codex each have their own baseline). The defaults keep the original short-bar feel while making the focused wave softer and rounder.

Variants

Set variant to choose the visual style:

VariantDescription
mixedCurrent default: right-hand short bars with a width-based wave and a shared preview card on the left.
deepseekA single list rendered in two states (matches the real quick-nav): collapsed it is a 34px frosted dash column (8×2px dashes, 30px pitch, preview text hidden); hovering expands it into the 240px turn-list card, with each dash aligned 1:1 to its row. The current conversation turn's dash is marked blue, snapping between rows as the conversation scrolls — exactly like the real quick-nav; when the scroll moves that row outside the panel's visible area, the panel smooth-scrolls to bring the dash back to the middle. Clicking the collapsed column jumps to it. The active row's text and dash darken to near-black; the card folds away on leave, scrolls with a top/bottom fade. No wave at all.
codexLeft-hand dense tick rail aligned with the conversation column's left edge (right of the sidebar), the tick's left edge sitting ~15px inside it; tracks sidebar drag/resize and never floats when the sidebar collapses; top-only edge fade (no bottom fade). Resting tick is a 6×2px grey dash at 10px pitch (light rgb(210,211,211) / dark rgb(70,70,70)). Hover/focus turns the hovered tick into the theme's strongest foreground — light near-black rgb(26,28,31), dark near-white rgb(223,223,223) — 26×2px, and lengthens the three ticks on each side (20/14/10px) while they stay grey — a 7-tick length wave; the clicked/current tick stays in the hover colour and hovering never switches the cursor to a pointer. The preview card pops out on the right: 321px wide, 10px from the rail, vertically centred on the hovered tick; dark mode is a flat #2C2C2C surface with no border/shadow, light mode is white + shadow; padding 13/10, 13px/20px text — line 1 is the user's message in the focused colour (near-black light / near-white dark), single-line ellipsized; line 2+ is the assistant's reply in the resting grey. Widths/pitch and the card are cross-validated between light (150% scale) and dark (200% scale) screenshots of the same client.

Configuration parameters

ParameterDefaultDescription
variantmixedVisual style: mixed, deepseek, or codex.
positiondefaultRail side: default (variant's natural side — mixed/deepseek right, codex left), left, or right (forced).
barWidth12 (codex: 6)Resting bar width in px.
focusedBarWidth24 (codex: 26)Hovered / focused bar width in px. The deepseek variant is wave-free: its default equals barWidth (8), so the focused bar does not stretch.
adjacentBarWidth16 (codex: 20)First adjacent bar width in px.
neighborBarWidth13 (codex: 14)Second adjacent bar width in px.
waveTransitionMs100Wave transition duration in ms. Shorter values feel harder/snappier; longer values feel softer/smoother.
previewEnabledtrueWhether the message preview card is shown.
previewWidth240 (codex: 321)Preview card width in px.
previewMaxHeight132 (codex: 106)Preview card maximum height in px before overflow is hidden.
panelMaxHeight300DeepSeek list panel scrollable max height in px.
minTurns1Minimum number of user turns before the rail appears.
hideOnNarrowtrueHide the rail on narrow screens (max-width: 767px).
railOffsetRight8Rail distance from the right edge in px.
previewGap10Gap between the rail and the preview card in px.
itemWidth28 (codex: 30)Click target / item width in px.
itemHeight14 (codex: 10)Item height in px (codex: row pitch).
dotSize8 (mixed / deepseek) / 2 (codex)Codex variant tick height in px.
scrollOffset16Extra scroll offset when jumping to a turn in px.
colors{}Colour overrides; unset fields follow the DSH theme. Sub-fields: bar, barActive (current-turn marker, blue by default in DeepSeek), barHover (hovered/current bar, near-black by default in DeepSeek), text, textActive, backdrop (DeepSeek frosted pill), panelBackground. Values may be any CSS colour or a DSH token (e.g. var(--dsw-alias-label-primary)). Both the DeepSeek and Codex variants follow the DSH application theme (not the OS prefers-color-scheme): the component detects the active theme via the resolved --dsw-alias-label-primary token. Measured dark palettes — DeepSeek: frosted rgba(21,21,23,.6) pill, rgba(255,255,255,.2) dashes, #ADB2B8 resting text, #F9FAFB active text/dash, #232324 panel with a deeper shadow. Codex: grey ticks rgb(70,70,70), hovered/current tick rgb(223,223,223), card #2C2C2C, card body text #949494.

Example — force left + custom active colour:

dsh-turn-nav:
  variant: deepseek
  position: left
  colors:
    barActive: "#2563eb"

Package layout

  • lib/client.js — prebuilt browser plugin bundle (committed for direct use).
  • lib/index.js — node half; registers the dsh-turn-nav settings namespace and reads the root config file.
  • dsh-turn-nav.config.json — root-level defaults you can edit directly.
  • src/ — source code for reference.

AI-generated notice

This plugin was AI-assisted. The source and prebuilt artifacts are provided for learning and testing. Review the source, test the behavior, and confirm it meets your expectations before using it in a production environment.

License

MIT

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目