2nd dokployH
Find a file
Turtle bec6805d6a refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path
The persistence seam is now create/open/stat/list returning per-session
SessionHandles (read/append/flush/close); every log read and write flows
through the owning handle. The seam package exports only the service and
handle contracts, consumer-visible errors, and pure durable-data
validation helpers; each backend owns its complete storage runtime, and
the shared contract suites pin equivalent observable behavior. The
backend routes published sessions' live events by id into the active
write handle; agent-loop only acquires, seeds, and closes the handle.
Resume appends interruptedTurnClosers through its write handle;
session-query owns the revision-keyed cold cache. Legacy-only surfaces
are removed in the same swap: locate/readRaw/supportsRawArtifacts, the
legacy event-shape read migration, zstd torn-frame salvage,
DSH_SESSION_JSONL, and hook transcript_path population; a torn final
zstd frame is discarded whole; the session-list cold blank probe returns
on stat metadata (eventCount derived from the last physical row,
sizeBytes). The WebUI ZIP export serializes the logical log from a read
handle, so both backends export identically.

Refs #3245
2026-09-01 23:19:02 +08:00
.agents refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
.claude
.github Merge branch 'master' into turtle/pr-open-start-date 2026-08-31 16:27:41 +08:00
apps refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
docs refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
native
packages refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
patches
python chore(sdk-runtime): adopt master's manifest (drop the code-runtime-python peer) 2026-08-31 14:56:11 +08:00
scripts refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
snapshots refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
vendor release(vendor): cordis 4.0.2, cosmokit 1.8.3, group 1.0.2, hmr 1.0.17, include 1.0.7, loader 1.0.3, logger-console 1.0.2, schemastery 3.18.2, timer 1.1.4 2026-08-30 11:04:50 +08:00
website
.editorconfig
.gitattributes
.gitignore fix(code-runtime-python): bound three child-side walks by depth, not width 2026-08-31 14:24:59 +08:00
.gitlab-ci.yml
.jscpd.json
.oxlintrc.json
.oxlintrc.staged.json
.rgignore
AGENTS.md Merge master into codex/omit-unneeded-invariants 2026-08-31 14:38:55 +08:00
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 release(dsh): 0.1.2-alpha.3 2026-08-31 23:39:37 +08:00
pnpm-lock.yaml refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
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 chore: commit the master third-party notices (SDK 0.3.241) 2026-08-31 14:59:01 +08:00
tsconfig.base.client.json
tsconfig.base.json Merge remote-tracking branch 'origin/master' into feat/3220-steer-service 2026-09-01 13:46:35 +08:00
tsconfig.client.json
tsconfig.host.json Merge remote-tracking branch 'origin/master' into feat/3220-steer-service 2026-09-01 13:46:35 +08:00
tsconfig.json
tsdown.config.ts
vitest.config.ts Merge remote-tracking branch 'origin/master' into turtle/omit-unneeded-invariants 2026-09-01 11:54:10 +08:00
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

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.