4.1 KiB
DSH Desktop repository rules
This repository owns the desktop product around an unmodified DeepSeek Harness checkout.
Prerequisites and setup
- Use Node.js
^22.19.0or>=24.0.0and the root Yarn4.18.0release through Corepack. - Initialize the pinned upstream checkout with
git submodule update --init --recursive. - Install root dependencies with
corepack yarn install --immutable.
Build, run, and verify
-
Start the desktop development workflow with
corepack yarn dev. -
Build the desktop package with
corepack yarn build. -
Root build, dev/start, and packaging commands refresh
dshmarketfrom npmlatestfor Stable, Beta, and Next viacorepack yarn market:prepare. Commit its exact dependency versions, Desktop compatibility patch, and lockfile together.corepack yarn market:checkverifies freshness without writes; offline lookups or incompatible patches fail rather than silently retaining an old market. Installed apps do not hot-update executable plugins on launch. -
Before each release, run
corepack yarn aa:prepare-releaseto build the latest official Agents Anywheremainfor both Desktop channels. Commit the resulting artifact, provenance, manifests, and lockfile before packaging. Signed macOS releases and root Windows distribution commands verify freshness and installed versions;DSH_AA_SOURCE_REF=pinnedis no longer supported. -
Run unit tests with
corepack yarn test. -
Run type checking with
corepack yarn typecheck. -
Run the complete headless gate with
corepack yarn check. -
corepack yarn dev:nextexplicitly launches the experimental Next app;corepack yarn check:nextvalidates it without a graphical application. Next uses the official published Web frontend and the recorded upstream Desktop presentation, with product capabilities composed as a separate bundle. -
Develop and validate Desktop feature changes in
dsh-plugin-desktop-beta/first, then synchronize shared changes intodsh-plugin-desktop/while preserving declared variant differences. Before committing or pushing shared Desktop changes, runcorepack yarn check:desktop-variantsand validate both affected packages; neither package automatically inherits the other's source edits. -
Run upstream operations through the root scripts, such as
corepack yarn upstream:build. -
deepseek-harness/is a pinned upstream Git submodule. Never edit files inside it from a desktop feature branch. -
dsh-plugin-desktop/owns the Cordis Host and Client faces, Electron bootstrap, packaging, and release tests. -
dsh-desktop-next/owns the separate experimental Desktop shell, Profiles and recovery, and adapters for the existing AA bridge and Community Market. Next-only changes do not belong in the Stable/Beta variant mirror. Keep its upstream reference and published runtime versions aligned; do not fork the official main frontend. -
dsh-community-fabric/owns the community interoperability RFC. Until schemas and a reviewed reference adapter exist, it remains a private documentation scaffold and must not declare loadable DSH or package entry points. -
dsh-community-market/owns the community-market shell. Until its runtime is implemented, it remains a private documentation scaffold and must not declare loadable DSH or package entry points. -
The outer repository and all owned packages use the root Yarn release with
nodeLinker: node-modules. -
The upstream submodule keeps its own pnpm workspace. Run upstream commands through the root
upstream:*scripts, whose Yarn portable-shell commands enter the submodule before invoking Corepack. -
Compatibility mode must run the upstream default client without overrides. Advanced presentation belongs to desktop-owned client plugins and may replace documented slots or services through profile composition.
-
Keep graphical application launch explicit. Builds, typechecks, unit tests, and Loader smokes must remain headless-safe.
-
Commit before major changes of direction and keep the submodule pin update separate from desktop behavior changes.
-
Keep the repository topology and package-manager split consistent with the owning Agent Note.