Compatibility and validation
August 14, 2026 ยท View on GitHub
Targeted DeepSeek Harness surface
This release was implemented against the public source tree at:
- repository:
deepseek-ai/deepseek-harness - commit:
47f943859bef60e4160492346772ded9b24f765a - root release family:
0.1.0-rc.5(designed against); verified to build and register against the published0.1.0-rc.6family, which npm resolves for every@deepseek-ai/dsh-*peer. The peer ranges (^0.1.0-rc.5) admit rc.6. - Node requirement used by that tree: Node 22.19+ or 24+
The plugin depends on the following stable public seams from that revision:
- Cordis class Plugins and
Serviceregistration; ctx.tools.register(defineTool(...));ctx.subagents.start(provider, request);- Subagent request fields
parent,prompt,signal,agentOptions,outputSchema,maxDepth,toolFilter, andpersona; SubagentRun.id,.result, and.dispose();- per-child Tool Restriction semantics where child-owned structured-output tools remain visible after inherited capabilities are filtered.
The package declares DeepSeek Harness 0.1.0-rc.5 peers for the DSH packages and leaves Cordis/Schemastery versions open. All named peers (@deepseek-ai/dsh-agent, dsh-llm, dsh-subagent, dsh-tools, cordis, schemastery) are published on the npm registry under the rc.6 family, so the peer ranges resolve normally. dsh plugin profiles disable peer auto-install and rely on the harness-managed $DSH_HOME/profiles/node_modules fallback at runtime.
Validation performed
- Strict TypeScript build completed with TypeScript 5.8.3 against the real
@deepseek-ai/*@0.1.0-rc.6type declarations (the registry resolves the whole rc.6 family), not offline mock shapes. Fixes required by the real surface: activating thectx.subagentsContext augmentation, realContentBlock/ObjectJsonSchematypes, and a real-inference-correctSTATUS_SCHEMA. - Real-runtime registration smoke (
scripts/smoke-register.mjs) passed against the realdsh-toolsregistry anddsh-invariantsregistry: the fourevolution_*tools register (so every tool schema passes the realassertSupportedJsonSchemasubset), the./invariantcompanion registers, and disposing the plugin fiber removes every registration (HMR-safe). - Bundle composition verified with the real launcher:
dsh --profile smoke --dump-config(DSH_HOME pointing at this repository's.dsh-test) composes@deepseek-ai/dsh-baseplus this package'scordis.patch.ymland prints theself-evolutionrow under# == dsh-self-evolution, with no skipped-patch warnings. - Live model runs were not part of this validation (no model endpoint or credentials in the validation environment). The remaining end-to-end checks are listed below; run them in your own deployment with its provider, sandbox, persistence, and approval policy.
Recommended smoke test
Run these checks once in a real deployment before enabling unattended optimization:
dsh plugin --profile <name> add ./dsh-self-evolution-<version>.tgz, then confirmdsh --profile <name> --dump-configshows theself-evolutionrow; boot the profile with the officialspawnsubagent provider.- Copy
examples/profileinto the Agent workspace. - Copy
examples/benchmarks/demoto a private directory outside that workspace. - Call
evolution_evaluatewith one run per case. - Confirm:
- a baseline Scoreboard entry exists;
- Target and Evaluator Session IDs resolve through the deployment's Session tooling;
- Evaluator/Optimizer children expose only their structured-output path;
- private rubric text is absent from public artifacts;
- the Target sandbox cannot read the private benchmark directory.
- Run one
evolution_runround and inspect both accept and reject behavior before enabling unattended optimization.