Upgrade and release
August 30, 2026 ยท View on GitHub
dscode ships three versioned parts: the vendored Rust TUI, the
grok-leader bridge, and a tested npm dsh runtime. Upgrade them deliberately;
never follow an unpinned latest runtime at user launch.
TUI sync
The TUI lives in third_party/grok-build and is maintained as in-repo source,
not a submodule.
- Run
scripts/update-tui.sh <upstream-ref>to prepare a scratch diff. - Port selected upstream changes by hand; do not replace the tree wholesale.
- Update
third_party/grok-build/UPSTREAM_REV. - Record every local difference in
third_party/grok-build/TUI-DIVERGENCE.md. - Build and run the full product suite.
Generic fixes should go upstream when practical. Remove their divergence entry after the upstream baseline contains the fix.
dsh runtime
The supported runtime is declared in bridge/grok-leader/package.json:
dsh.testedVersion: exact runtime used by the launcherdsh.supportedRange: compatibility range for profile plugins
To upgrade dsh:
- bump the tested version and range when needed;
- update the
@deepseek-ai/dsh-*development dependencies and lockfile; - mirror that pinned dsh dependency tree's Node floor in the launcher and npm metadata, but never install or switch the user's Node runtime;
- rebuild the bridge and run the complete E2E suite;
The production pin stays on the published 0.1.1-rc.2 family: the newer
0.1.2-alpha.1 GitHub prerelease has no npm packages, so the launcher cannot
provision it. Start a source-only pilot after a coherent 0.1.2 package family
is published; promote only after it stabilizes. Never mix source alpha packages
with rc.2 npm packages โ duplicate Cordis/service/type identities.
The launcher may reuse an exact matching dsh from PATH; otherwise it owns a
private runtime under the dscode profile. It never upgrades a global install.
Bridge changes
- Keep
docs/grok-leader-protocol.md, the captured handshake fixture, and codec/socket tests in sync with wire changes. - Fail fast on protocol-version mismatches and unsupported CLI metadata.
- After local bridge edits, run
scripts/update-bridge.shbefore manual TUI testing; a live leader keeps its already-loaded code until the last client exits.
Validation matrix
scripts/check.sh
scripts/e2e-product.sh
scripts/e2e-product.sh --full --provider-ui
scripts/e2e-release-lifecycle.sh
CI runs script, bridge, and Rust checks on Ubuntu and macOS. Tagged releases
build dscode-linux-x86_64 and dscode-macos-aarch64 in
.github/workflows/release.yml.
Release
- Keep
VERSIONandbridge/grok-leader/package.jsonversions equal. - Start with
scripts/release.sh --dry-runand inspect the staged binaries, checksums, plugin tarball, license bundle, and version banner. - Commit a clean tree, then run
scripts/release.sh. - Wait for both platform assets before publishing the release and npm package.