Development
August 14, 2026 ยท View on GitHub
Clone the DSRH repository, enable Corepack, install TypeScript dependencies, build the Bundle, and install the Python project into an isolated environment. The root README contains PowerShell and POSIX commands.
On POSIX, scripts/dev-install.sh performs the dependency installation and build. After setup, scripts/smoke-test.sh runs the complete keyless suite; on Windows use scripts/smoke-test.ps1.
Checks
corepack pnpm typecheck
corepack pnpm build
corepack pnpm test
.venv/bin/python -m ruff check python tests/end-to-end tests/fixtures/toy-training
.venv/bin/python -m ruff format --check python tests/end-to-end tests/fixtures/toy-training
.venv/bin/python -m pytest python/tests tests/end-to-end -q
.venv/bin/python -m dsrh_mcp doctor
The TypeScript publication test runs a real npm pack --dry-run --json against the built package. The Python suite generates a born-digital PDF, mocks provider timeouts and 429 responses, tests malformed inputs and workspace escape, and runs the four-run toy metric pipeline without a model or large training workload.
Local Harness Profile
Set DSRH_PYTHON to the isolated interpreter, install packages/plugin through dsh plugin, and use --dump-config before boot. The package must be rebuilt after TypeScript changes. Skill assets are read from the installed package, so rerun the pack test after changing assets/ or files.
The .upstream/deepseek-harness checkout is development evidence only and is ignored by Git. scripts/verify-upstream.ps1 checks its commit against UPSTREAM.md.
Harness Acceptance
The release acceptance run uses an isolated DSH_HOME, installs packages/plugin through official dsh 0.1.0-rc.6, and verifies:
--dump-configcontainsdsrh-runtime,dsrh-skills, anddsrh-science-mcp.- A live profile lists all three packaged Skills, three native tools, and 21
mcp__dsrh-science__*tools. - Calling
mcp__dsrh-science__dsrh_experiment_validate_manifestthrough the Harness registry succeeds. - An intentionally missing
DSRH_PYTHONleaves Skills and native tools intact, registers zero MCP tools, and emits visible reconnect errors.
This acceptance test needs the official CLI package and therefore is an explicit release check rather than part of keyless CI. CI covers Bundle YAML syntax and rows, npm pack contents, Cordis lifecycle cleanup, real MCP stdio discovery/invocation, and the toy pipeline.