Releasing
August 16, 2026 ยท View on GitHub
This package follows semver and publishes a GitHub release for every public version. The npm package is scoped and must be public.
Support matrix
| Component | V0.1.x support |
|---|---|
| Node.js | >=22 |
| Cordis | ^4.0.1 |
| DeepSeek Harness core peers | ^0.1.0-rc.6 |
| Package format | ESM source plus cordis.patch.yml |
The peer ranges intentionally track the current Harness developer-preview line. Harness is still pre-1.0, so compatibility-breaking changes may require a new plugin patch release or coordinated update. If a peer range drifts, install the plugin in a clean profile and run the smoke checks before upgrading a production profile.
Pre-release checklist
From a clean checkout:
npm ci
npm run verify
npm pack --dry-run
The CI workflow runs these checks on pushes and pull requests. The release workflow repeats them against the release tag.
For a local profile smoke test, use the installed Harness CLI and a temporary home:
tmp_home="$(mktemp -d)"
trap 'rm -rf "$tmp_home"' EXIT
DSH_HOME="$tmp_home" dsh plugin --profile smoke add .
DSH_HOME="$tmp_home" dsh --profile smoke --dump-config | grep fullstack-expert
The profile command requires pnpm on PATH; the Harness CLI uses it to manage out-of-tree profile dependencies. A successful dump proves package resolution and patch-layer composition. It does not prove a model request or browser runtime. CI installs the pinned @deepseek-ai/dsh@0.1.0-rc.6 CLI and pnpm@11.7.0 before running this smoke test.
GitHub release
-
Update
versioninpackage.jsonandCHANGELOG.md. -
Run the clean-checkout commands above.
-
Commit and push the version change.
-
Create a tag/release matching the package version, for example
v0.1.1:gh release create v0.1.1 --target main --title 'v0.1.1' --notes-file CHANGELOG.md -
Confirm the release workflow passes.
npm publication
The package is configured with:
"publishConfig": { "access": "public" }
The package is currently published under the @deepseek-ai scope. Publishing requires an npm account authorized for that scope; GitHub authentication alone is not sufficient.
Authenticate as an account authorized to publish the @deepseek-ai scope, then publish the exact checked-out version:
npm login
npm publish --access public
npm view @deepseek-ai/fullstack-expert version
Do not republish a version that already exists. npm versions are immutable; bump the patch version for corrections.
The GitHub release workflow contains an opt-in publish-npm job. Enable it only after configuring npm trusted publishing or the repository's secret/token setup according to your npm organization policy and setting the repository variable NPM_PUBLISH_ENABLED=true. The current workflow deliberately does not assume a secret or silently publish from arbitrary tags.
Post-release smoke test
After npm publication, verify the public artifact from a clean temporary consumer:
consumer="$(mktemp -d)"
trap 'rm -rf "$consumer"' EXIT
cd "$consumer"
npm init -y >/dev/null
npm install @deepseek-ai/fullstack-expert@0.1.1
node -e "import('@deepseek-ai/fullstack-expert').then(({ name }) => { if (name !== 'fullstack-expert') process.exit(1); console.log(name) })"
Then install that exact version into a disposable Harness profile and confirm dsh --profile <name> --dump-config contains the fullstack-expert row.