← Back to home@HarryHeYu

dsh-sessionflow

Cross-agent session continuity for DeepSeek Harness — continue work from Codex, Claude Code, Grok, ZCode and more with sessionFlow.

Stars
0
Language
TypeScript
Created
Oct 4, 2026
Updated
Oct 6, 2026

Introduction

sessionFlow for DeepSeek Harness

Cross-agent session continuity for DeepSeek Harness.

Continue work from Codex, Claude Code, Grok, ZCode and other coding agents directly inside DSH.

Not "yet another session manager" — sessionFlow's continuity layer, exposed to DSH as six tools.

User:  Continue the work I was doing in Claude Code on this repo.

DSH:   → sessionflow_current_work
       → sessionflow_continue

       [continues with the previous goal, files, commands and unresolved work]
Claude Code ─┐
Codex ───────┤
Grok ────────┤
ZCode ───────┼─ sessionFlow ─ DSH
DSH ─────────┤
Cursor ──────┤
Kiro ────────┘

What it is

A thin DSH plugin that exposes sessionFlow (Voyager) as six tools. sessionFlow indexes the session history of every AI coding agent on your machine; this plugin lets a DSH agent use that history — to find past work, to see what the current project was doing, and to pick it up.

The core stays the single source of truth. No session parsing, indexing, search, WorkThread, ranking, merging or context compilation happens in this plugin: every call is forwarded to the existing Voyager core over its stable JSON interface.

Requirements

Install

# 1. the core, plus an initial index
pipx install voyager
voyager scan

# 2. this plugin, into a DSH profile
dsh plugin --profile web add dsh-sessionflow
dsh --profile web

From a local checkout:

git clone https://github.com/HarryHeYu/dsh-sessionflow
cd dsh-sessionflow && npm install && npm run build
dsh plugin --profile web add .

Verify it loaded:

dsh --profile web --dump-config | grep dsh-sessionflow

Tools

ToolWhat it answers
sessionflow_search"Find the session where I fixed the parser."
sessionflow_recent"What have I been doing this week?"
sessionflow_session"Show me what that one session was about."
sessionflow_current_work"Where did I leave off on this project?"
sessionflow_continue"Pick the work back up."
sessionflow_merge"Put these sessions together and let me continue."

All six share the sessionflow_* prefix — there is no second voyager_* set. Every tool returns structured data and a model-readable rendering.

Configuration

The plugin finds the core by trying, in order: a configured voyagerBin, then voyager on PATH (and voyager.exe on Windows), then py / python / python3 running -m voyager.cli. Each candidate is proven with a version probe, so a machine with several Python installs picks the one that actually has the package.

Override it in the profile patch:

# cordis.patch.yml
- id: dsh-sessionflow
  config:
    voyagerBin: 'C:/path/to/voyager.exe'   # optional
    timeoutMs: 30000                        # optional, per call

If the core is missing, the tools fail with an actionable message rather than an empty result.

Compatibility

PluginDSHsessionFlow bridge schemaStatus
0.1.00.1.5-rc.31tested

DSH is in Developer Preview and does move. The plugin declares the bridge schema_version it needs and fails clearly against an older core; it does not claim to support "all future versions".

Verification status

Stated at the level actually reached — nothing below is promoted.

CapabilityStatusEvidence
Bridge mechanics: resolution, deadline, malformed JSON, non-zero exit, schema gatePASS (unit)tests/bridge.test.ts, stub executables
JSON round-trip against the real corePASS (integration)tests/bridge.test.ts, real voyager on a seeded index
Six tools register through the real defineToolPASS (unit)tests/plugin.test.ts
DSH bundle discoveryLIVE VERIFIEDdsh plugin --profile … install added dsh-sessionflow to dsh.profile.bundles
DSH composition treeLIVE VERIFIEDdsh --profile … --dump-config shows - id: dsh-sessionflow
Tool registration visible to a real agentLIVE VERIFIEDall six schemas in the request header of a real DSH turn
Natural-language autonomous tool selectionLIVE VERIFIEDasked "我之前这个项目做到哪了?" with no tool named; the agent's first action was sessionflow_current_work
Real agent tool invocationLIVE VERIFIED4 tool/call records in DSH's session log
sessionFlow bridge executionLIVE VERIFIEDresults carried real index data (266 sessions / 150,089 events / 8 providers)
Cross-agent context retrievalLIVE VERIFIEDthe returned WorkThread's members span claude and zcode; search hits span zcode/claude/grok
dsh plugin add materialises a local package linkNOT VERIFIEDpnpm 11.22.0 hoisted linker did not create the link; a known-good third-party bundle failed identically, so this is environmental

Full transcript and tool-call records: docs/live-verification.md.

Automated compatibility (O6.5 consumer closure, 2026-10-06)

The six tools were re-verified as a thin adapter against a pinned core — input → bridge call → result formatting, nothing else:

PinnedSHA
sessionFlow core3b98bcd
Bridge schema1 (no request/response shape change → no bump)
dsh-sessionflow37e4317

Verification for this closure is automated contract tests only (npm test: 23 passed, npm run build: clean). The LIVE VERIFIED rows above are the historical real-agent run and are not re-claimed by this closure; a live DSH rerun was not required because no public contract changed since that run.

Environment used: @deepseek-ai/dsh 0.1.5-rc.3, @deepseek-ai/cordis 4.0.2, Node 22.22.2, Windows.

Security

  • Arguments are passed to spawn as an argv array — no shell string is ever built, so a query containing ;, " or CJK text is data, not syntax.
  • The plugin has no arbitrary shell execution. It can only call the core's read-only interface, plus voyager merge (the one write, which persists a WorkThread).
  • It reads only the index sessionFlow already built. It does not scan, copy or upload provider session files, and sends nothing over the network.

Development

npm install
npm run build     # tsc -> lib/
npm test          # build, then node --test (bridge mechanics + live core)

tests/bridge.test.ts covers resolution, timeouts, malformed JSON, non-zero exits and the compatibility gate against stub executables, then runs the real JSON round-trip against the installed core on a seeded temporary index. Those indexes are created under the OS temp directory and removed when the suite exits; set SESSIONFLOW_TEST_TMPDIR to put them somewhere else.

License

MIT. See LICENSE.


中文说明 · sessionFlow