2nd dokployH
Find a file
Chinesezjc 9301def7eb fix(locale): tighten parity gate and correct copy-source wording
Address the three open review threads on the dictionary parity gate.

Regex/TEXT: localeOf now requires an uppercase ASCII [A-Z] flat-letter at
the third position of a name-prefix shape, so zh2Foo/zh_probe are no longer
treated as dictionaries in localeOf while the admission pre-filter skips
them. The two now agree exactly.

register detection now also admits a bare register identifier callee in
addition to a property access, covering a future destructured
register(NS, 'zh'|'en', dict) call instead of silently dropping it.

A 3-arg register whose dictionary argument is a local variable is resolved
through module-scope const initializers; one that cannot be resolved to an
object literal makes the gate refuse with a named error rather than skipping
the registration and narrowing the sweep.

Also restate the FALLBACK_LOCALE rationale: the residual case points at
English because a browser naming neither shipped language is the reader
least likely to read Chinese, not because English is the copy's source
language (Chinese is; packages/client/AGENTS.md). Sync the identical claim
in the bilingual Agent Note and re-record its .i18n.yaml pairing.
2026-08-18 17:56:49 +08:00
.agents fix(locale): tighten parity gate and correct copy-source wording 2026-08-18 17:56:49 +08:00
.claude Revert "test(repository-plugin): drop the skill contribution from the preset-composed e2e" 2026-08-09 22:10:50 +08:00
.github Merge pull request #2252 from deepseek-harness/worktree/fix-1463-rich-content-bridge 2026-08-17 18:38:01 +08:00
apps fix(locale): correct two stale product-default-Chinese comments 2026-08-18 17:39:06 +08:00
docs Merge Claude permission modes into Codex permission modes 2026-08-18 17:19:21 +08:00
examples Merge Claude permission modes into Codex permission modes 2026-08-18 17:19:21 +08:00
native release(landlock-run): 0.1.1 2026-08-13 15:32:17 +08:00
packages fix(locale): tighten parity gate and correct copy-source wording 2026-08-18 17:56:49 +08:00
patches chore(subprocess-local): bump node-pty beta 2026-08-13 17:58:13 +08:00
python Merge branch 'master' into worktree/python-sdk-model-visible-assertions 2026-08-17 17:01:52 +08:00
scripts fix(locale): tighten parity gate and correct copy-source wording 2026-08-18 17:56:49 +08:00
vendor release(vendor): cordis 4.0.1, cosmokit 1.8.2, group 1.0.1, hmr 1.0.16, include 1.0.6, loader 1.0.2, logger-console 1.0.1, schemastery 3.18.1, timer 1.1.3 2026-08-13 14:18:56 +08:00
website Merge remote-tracking branch 'origin/master' into feat/plugin-owned-settings-surface 2026-08-14 15:46:01 +08:00
.editorconfig Declare LF and final-newline conventions in .editorconfig 2026-07-15 16:09:12 +08:00
.gitattributes feat(i18n): compose pairing records during merges 2026-08-08 21:11:59 +08:00
.gitignore chore: untrack the local .claude/launch.json and ignore it 2026-08-08 23:45:38 +08:00
.gitlab-ci.yml fix: address Python release review feedback 2026-08-11 20:09:33 +08:00
.jscpd.json chore(lint): bring .tsx files into the eslint, lefthook, and jscpd lanes 2026-07-27 21:42:08 +08:00
.oxlintrc.json refactor: make lint workflows Oxlint-only 2026-08-09 14:55:15 +08:00
.oxlintrc.staged.json refactor: make lint workflows Oxlint-only 2026-08-09 14:55:15 +08:00
.rgignore chore: exclude archived Agent Notes from rg 2026-08-10 14:49:30 +08:00
AGENTS.md refactor(team): incubate Agent Teams packages 2026-08-18 11:58:11 +08:00
BENCHMARK.md docs: make Web UI the primary onboarding path 2026-08-12 11:44:33 +08:00
CLAUDE.md Initialize repo with README, AGENTS.md, and CLAUDE.md symlink 2026-06-10 22:58:56 +08:00
CONTRIBUTING.i18n.yaml docs(i18n): polish contribution greeting 2026-08-12 14:40:32 +08:00
CONTRIBUTING.md docs(i18n): refine contribution guide wording 2026-08-12 14:24:44 +08:00
CONTRIBUTING.zh.md docs(i18n): polish contribution greeting 2026-08-12 14:40:32 +08:00
knip.json Merge origin/master into Claude permission modes 2026-08-18 17:04:42 +08:00
lefthook.yml Revert "fix(client): declare browser-only externals as devDependencies" 2026-08-15 02:19:09 +08:00
LICENSE Adopt MIT for DSH packages 2026-08-13 13:07:24 +08:00
package.json build(client): enforce client package boundaries 2026-08-18 01:34:53 +08:00
pnpm-lock.yaml fix(locale): keep the test-runtime devDependency and narrow the parity gate catch 2026-08-18 12:25:09 +08:00
pnpm-workspace.yaml chore(subprocess-local): bump node-pty beta 2026-08-13 17:58:13 +08:00
pytest.ini Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose 2026-07-14 00:40:36 +08:00
README.i18n.yaml feat(community,infra): publish README assets through CDN 2026-08-18 16:21:54 +08:00
README.md docs: add link to preview paper 2026-08-13 18:37:45 +08:00
README.zh.md feat(community,infra): publish README assets through CDN 2026-08-18 16:21:54 +08:00
THIRD_PARTY_NOTICES.md docs: update node-pty patch notice 2026-08-13 18:02:39 +08:00
tsconfig.base.client.json refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
tsconfig.base.json refactor(team): incubate Agent Teams packages 2026-08-18 11:58:11 +08:00
tsconfig.client.json refactor(client): merge React bindings into UI renderer 2026-08-18 01:34:23 +08:00
tsconfig.host.json refactor(team): incubate Agent Teams packages 2026-08-18 11:58:11 +08:00
tsconfig.json refactor(tsconfig): single root solution graph over host/client aggregates 2026-07-23 03:59:05 +08:00
tsdown.config.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
vitest.config.ts fix(client): complete dynamic module bootstrap 2026-08-18 01:34:53 +08:00
vitest.e2e.config.ts fix(typert): close remote gateway review gaps 2026-08-07 21:47:15 +08:00
vitest.shared.ts fix(typert): close remote gateway review gaps 2026-08-07 21:47:15 +08:00
vitest.snapshot.config.ts chore: remove remaining SDK toolchain residue 2026-08-11 16:37:29 +08:00
vitest.web-stress.config.ts test(web): add opt-in reasoning chunk stress lane 2026-08-04 14:37:31 +08:00
vitest.web.config.ts fix: vitest 2026-08-13 01:35:47 +08:00
vitest.web.perf.config.ts test: add opt-in web performance scenario 2026-08-04 14:23:34 +08:00

DeepSeek Harness

English | 中文

DeepSeek Harness (dsh) is an open-source agent harness developed by DeepSeek AI.

It uses an architecture where everything is a plugin, and is powered by Cordis, whose design is described in A Programming Paradigm for Spatiotemporal Composability.

Developer preview

DeepSeek Harness is currently in developer preview and is iterating rapidly. THERE WILL BE COMPATIBILITY-BREAKING CHANGES.

Run

Run from npm

Install Node.js, then run:

npx @deepseek-ai/dsh web

The command starts the Web UI, served at http://127.0.0.1:3080 by default. 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

Community and support

Contributing

See CONTRIBUTING.md.

Development

Start with the development guide and architecture documentation.

For agents, follow AGENTS.md.

License

MIT

Third-party dependencies and their licenses are disclosed in THIRD_PARTY_NOTICES.md.