Skip to content

feat(dsh): close remaining DeepSeek Harness gaps - #22

Merged
Roarpeng merged 2 commits into
mainfrom
cursor/dsh-harness-gaps-d5d4
Aug 20, 2026
Merged

feat(dsh): close remaining DeepSeek Harness gaps#22
Roarpeng merged 2 commits into
mainfrom
cursor/dsh-harness-gaps-d5d4

Conversation

@Roarpeng

@RoarpengRoarpeng commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Not all GraphFlow features can run inside DeepSeek Harness (dsh). This PR finishes the host-portable remaining gaps so MCP + skill + session-end flywheel work after dsh plugin --profile web add @roarpeng/graphflow. VS Code/Cursor UI stays on those hosts.

What now works on dsh

SurfaceOn dsh?
10 MCP tools as mcp__graphflow__graphflow_*yes
stdio MCP cwd = session/workspace process.cwd() (no hardcoded GRAPHFLOW_WORKSPACE_ROOT)yes
Skill via bundle glue (ctx.skills.register) so dsh plugin add is enoughyes
$DSH_HOME/skills/graphflow/SKILL.md when graphflow install sees ~/.dshyes
Session-end flywheel: onlyagent/disposed → existing graphflow outcome report (Claude Code SessionEnd analog). Notsession/flush — that is a live checkpoint; auto outcome report true there would mark the flywheel successful while the agent is still working.yes
Short first-turn hint to call graphflow_context with rootDiryes
Workbench topicId / outline via MCP graphflow_context / graphflow_diagnosealready enough

Install (primary):

dsh plugin --profile web add @roarpeng/graphflow
npx @deepseek-ai/dsh web

First turn: mcp__graphflow__graphflow_context with rootDir = repo absolute path.

Home overlay (users who already have ~/.dsh): npx @roarpeng/graphflow install. doctor / uninstall detect overlay + glue row + skill path.

Not ported (host-specific, stay on VS Code/Cursor)

  • Graph viz panel, Settings webview, Workbench Tree activity bar, @graphflow chat participant
  • Cursor Agent Plugins 1.0 discovery (dsh uses dsh.bundle instead)
  • Claude Code SessionStart/End/Stop files (dsh analog is the ESM glue above)

Implementation notes

  • Root cordis.patch.yml and buildGraphFlowDshInsertPatch() stay in lockstep: MCP row + id: graphflow-dsh (name: '@roarpeng/graphflow/dsh').
  • Glue is ESM (dsh/plugin.mjs) because DSH plugins are type: module; GraphFlow root stays CJS. Duck-types ctx; missing ctx.skills / events → no throw. No hard @deepseek-ai/cordis runtime dep.
  • Does not replace the default skill-filesystem row config (patches replace entire config).
  • Reuses the existing auto-capture journal + outcome report path; does not invent a second flywheel.

Tests

  • buildGraphFlowDshInsertPatch() === root cordis.patch.yml insert (cwd included)
  • Installer writes/removes overlay + skill path
  • Glue: missing ctx.skills / missing events → no throw
  • Glue does not listen to session/flush
  • Existing agent-plugins / m-install-hooks / dsh tests

Version left at 1.9.14 for the maintainer. Apache-2.0.

Open in WebOpen in Cursor

Mount MCP with session cwd, register the GraphFlow skill from the bundle
glue, and auto-close pending episodes on agent/disposed so dsh plugin add
covers MCP + skill + flywheel without inventing a second learning path.
Co-authored-by: RoarPeng <Roarpeng@users.noreply.github.com>
@Roarpeng
Roarpeng marked this pull request as ready for review August 19, 2026 11:53
session/flush is a live DSH checkpoint, not session end. Auto outcome
report true there would mark pending episodes successful while the
agent is still working.
@Roarpeng
Roarpeng merged commit 4ebb9ff into mainAug 20, 2026
7 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Roarpeng@cursoragent