Repository navigation
Releases: HarryHeYu/dsh-sessionflow
Release list
dsh-sessionflow v1.1.0
dsh-sessionflow v1.1.0
sessionFlow for DeepSeek Harness — six tools, and a bridge that no longer
answers from the wrong index.
v1.1.0 is a correctness and trust release. The tool surface is unchanged: same
six names, same arguments, same schema_version 1. What changed is what happens
when something is wrong — a misconfigured core, a repository with more than one
line of work, or a test suite that was quietly not running.
The six tools
| Tool | What it answers | Core call |
|---|---|---|
sessionflow_search |
"Find the session where I fixed the parser." | voyager api search |
sessionflow_recent |
"What have I been doing this week?" | voyager api overview |
sessionflow_session |
"Show me what that one session was about." | voyager api bundle_preview |
sessionflow_current_work |
"Where did I leave off on this project?" | voyager api current_work |
sessionflow_continue |
"Pick the work back up." | voyager api continue_context |
sessionflow_merge |
"Put these sessions together and let me continue." | voyager merge --json |
All six share the sessionflow_* prefix; there is no second voyager_* set.
merge is the only one that writes — it persists the WorkThread so later calls
find it.
A configured core is authoritative
voyagerBin + voyagerArgs is how an operator points the plugin at a specific
index; --db rides in the args. A configured executable that failed its probe
used to be silently replaced by whatever voyager/py/python was on
PATH — without the args. The plugin then answered from a different index and
said nothing about it. Measured: with the fixture index configured,
sessionflow_recent returned 305 sessions from the real index, and the agent
believed it.
Now a configured executable that does not work is reported by name, with the
reason the probe rejected it, and the message states that falling back was
refused and how to opt back in. Nothing changes for a user who never configures
a binary.
Multiple WorkThreads
A repository can carry several active WorkThreads. The tools do not choose:
sessionflow_current_workreturnsthread_ambiguous: truewith every
candidate (thread_candidates), keeps the most recently active one in
thread, and labels it a default viathread_default_reason;sessionflow_continueandsessionflow_mergeacceptthread_id;- with exactly one thread nothing extra is added, and a
thread_idthat does
not exist is reported rather than quietly replaced.
sessionflow_merge also no longer attaches sessions in set-iteration order, so
the merged WorkThread and its headline are the same on every run.
Verification
Kept apart on purpose.
| what | level | evidence |
|---|---|---|
| Six tools register, declare their arguments, forward the documented op | PASS (unit) | npm test — 40 tests |
| JSON round-trip against a real core | PASS (integration) | search (incl. CJK and spaced repo filters), recent, session, current_work, continue, merge — all against a real voyager on a seeded index |
| Clean install on Linux, both paths | INSTALL VERIFIED | github:HarryHeYu/dsh-sessionflow and file:<checkout>, in a throwaway DSH_HOME, on every push |
| Plugin imported and applied by DSH | INSTALL VERIFIED | the boot reaches the credential gate with no import error |
| Real DSH LLM continuation | LIVE VERIFIED (synthetic index) | six scenarios — docs/p8-live-verification.md |
| Continuation from real provider session files | LIVE VERIFIED (real files, fixture scenario) | docs/p9-live-verification.md |
sessionflow_merge callable and semantically correct |
LIVE VERIFIED | integration test plus a live turn that called it |
sessionflow_merge chosen without being named |
NOT VERIFIED | the autonomous turn answered correctly via current_work + recent + search + session and never called merge |
| Native resume by an agent | NOT VERIFIED | no scenario launched another agent's session |
What this release fixed
- a configured core could be silently swapped for another index;
- nine integration tests never actually ran — a race between the module's
top-levelawaitand a test body that emptiesPATH, with the failure
swallowed by a barecatchand reported as "no python with the voyager
package". The suite went from 22 executed to 40; - the test suite ran the core's freshness scan, i.e. read the developer's real
session directories; it now setsVOYAGER_NO_SYNC; - the README's install steps did not work, and one of them installed the wrong
project (voyageron PyPI is an unrelated library); - the error message for a missing core pointed at that same wrong project.
Install
Both pieces come from their Git repositories. Neither is published to npm or
PyPI.
# 1. the core, from source
git clone https://github.com/HarryHeYu/sessionFlow
cd sessionFlow
pip install -e .
voyager scan
# 2. this plugin, into a DSH profile
dsh plugin --profile web add github:HarryHeYu/dsh-sessionflow
dsh --profile webA local checkout installs with file:$PWD; a bare path does not (it becomes a
pnpm link: dependency, and DSH's nodeLinker: hoisted does not create the
symlink, so the bundle is never discovered). DSH itself needs a working model
provider — this plugin does not supply model access.
Known limitations
- Native resume is not verified. The core exposes resume paths for some
providers and the adapters build the commands; no resume has been observed
working end to end. mergeis not selected unprompted. The model reaches the same answer with
session+search; whethermergeis the better route is a tool-selection
question this release does not settle, and the descriptions were deliberately
left unchanged.- The Linux cold-start gate is Linux-only. Windows installation was verified
by hand during development; the automated job runs onubuntu-latest. - A repository with several active WorkThreads still resolves to a default.
The tools now say so, but the choice is yours to make.
dsh-sessionflow v1.0.0 — Official DSH integration plugin for sessionFlow
dsh-sessionflow v1.0.0
Official DSH integration plugin for sessionFlow.
This plugin brings sessionFlow — the unified session index across AI coding
agents — into DSH (DeepSeek Harness) agent sessions as six tools:
sessionflow_search— full-text search across every indexed agentsessionflow_recent— active WorkThreads and the newest sessionssessionflow_session— one past session as a compact continuation contextsessionflow_current_work— the active thread, lease and continuation previewsessionflow_continue— the compiled continuation context for a threadsessionflow_merge— merge several sessions into one WorkThread (the only
writing tool)
Thin adapter only
The plugin is tool input → bridge call → result formatting.
Core logic lives in sessionFlow — ranking, thread selection, timeline
building, continuation compilation and merging are all core-side. The bridge
protocol is versioned; the plugin requires schema_version >= 1 and fails
clearly against an older core.
Verification
- automated contract tests:
npm test(bridge mechanics with stub
executables + JSON round-trip against a real seeded core) - historical live verification (a real DSH agent run with recorded
tool-call evidence) is documented in
docs/live-verification.md and is not
re-claimed by this release
Install
dsh plugin --profile <profile> install HarryHeYu/dsh-sessionflow
Requires sessionFlow (the voyager CLI) installed and indexed locally.