Merge master and fix desktop editing and Windows lock contention

This commit is contained in:
07akioni committed 2026-09-14 12:16:33 +08:00
commit 9187c3662e
2155 files changed
+729908 -34277

No files matched your search

+64 -45
View File
@@ -4,57 +4,75 @@ DeepSeek Harness is an all-plugin Cordis agent harness. Read [docs/architecture.
## Pre-stable APIs and released Session data
Public APIs are pre-stable; update every consumer. [Session version/status](docs/session-format-status.md) defines the authorities. [Adjacent migration](.agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.md) 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`.
Public APIs are pre-stable; update every consumer. Follow [version/status](docs/session-format-status.md) and [type acknowledgements](docs/cookbook/reviewing-persistence-type-changes.md). [Adjacent migration](.agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.md) 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](docs/cookbook/reviewing-persistence-type-changes.md).
**Application launch.** Only `dsh` profiles launch supported Node apps; package bins, demos, and public SDK argv escapes are forbidden ([rule](docs/architecture.md#application-launch)).
## Repository layout
```
vendor/ Vendored Cordis source — manifest + sync procedure in vendor/README.md
vendor/ Vendored Cordis (vendor/README.md)
packages/ @deepseek-ai/dsh-<pkg> workspaces at packages/<group>/<pkg>/
core/ product API spine: session, system-prompt, tools, agent, agent-loop
api/ Remote BFF assembly and Typert RPC gateway
typert/ type graph generator, loader, and runtime registry
llm/ LLM capability: Service Definition/Consumer + DeepSeek providers
e2b/ E2B POC: sandbox + FS/subprocess adapters
shell/ bash capability: Service Definition + local/pwsh providers + shell Consumers
subprocess/ subprocess capability + local process-tree provider + shared Win32 library
terminal/ persistent sessions
fs/ filesystem capability + policy
lsp/ language-server capability
skill/ skill provider registry + local impl + catalog/loader tool
web/ web capability: Service Definition + search/fetch providers + tool Consumer
compaction/ compaction capability + basic provider
context/ request-context plugins
subagent/ subagent capability: Service Definition + providers + delegation Consumers
bundle/ installable dsh --profile patch-layer bundles
workflow/ workflow capability + worker-thread provider + tool Consumer
webhook/ webhook ingress
todo/ todo_write tool
plan/ plan mode as logged state
preset/ per-session agent composition from preset cordis.yml files
guard/ loop-hygiene + tool-timeout plugins
self-modification/ the agent inspects/mounts its own plugins
hooks/ Claude Code/Codex hook bridges + wire-protocol library
session/ durable session data: persistence, projection, titles, telemetry
identity/ anonymous identity
settings/ user-settings capability + file provider
credentials/ credential/authorization capabilities + env/.env provider
acp/ automation-only Agent Client Protocol server
interaction/ approval/interaction capabilities, permission, commands, ask-user
boot/ shared profile/application boot glue
sdk/ JSON-RPC protocol + TypeScript client/server
experimental/ pre-stable prototypes; private by default with explicit public exceptions
support/ dev/test infrastructure
util/ zero-dependency utilities
python/ Python SDK/runtime (see python/README.md)
native/ @deepseek-ai/node-addon-system source of record (see native/README.md)
core/ agent/session API
api/ remote BFF
typert/ type graphs
llm/ model providers
shell/ command execution
subprocess/ child-process management
ssh/ SSH execution providers
terminal/ persistent terminals
ptc-runtime/ PTC execution
sandbox/ process confinement
fs/ filesystem access
lsp/ language servers
skill/ skill loading
web/ search/fetch tools
computer-use/ computer interaction
compaction/ context compaction
context/ request context
subagent/ delegated agents
jobs/ background jobs
bundle/ profile bundles
workflow/ workflow execution
webhook/ webhook ingress
todo/ todo_write tool
plan/ logged planning
goal/ session goals
schedule/ scheduled follow-ups
preset/ agent composition
guard/ loop/tool guards
extensions/ runtime self-modification
hooks/ Claude Code/Codex bridges
session/ durable sessions
session-query/ browsing/search/export
attachment/ binary attachments
spill/ output spill
storage/ non-session storage
workspace/ workspace entities
feedback/ human feedback
identity/ anonymous identity
settings/ user settings
credentials/ credentials/authorization
acp/ automation-only ACP
interaction/ human interaction
boot/ application boot
sdk/ JSON-RPC SDK
host/ GUI host
client/ GUI client
mcp/ external tools
experimental/ pre-stable prototypes; public by default with explicit private exceptions
test-support/ test infrastructure
runtime-diagnostics/ runtime invariants
util/ zero-dependency utilities
python/ Python SDK/runtime (python/README.md)
native/ @deepseek-ai/node-addon-system source (native/README.md)
benchmarks/ performance gates
.agents/ Agent workflows and Agent Notes (`notes/`)
docs/ architecture, generated catalogs, postmortems, cookbook (see docs/AGENTS.md)
.agents/ Agent workflows/notes
docs/ Documentation (docs/AGENTS.md)
scripts/ gates and generators
website/ VitePress projection of selected bilingual docs/ sources
website/ VitePress documentation projection
```
Package groups: [packages/README.md](packages/README.md).
@@ -76,7 +94,7 @@ pnpm run duplication # cross-file TypeScript clone detection
pnpm run build # tsc emits lib/types, tsdown bundles runtime
pnpm run hygiene # publint + workspace/package/dependency checks + NodeNext consumer check
pnpm run check:windows-wine # ONLY when diagnosing a known Windows failure (needs wine); CI owns this signal
pnpm run doc-sync # all documentation gates; leaf list in scripts/run-gates.ts
pnpm run doc-sync # documentation gates (scripts/run-gates.ts)
pnpm run test:docs # quick documentation checks (no build; doc-quick aggregate)
pnpm run website:build # VitePress build (doubles as dead-link check)
pnpm dsh --profile headless "task" # run one task from source (needs DEEPSEEK_API_KEY)
@@ -121,8 +139,9 @@ Real-API tests/demos read `DEEPSEEK_API_KEY`, optional `DEEPSEEK_BASE_URL`, and
- **Trust TypeScript at typed same-process boundaries.** Do not add runtime validation, fallback behavior, or hostile-input tests solely for values the static interface requires; validate at parser/config, queued, model/tool JSON, durable/file, worker, process, and wire boundaries.
- **Source plane vs artifact plane, never mixed.** Static gates and tests resolve workspace imports through tsconfig `paths` to `src` and pass on a clean tree; gates consuming built `lib/` declare that dependency ([layout](docs/development.md#typescript-project-layout)).
- **Keep compiler faces explicit.** A package with both Host and Client programs exposes face-specific leaf configs and a solution-only root; repo-wide programs seed a face config, never the root solution ([layout](docs/development.md#typescript-project-layout)).
- **An empty `catch` names what it swallows** and why nothing else can reach it; keep the `try` to one statement.
- **Keep comments local.** Do not restate code, explain distant behavior unless locally required, or expand unrelated comments ([rationale](.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md)).
- **An empty `catch` names the error** and why; keep its `try` to one statement.
- **Keep comments local.** Do not restate code, expand unrelated comments, or explain distant behavior without local need ([rationale](.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md)).
- **Ban `prove` + `nance`** ([rule](.agents/notes/implemented/process/2026-08-26-ban-ambiguous-origin-label.md)).
- **Prefer symmetry for parallel values**; unexplained asymmetry usually signals a missed extraction.
- **Tests describe behavior, not correctness.** Change obsolete behavior with its tests; explain why in the PR.
- **Non-trivial changes MUST include an Agent Note in the same PR;** only mechanical/local edits are exempt ([scope](.agents/notes/README.md#when-to-write-one)). Archived notes are frozen: never edit or treat them as current authority ([archive policy](.agents/notes/README.md#archiving-and-deletion)).