DeepSeek Harness is an all-plugin Cordis agent harness. Read docs/architecture.md before changing packages/; follow docs/AGENTS.md for documentation. Public APIs are pre-stable; update every consumer. Follow version/status and type acknowledgements. Adjacent migration may add a version-named successor but never move, overwrite, or delete committed generations; predecessors imply neither fallback nor downgrade support. SQLite uses monotonic SCHEMA_VERSION. Acknowledge declared persistence-type changes. Application launch. Only dsh profiles launch supported Node apps; package bins, demos, and public SDK argv escapes are forbidden (rule). Package…
Agent Notes are effectively RFCs written by agents: durable proposals and decision records that preserve rationale, alternatives, consequences, and required verification. Follow the documentation standard and the Agent Note rules. Every new Agent Note triggers a supersession check. Search the active tree for older notes covering the same decision or mechanism, classify any full or partial supersession with dsh-archive-agent-notes, and archive every qualifying implemented triplet in the same PR. Keep partial supersessions active and cross-linked. Files under archived/ are frozen…
Archived Agent Note triplets under the kind directories are frozen historical snapshots, not current authority. Never edit, reformat, translate, repair, delete, or move a sealed artifact; use an active Agent Note or current documentation for new decisions and facts. The archival change may only relocate a complete English/Chinese/sidecar triplet, insert the identical Archived: YYYY-MM-DD line below both Status: implemented lines, re-record the sidecar, and repair or delete inbound links. Do not inspect, verify, or repair links out of archived notes.
These Agent Notes describe shipped decisions. Follow the root instructions, documentation standard, and Agent Note format; verify-agent-note-format gates the lifecycle-specific structure. Keep paths, symbols, defaults, and mechanisms current in the same change that alters them. Rewrite stale facts in place; do not append change history. When a shipped note is unlikely to guide future work, archive its complete triplet through dsh-archive-agent-notes instead of continuing to maintain it. Update factual realization in place. A reversal of the decision or its rationale…
This tree owns cross-package behavior of shipped dsh profiles. Start product scenarios through apps/cli/src/bin.ts with --profile <name> or the <name> shorthand; a test-only Loader driver is allowed only when the public profile output cannot expose the asserted internal evidence. Keep a composition here only when the CLI profile assembly is the subject. Move package-specific Loader configurations and drivers into that package's tests/fixtures/. Recorded-session replay belongs under top-level snapshots/; other expected output uses *.expected.e2e.ts and an owner-local expected/ directory. User-facing optional…
This tree owns required, repository-level performance gates whose measured user path crosses package ownership. Package-local diagnostics remain beside their owners and use the .perf.ts suffix instead of joining test:bench.
This file defines document structure, Markdown tiers, writing rules, and verify-doc-budgets ceilings. Use dsh-doc for placement and validation, and dsh-prose-standard for required coverage and editorial judgment; the doc-tiers Agent Note owns rationale. These rules apply to human-facing documentation; Agent Notes remain outside their scope. A postmortem is an incident-scoped reference; chronology records evidence, not a teaching sequence. A document's subject and tree position fix its scope: describe its own subject at appropriate detail and direct children only by purpose, responsibility,…
Run jobs on Windows runners (windows-* labels) under native pwsh. Native Windows build and process checks contribute to the pull-request all checks passed verdict; Wine runs Windows Node on hosted Linux only in ci-master.yml. Python runtime CI checks Linux/Windows x64 on pull requests and Linux ARM64 plus both macOS architectures on master pushes; releases retain all five targets (platform policy). ci.yml is pull-request-only. Master-only platform checks, Linux/Windows self-hosted standbys, and manual runner benchmarks live in ci-master.yml, which listens to master…
This workspace owns @deepseek-ai/node-addon-system: the Linux landlock-run confinement executable and the POSIX system.node binding. It shares the root pnpm workspace and lockfile; native packages have one independent version and release workflow. packages/entry/ owns JavaScript, types, and auditable C sources. Platform packages hold only binaries and metadata. scripts/ owns native builds, packing, validation, and release; test/ owns real process and lock behavior. Run pnpm build:ts, pnpm build:native, pnpm build:test-oracle, pnpm typecheck, and pnpm test in this directory. Linux full builds require…
Rules for packages/client/* (the browser side of the dsh web GUI) plus its build entry apps/web. They supplement the repo-wide conventions and the package rules. Read the current Web Client architecture, Slots reference, and Conversation reference before changing the corresponding layer. Packages here are named with the directory prefix: @deepseek-ai/dsh-client-<name>. The Slots reference owns the current design; these are the rules you must not violate when writing or reviewing client code: How live data reaches render code,
These rules supplement the package rules. The experimental publication decision owns the publication policy; the Agent Teams package decision owns dependency isolation and promotion rationale.
Gate scripts invoke pnpm shell-free, normalize repository-relative glob paths to / at ingestion, and keep platform adaptation in the gate that needs it instead of a shared platform layer. Source-ownership gates use syntax-aware discovery, guard against an empty or narrowed corpus, and test every admitted/excluded form that changes their detection boundary. Script specs run in forked workers beside the rest of the suite and beside the other gate processes in their job, so own every port, temporary path, and child…
This tree contains only tests whose committed session JSONL is replay input and expected persisted output. Keep non-session ARIA, geometry, generator, CLI, and unit expected output with its owning app, script, or package; use test:expected, test:web, or test for its owning tier. Every process under test starts through the dsh CLI with a shipped profile and optional scenario patches. Test clients may drive a public protocol or browser interface; do not add another application entrypoint, hidden CLI mode, or executable…
Follow the root instructions, the documentation standard, and the documentation workflow. website/ owns only VitePress configuration, presentation assets, and the publication manifest. This file is the only maintained Markdown file in this subtree. Keep canonical prose and generated catalogs in their owning docs/ tier, then expose selected pages through docs.ts. Never add locale, route, API, or copied documentation trees such as website/zh-CN/, website/en/, or website/api/. The projector writes disposable Markdown to the ignored website/.generated/ directory. Never edit or commit .generated/,…