Back to home

ayahunter

dsh-trail

DeepSeek Harness Web 轨迹页签的新手友好视图插件(out-of-tree bundle):把事件流变成人人能看懂的故事线

Stars
0
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 16, 2026

Introduction

dsh-trail

Friendly Trajectory — a new-user-friendly replacement for the DeepSeek Harness Web "轨迹" (Trajectory) tab: the raw event ledger becomes a storyline anyone can read.

中文 · Usage · Development

The built-in trajectory view is a power tool: untranslated jargon with no legend, five toolbar toggles, a zoomable/draggable timeline, a separate inspector, and an event table that never answers "what did I ask → what did the AI do → what came back". dsh-trail replaces that tab with a storyline design — one collapsible card per round, plain-language tool names, inline argument previews, and guidance for every state. It reads only the session snapshot, adds no Host half, and uninstalling restores the original view.

Features

  • Turn cards — one card per round: what you asked → what the AI thought → which tools it called → the outcome, with duration, model and token meta when present.
  • Plain-language tool labelsread renders as 读取文件 (read a file) with a one-line note; unknown tools fall back gracefully.
  • Inline argument previews — the touched file or command is visible on the row; raw arguments, results, timing and error metadata fold into a Details toggle.
  • Category filter — 全部 (all) plus eight row categories, combinable and remembered across sessions.
  • Fuzzy search — ignores case, punctuation and full-width forms; multi-word terms match as ordered subsequences.
  • Live round — dashed card with status pills (thinking / generating / running tool · elapsed) and a spinner; durations are never fabricated.
  • Zero product coupling — renders purely from top-level session snapshot fields; no Host half, no new data endpoints.

Screenshots

The Friendly Trajectory view inside the official Web GUI — turn cards summarize each round, and reasoning, tool arguments and full replies stay folded until expanded:

Friendly Trajectory view

Rounds view

Tool details

Install

dsh plugin --profile web add dsh-trail dsh-trail-bundle

Restart the profile and open any session: the 轨迹 tab is now the storyline view. The bundle disables the shipped ui-trajectory row and mounts this view in its place, so exactly one 轨迹 tab remains.

To go back to the original view:

dsh plugin --profile web remove dsh-trail dsh-trail-bundle

Update

dsh plugin --profile web update dsh-trail dsh-trail-bundle

Upgrades are never applied automatically; restart the profile afterwards. Two pnpm behaviors can make an update look stale right after a release: the registry metadata cache and the 24-hour minimumReleaseAge supply-chain policy for freshly published versions. If update reports "Already up to date" while npm shows a newer version, clear the cache (pnpm cache delete dsh-trail) or pin explicitly (dsh plugin --profile web add dsh-trail@<version> dsh-trail-bundle).

Quick start

Open a conversation and click 轨迹. Read it top-down as a story: expand any folded reasoning or reply with 展开, and open 详情 on a tool row for raw arguments, results, timing and tokens. Use the search box to jump to a file or command, and the category bar to isolate e.g. only 工具 rows — both stay applied while you browse.

Architecture

One repository, two npm packages. dsh-trail is the client plugin: it registers the conversation.view slot cell id: 'trajectory' and renders purely from top-level session snapshot selectors (nodes, turnTimings, partial, runningCalls, hasMore, loadingOlder, openState). dsh-trail-bundle is a patch bundle whose cordis.patch.yml inserts the plugin row and sets disabled: true on the shipped ui-trajectory row. Design rationale is documented in the repository's internal working docs (not shipped with the package).

Known Limitations and Deferred Work

  • Web GUI only — the plugin targets the web shell (react ^18 peer dependency); other shells are not validated.
  • Simplified Chinese-first — the v1 view copy (labels, tool names, guidance) is 简体中文; an English locale is deferred.
  • Legacy snapshot fields — the plugin reads compatibility projections (nodes/turnTimings/partial/runningCalls/…), tested against dsh 0.1.0-rc.5; it must be upgraded if the product removes those fields.
  • Round grouping is heuristicuser/tool-result nodes carry no turn number, so round boundaries are inferred from node order and may occasionally be drawn wrong.
  • Not feature-parity with the original view — the timeline overview, duration toggles and batch collapses are removed by design; the essentials fold into Details and search is kept.

Documentation

License

MIT — see LICENSE.