2.3 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. -
Run unit tests with
corepack yarn test. -
Run type checking with
corepack yarn typecheck. -
Run the complete headless gate with
corepack yarn check. -
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-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.