2nd dokployH
Find a file
Tianyi Cui a4152705ef fix review finding: abort tests must prove the hook process is gone
Codex review of the draft: the abort-on-dispose tests asserted only that
dispose() resolved and no warning fired — a regression back to untracked
fire-and-forget runs would pass both. The hook script now records its
shell PID before sleeping, and after dispose the test asserts
process.kill(pid, 0) throws: the drain resolves only after the killed
run settled (the child reaped), so ESRCH-by-dispose-return is
deterministic under the correct implementation, while an alive or
unreaped process fails it. Verified the discriminator by gutting drain()
locally: exactly these two tests fail.
2026-07-07 00:02:10 +08:00
.agents/skills docs: state the dependent check's contract as zero-versus-non-zero 2026-07-06 01:19:46 +08:00
.claude docs: accuracy sweep, architecture restructure, two ADRs, review skill 2026-06-13 22:05:34 +08:00
.github/workflows ci: keep measured e2e worker cap 2026-07-06 03:20:08 +08:00
docs Merge branch 'master' into codex/parallelize-ci 2026-07-06 21:54:07 +08:00
examples Merge branch 'master' into codex/parallelize-ci 2026-07-06 21:54:07 +08:00
packages fix review finding: abort tests must prove the hook process is gone 2026-07-07 00:02:10 +08:00
scripts Merge branch 'master' into codex/parallelize-ci 2026-07-06 21:54:07 +08:00
vendor Use explicit ts specifiers for declarations 2026-06-22 06:11:00 +08:00
.gitignore ci: cache eslint lane 2026-07-06 03:07:35 +08:00
AGENTS.md Merge branch 'master' into codex/gate-cadence-docs 2026-07-06 21:55:48 +08:00
CLAUDE.md Initialize repo with README, AGENTS.md, and CLAUDE.md symlink 2026-06-10 22:58:56 +08:00
eslint.config.mjs ci: ignore doc-typecheck temp dirs during lint 2026-07-06 02:04:32 +08:00
knip.json chore: knip learns agent-loop's e2e entry (ported from #162 with request-cache.e2e.ts) 2026-07-06 04:01:56 +08:00
lefthook.yml Merge parallel pre-push gates into CI scheduler 2026-07-06 01:47:13 +08:00
LICENSE Initialize repo with README, AGENTS.md, and CLAUDE.md symlink 2026-06-10 22:58:56 +08:00
package.json ci: isolate lint and tune coverage lane 2026-07-06 02:39:26 +08:00
pnpm-lock.yaml review: the persona becomes the system-prompt plugin's deployment config 2026-07-05 23:23:46 +08:00
pnpm-workspace.yaml Reorganize packages into a modular hierarchy 2026-06-20 22:55:20 +08:00
README.i18n.yaml docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
README.md docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
README.zh.md docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
tsconfig.base.json Merge branch 'worktree-hooks-d-subagent' into worktree-hooks-e-protocol 2026-07-04 03:01:22 +08:00
tsconfig.build.json feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot 2026-07-04 16:43:06 +08:00
tsconfig.json feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot 2026-07-04 16:43:06 +08:00
tsdown.config.ts Merge remote-tracking branch 'origin/master' into feat/adr0016-type-build-check 2026-06-22 00:35:51 +08:00
vitest.config.ts Merge parallel pre-push gates into CI scheduler 2026-07-06 01:47:13 +08:00
vitest.e2e.config.ts Merge parallel pre-push gates into CI scheduler 2026-07-06 01:47:13 +08:00
vitest.snapshot.config.ts feat: one tsconfig.json and different rules 2026-06-19 23:35:47 +08:00

DeepSeek Harness

English | 中文

The DeepSeek Harness SDK is a plugin-based SDK for building agent harnesses.

Development

This monorepo is built on the Cordis framework (vendored as source under vendor/), microkernel-style: everything is a plugin.

pnpm install
pnpm run test          # vitest
pnpm run demo:repl     # REPL agent demo (needs DEEPSEEK_API_KEY)
pnpm run demo:acp      # ACP server agent demo (needs DEEPSEEK_API_KEY)

For humans, start with the development guide for local setup, hooks, environment variables, and quality gates, then read the architecture design and documentation graph index before package work. Local context lives in packages/ and vendor/.

For agents, follow AGENTS.md.