DeepSeek Harness Plugin

YeqingTang/dsh-session-flow

Stars ★ 7 Downloads (30d) 2,300 Category Sessions & Messages Added 2026-08-16 npm dsh-session-flow

Cross-session archive: overview workbench, folded timeline, subagent lineage, full-text search, rule+LLM summaries, ZIP export, live tracking. Native session-page embeds: turn rail, docked right panel (live mode, pinned to original session on switch), rename (official-synced), conclusion digest, health monitoring + persistent header chip (idle / active / tool-wait / stalled). dsh v0.1.2+: fuses with the official TurnNavigatorRail — vector-icon info chips (duration, tool calls, errors, thinking) plus lazy tool distribution inside the official preview card, right-click opens the workbench; the classic piano-key strip is on by default and delegates unloaded-turn jumps to the official auto-load engine; the official rail can be hidden entirely. Settings dialog section with 10 tunable behavior params.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-session-flow

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:YeqingTang/dsh-session-flow

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

English | 中文

Restructures DSH session message streams into a foldable information flow with session-level summaries: every session becomes an archive card for cross-workspace review, search, and export. The built-in session views (Trajectory / Chat) excel at the microscopic inspection of what is happening right now; this plugin fills the missing layer of post-hoc review / archival / insight.

Interface tour

Overview workbench Session Flow tab
Overview workbench Session Flow tab
Session cards with status, conclusion line, first task; hover ✎ to rename inline "Session Flow" tab embedded in the native conversation page
Turn rail Cross-session full-text search
Turn rail Cross-session full-text search
Turn navigation on the left of the Chat tab: collapsed dashes ⇄ expanded cards, one-click jump Free text in the overview triggers full-text mode: recall across workspaces, hits jump & locate
Dock details right Folded detail view
Dock details right Folded detail view
Dock the detail into the official right panel: conversation + flow side by side, drag to resize Turns folded by default; expand in true chronological order; four-tab navigation

Features

Capability Description
Overview workbench Session cards (status / errors / duration) + conclusion line; sort, filter, workspace tabs
Structured search tool: file: err: prefixes + free text
Folded detail view Turns collapse to "user message + conclusion"; expand in true chronological order; on-demand loading
Four-tab navigation User messages / tools / errors / search, click to locate & highlight
Lineage tree Subagent derivation tree (offline archive + live runtime channels)
Dual-mode summary Rule summary (zero cost, assembled live) + LLM summary (cached, prompts regeneration)
Live tracking 3s polling for running sessions, breathing highlight + generating indicator
ZIP export Overview + chunked timeline as a Markdown report
Session rename Same data source as the official title (log-backed), synced both ways in real time
Health monitor Four-level classification: active / tool-running / quiet / likely stalled; overview badges + detail live bar
Header health chip Next to the mode label in the session header; a vertical bar that expands into a status card on hover, click to open detail
Session Flow tab Embedded tab on the native conversation page, cross-navigates with the workbench
Turn rail Turn jumps on the left of the Chat tab (Chat tab only)
Cross-session full-text search Content-level recall, hits jump into the Session Flow tab and locate
Dock details right Side-by-side with the main conversation
Cache management View & clean index/timeline caches (never touches DSH data)

Install

# From the plugin market (search dsh-session-flow), or:
dsh plugin add dsh-session-flow
dsh plugin add github:YeqingTang/dsh-session-flow

After installing: restart the DSH Web service and hard-refresh the browser (Ctrl+Shift+R). Success shows the "Session Flow" entry in the sidebar.

Requirements: DSH Web GUI (latest stable); Node.js ≥ 22.19 (built-in zstd decoding, zero third-party dependencies).

Usage

  • Overview: sidebar "Session Flow" → all session cards. Search supports tool: / file: / err: prefixes; free text of ≥2 characters additionally triggers cross-session full-text search.
  • Detail: click a card. Turns are folded by default — click a turn header to expand; the four-tab navigation locates entries; the header offers LLM summary, ZIP export, dock right, and lineage.
  • Native conversation page: the "Session Flow" tab reviews the current session in place; the turn rail on the Chat tab jumps to any turn; hover the title for ✎ rename (synced with the official title in real time).
  • Health status: the health chip right of the mode label in the header (vertical bar: green = active / amber = tool running / red = likely stalled) expands on hover; click to open the Session Flow detail. Overview cards and the live bar show the same badges.
  • Live: click "Live" on a running session, auto-refresh every 3 seconds.

External dependencies & requirements

  • Runtime: DSH Web GUI (0.1.2-rc.1 through 0.2.1-rc.2; per-release declaration in package.json → dsh.compatibility.dshReleases); Node.js ≥ 22.19 (uses Node's built-in zstd decoding; no third-party decoder).
  • Runtime dependency: only @deepseek-ai/schemastery (the DSH-vendored schema library used for the settings form schema and .volatile() hot updates).
  • No lifecycle scripts: preinstall / install / postinstall / prepare are not declared, so installation runs no scripts.
  • Mounted as a Bundle Patch: cordis.patch.yml only inserts this plugin's own entry — it never disables, replaces, or shadows official components.
  • An independent third-party project, not an official DeepSeek component; the package name does not use the @deepseek-ai/* namespace.

Permissions & data boundaries

Scope Purpose Boundary
Read ~/.dsh/sessions/** Parse session archives (zstd/JSONL) into indexes and timelines Read-only; never modifies or deletes session files
Write ~/.dsh/session-flow/** Private index, timeline cache, rename map Writes only here; cache management cleans only this directory
Local POST /api/session-flow Index / detail / search / export / health Registered on DSH's own webServer, behind the host's login auth; no outbound network calls from the host
Read official session-list projections (sessions.list) List titles and rename sync Read-only; never mutates official state
Host llm service (optional) LLM summaries Uses only the model configured in DSH; no extra providers
  • No telemetry, no usage reporting; ZIP exports are local files.
  • Settings are saved into the DSH profile patch (~/.dsh/profiles/<profile>/cordis.patch.yml), the same store as official settings.

Known limitations & risks

  • Archive files are host implementation details: each dsh archive-generation migration (v1→v2→v3→v4) may change how logs are read. This plugin adapts to the highest generation and handles the v4 isError change, but future formats are not guaranteed to work unchanged.
  • The index is an incremental cache: the first open after install/upgrade performs a full scan; very large sessions (hundreds of MB) can take a while on that first scan. Host data is never affected.
  • "Dock details right" needs the official right-bar tab system (dsh ≥ 0.1.5) or the legacy details column (≤ 0.1.4); in a custom shell with neither, the button is disabled with an explanation.
  • LLM summaries require a configured model in DSH; without one, only rule summaries are available.
  • DOM-level enhancements (turn rail / official rail enhancement / health chip) are DOM-observation layers (the host exposes no extension slots); a major host DOM change can silently disable them until adapted.
  • Does not take over or modify official UI behavior; coexistence with third-party skin/layout plugins may need extra adaptation.

Acknowledgements

Apache-2.0 licensed; original license notices for third-party code are retained.

License

Apache-2.0

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.