The line-aggregating stray capture from the previous round regressed three ways the review caught. Rewrite it on the fd-3 reader's raw-Buffer-chunk shape: accumulate chunks with a byte counter and split on the raw 0x0a byte, so a large newline-free write no longer re-copies the residual and re-scans from index 0 per chunk (both O(N^2)). Meter each admitted entry by serialized cost through a new jsonStringCostUpTo that walks to the cap and stops, so a near-budget control-char-dense line never allocates the sixfold-inflated JSON.stringify result the old ledger did (the critical: ~1.6 GiB transient under a large maxLogBytes). Flush the residual explicitly in the closeDeadline handler before it destroys the streams, so a setsid escapee's path (which fires no end) does not drop a leader's final newline-free diagnostic. Harden the sync-spawn leak assertion to a set difference against a pre-run snapshot, immune to a parallel worker's concurrent tmpdir create/delete. Decline the round-2 request to enforce the fd-3 ceiling per-frame: the counter check must precede Buffer.concat to prevent ~2x memory doubling (two regression tests assert this), and the batch-edge false reject it would fix is reachable only at a maxLogBytes/maxValueBytes configured within one pipe read of the 256 MiB ceiling, far past the defaults. Documented at the check and in the note Alternatives. Add flood, NUL-flood, short-escape, and closeDeadline-flush regression tests (restoring per-file 100% coverage); update the Agent Note and zh pair. |
||
|---|---|---|
| .agents | ||
| .claude | ||
| .github | ||
| apps | ||
| docs | ||
| native | ||
| packages | ||
| patches | ||
| python | ||
| scripts | ||
| snapshots | ||
| vendor | ||
| website | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .jscpd.json | ||
| .oxlintrc.json | ||
| .oxlintrc.staged.json | ||
| .rgignore | ||
| AGENTS.md | ||
| BENCHMARK.md | ||
| BRAND_GUIDELINES.i18n.yaml | ||
| BRAND_GUIDELINES.md | ||
| BRAND_GUIDELINES.zh.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.i18n.yaml | ||
| CONTRIBUTING.md | ||
| CONTRIBUTING.zh.md | ||
| lefthook.yml | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| pytest.ini | ||
| README.i18n.yaml | ||
| README.md | ||
| README.zh.md | ||
| SAFETY.i18n.yaml | ||
| SAFETY.md | ||
| SAFETY.zh.md | ||
| THIRD_PARTY_NOTICES.md | ||
| tsconfig.base.client.json | ||
| tsconfig.base.json | ||
| tsconfig.client.json | ||
| tsconfig.host.json | ||
| tsconfig.json | ||
| tsdown.config.ts | ||
| vitest.config.ts | ||
| vitest.e2e.config.ts | ||
| vitest.expected.config.ts | ||
| vitest.shared.ts | ||
| vitest.snapshot.config.ts | ||
| vitest.web-stress.config.ts | ||
| vitest.web.config.ts | ||
| vitest.web.perf.config.ts | ||
DeepSeek Harness
English | 中文
DeepSeek Harness (dsh) is an open-source agent harness developed by DeepSeek AI.
It is built on an everything-is-a-plugin architecture and powered by Cordis, whose design is described in A Programming Paradigm for Spatiotemporal Composability.
Documentation: https://deepseek-harness.github.io/deepseek-harness/
Developer preview
DeepSeek Harness is in developer preview and iterating rapidly. THERE WILL BE COMPATIBILITY-BREAKING CHANGES.
Review the safety notice before running the project.
Run
Run from npm
Install Node.js, then run:
npx @deepseek-ai/dsh web
The command starts the Web UI at http://127.0.0.1:3080 by default and opens it in the default browser for a local launch. An SSH launch only prints the host URL because the SSH client or editor owns the local forwarded address. Pass --no-open to run the server without opening a browser. See Web UI guide.
Run from source
To run from a repository checkout:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
pnpm run build prepares the repository artifacts. pnpm dsh web uses those built artifacts without rebuilding.
Community and support
- Submit feedback or bug reports through GitHub Discussions.
- Add the
dsh-plugintopic to your plugin repository for discoverability. - Join DeepSeek Harness Discord community.
Contributing
See CONTRIBUTING.md.
Development
Start with the development guide and architecture documentation.
For agents, follow AGENTS.md.
License
Third-party dependencies and their licenses are disclosed in THIRD_PARTY_NOTICES.md.