Commit Graph

1792 Commits

Author SHA1 Message Date
Tianyi Cui
8bb8ac8b3c docs(tasks): condense background task prose
The background-task change repeated its lifecycle design across implemented RFCs, package READMEs, JSDoc, test commentary, and model-visible schemas. That repetition obscured the contracts that maintainers must preserve and added avoidable prompt tokens.

Rewrite the implemented RFCs around the current design, keep authorization, exact-owner cleanup, wait/abort ordering, producer quiescence, and teardown-failure guarantees at their owning surfaces, and remove peer surveys, review history, control-flow narration, and emphatic restatement.

Shorten the task and subagent schema wording, synchronize the bilingual tool cookbook, and regenerate the config, service, RFC, tool, and replay snapshot derivatives. Runtime behavior is unchanged; test edits update prose-only assertions and descriptions.
2026-07-15 21:08:58 +08:00
Yichen Jiang
306b79fa2c Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
# Conflicts:
#	docs/config-catalog.md
#	docs/module-graph.md
#	examples/coding-agent/README.md
#	examples/coding-agent/cordis.yml
#	packages/README.md
#	packages/examples/acp-demo/README.md
#	packages/examples/agent-spine-demo/README.md
#	packages/examples/agent-spine-demo/package.json
#	packages/examples/agent-spine-demo/src/index.ts
#	packages/examples/stdio-demo/README.md
#	pnpm-lock.yaml
#	scripts/doc-budgets.manifest.json
#	scripts/verify-package-readme-model-experience.ts
2026-07-15 16:57:03 +08:00
Tianyi Cui
5ee9217146 Merge pull request #325 from deepseek-harness/worktree-demo-move
refactor: relocate demo app bundles to packages/examples/*-demo
2026-07-15 16:49:41 +08:00
imccyu
6c2b86b5f2 fix: point node-mode launcher at the renamed dsh-jsonrpc-demo package
_node_launch_args builds the launcher path from segments, so the package
rename to dsh-jsonrpc-demo did not reach it via the path sweep. A freshly
deployed node closure ships @deepseek-ai/dsh-jsonrpc-demo, so node mode
raised FileNotFoundError. The docstring and exe ENTRY_BIN already use the
new name.
2026-07-15 16:46:05 +08:00
imccyu
6dde9f70f0 fix: satisfy doc gates after the examples/ relocation
Repair cross-group README links whose targets changed groups
(ui/jsonrpc, ui/app-boot -> examples; examples/* -> ui seams),
re-record the bilingual-pair consistency hashes for the docs the
rename touched on both language sides, and condense the AGENTS.md and
packages/README.md group entries. The packages/README ceiling rises
710 -> 760 for the mandated new examples/ hierarchy row (5% headroom).
2026-07-15 16:46:05 +08:00
imccyu
e4691a2f79 fix: register the examples/ group in the tsconfig paths map
The @deepseek-ai/dsh-* wildcard maps each package name to its group's
src; the new packages/examples/ group needs its own glob, or the four
moved packages fall back to unbuilt lib/ and vitest cannot resolve them.
Also update the moved specs' plugin export-name assertions (acp-agent ->
acp-demo, stdio-agent -> stdio-demo, agent-core -> agent-spine-demo).
2026-07-15 16:46:05 +08:00
imccyu
2a48b31306 docs: rewrite group maps for the examples/ relocation
Add the packages/examples/ group README, drop the moved packages from the
core/ and ui/ group READMEs, and add the examples/ row to the packages
hierarchy table and the repo-layout in AGENTS.md.
2026-07-15 16:46:05 +08:00
imccyu
6f77da4c8c refactor: relocate demo app bundles to packages/examples/*-demo
Move the agent-spine bundle and the stdio/ACP/JSON-RPC app packages out of
core/ and ui/ into a new packages/examples/ group, renamed with a -demo
suffix so the npm name marks them as non-product surface:

  core/agent-core   -> examples/agent-spine-demo  (dsh-agent-spine-demo)
  ui/stdio-agent    -> examples/stdio-demo        (dsh-stdio-demo)
  ui/acp-agent      -> examples/acp-demo          (dsh-acp-demo)
  ui/jsonrpc-agent  -> examples/jsonrpc-demo      (dsh-jsonrpc-demo)

Update every code/config/test reference and reference-only doc mentions, and
regenerate module-graph, config-catalog, and doc-graphs. The jsonrpc bin
(dsh-jsonrpc-agent) and single-file exe (dsh-jsonrpc-agent-pkg) keep their
names; the SDK runtime-startup surface is reconciled separately.
2026-07-15 16:46:05 +08:00
Tianyi Cui
c2a0ca1927 Merge pull request #324 from deepseek-harness/worktree-windows-support
Fix: Windows build-path bootstrap: LF checkout, .cmd shims, tsc via node
2026-07-15 16:45:41 +08:00
imccyu
e6e587b97d ci: add a native-Windows build lane (install + build)
Runs `pnpm install` + `pnpm run build` (tsc -b + tsdown) on windows-2025,
and is listed in all-checks-passed `needs` so a Windows build regression
cannot land silently. Windows path/shell support is still partial, so this
lane covers the build surface only; tests and gates are not run here yet.
2026-07-15 16:38:22 +08:00
imccyu
7b0310cac4 fix(scripts): run publint/tsc via node JS entry, not a shell .cmd shim
shell:true space-joins the executable and args UNESCAPED (Node DEP0190), so
an absolute .cmd path breaks whenever the repo path contains spaces and
`pnpm run hygiene` fails. Invoke publint's (`node_modules/publint/src/cli.js`)
and tsc's (`node_modules/typescript/bin/tsc`) JS entry through process.execPath
instead — no shell, extension-agnostic, identical on every platform, matching
the pattern already used by doc-typecheck.ts.

Addresses ds-review-bot on #324.
2026-07-15 16:38:22 +08:00
Huanqi Cao
65d07a490f fix(scripts): handle .cmd bin shims on Windows (CVE-2024-27980)
execFileSync on a .cmd shim returns EINVAL on recent Node without shell:true. Same bug class as install-lefthook.mjs. Affected publint-all.ts and verify-node-next-types.ts.

(cherry picked from commit 5ae40bee1c840fbbdd197ee15907aa660a343c52)
2026-07-15 16:09:12 +08:00
Huanqi Cao
4cbd722074 Declare LF and final-newline conventions in .editorconfig
Pairs with .gitattributes: eol=lf pins what git produces at checkout;
.editorconfig pins what editors write to disk - the one CRLF vector
git's filters cannot reach (git never rewrites the working tree, so an
editor-written CRLF file would persist with a clean status while the
doc gates misbehave on it). insert_final_newline declares the existing
one-trailing-newline policy (AGENTS.md, gated by git diff --check) at
the editor layer too.

(cherry picked from commit 7a09602fd76efff81a0875fb177289004c3dfc9b)
2026-07-15 16:09:12 +08:00
Huanqi Cao
d42b118fe3 Spawn tsc by its JS entry so doc-typecheck runs on Windows
execFileSync('node_modules/.bin/tsc') spawns an extensionless shim
that is not executable on Windows (the CVE-2024-27980 class the
sibling scripts hit); the catch treated the spawn failure as a compile
failure with empty diagnostics. The .cmd shim would need shell:true,
which concatenates args unescaped - a hazard for the temp project
path - so invoke typescript/bin/tsc through the current node instead;
identical behavior on every platform.

Note this gate had never actually run on this Windows checkout: with
the pre-eol=lf CRLF working copy the fence regex matched no ts blocks
('.' does not match \\r), so it reported 'no ts code blocks to check'
and exited green. The LF working tree surfaced the spawn bug; with
this fix the gate compiles all 21 blocks on Windows.

(cherry picked from commit b49993c28e068c2beb411eae1f0c8ac4985aa3ae)
2026-07-15 16:09:12 +08:00
Huanqi Cao
1c4bb7008d Pin LF working trees via .gitattributes
The repo's committed content is already 100% LF (verified: 802/802
text files); until now the working-tree form depended on each
contributor's core.autocrlf, and autocrlf=true checkouts produced CRLF
working copies that byte-level gates had to tolerate (fence parsing,
consistency-record parsing, blob hashing, README splice comparison).
eol=lf removes the smudge boundary entirely: attributes override any
local autocrlf, so every checkout on every host sees the repo's
canonical form. git add --renormalize confirmed a zero-change no-op -
no committed blob (including vendor/) is rewritten. The script-side
CRLF tolerances remain as defense in depth for editor-introduced CRLF
in not-yet-committed files. If a file class ever needs CRLF in the
working tree (.bat/.cmd), a per-pattern eol=crlf override keeps the
in-repo form LF while smudging those checkouts only.

(cherry picked from commit 5d21ebee20391c3d5c1d3812bd3aaa92bc652973)
2026-07-15 16:09:12 +08:00
Huanqi Cao
8e6ad0a347 fix(scripts): launch lefthook bin shim via shell on Windows
spawnSync on a .cmd shim returns EINVAL/null status on recent Node (CVE-2024-27980) unless shell:true, which made postinstall fail and blocked every 'pnpm run' on Windows.

(cherry picked from commit 65a08f889ff9738ddaceeeb724e6e24f3be4b2ea)
2026-07-15 16:09:12 +08:00
TianleLin
b4ec4060a7 Merge pull request #202 from deepseek-harness/feat/mcp-client
feat: add MCP client plugin (dsh-mcp-client)
2026-07-15 15:53:27 +08:00
Tianyi Cui
e7bae3aa3b Merge branch 'master' into feat/mcp-client 2026-07-15 15:50:59 +08:00
Yichen Jiang
4f92ede4a0 Merge branch 'master' into codex/rfc-subagent-background-tasks 2026-07-15 15:41:56 +08:00
lintianle
b9eeb2162c Fix lockfile broken by hand-resolved merge conflict
The web-editor conflict resolution renamed the cordis snapshot keys to
rc.7 but left the mcp-client importer pointing at the deleted
cordis@4.0.0-rc.6(...rc.4) key, so every CI lane failed at
'pnpm install --frozen-lockfile' with ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY.

Align the mcp-client cordis range with the repo-wide ^4.0.0-rc.7 sweep
from master and re-resolve the lockfile with pnpm.
2026-07-15 15:40:02 +08:00
Tianyi Cui
9cd31c7259 Merge pull request #300 from deepseek-harness/codex/simp-drop-assembled-section-order
refactor: drop assembled section order echo
2026-07-15 15:36:57 +08:00
Yichen Jiang
17511ea0d8 Merge branch 'master' into codex/rfc-subagent-background-tasks 2026-07-15 15:33:53 +08:00
Tianyi Cui
dbae83d573 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2026-07-15 15:31:29 +08:00
Tianyi Cui
6c8e856552 Merge pull request #290 from deepseek-harness/codex/simp-prune-code-runtime-surface
refactor: prune code runtime surface
2026-07-15 15:31:09 +08:00
TianleLin
905b8ead9f Merge branch 'master' into feat/mcp-client 2026-07-15 15:22:32 +08:00
Tianyi Cui
0239ac3752 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2026-07-15 14:05:54 +08:00
Tianyi Cui
627738c4ed Merge remote-tracking branch 'origin/master' into codex/simp-prune-code-runtime-surface 2026-07-15 13:58:44 +08:00
Yichen Jiang
40336f945a Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks 2026-07-15 13:38:22 +08:00
Yichen Jiang
09d9fec6f9 Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
# Conflicts:
#	docs/config-catalog.md
#	docs/core-data-structures/bash.md
#	packages/bash/bash-local/src/index.ts
#	packages/bash/bash/src/types.ts
#	packages/bash/bash/tests/service.spec.ts
#	packages/bash/tool-bash/README.md
#	packages/bash/tool-bash/src/index.ts
#	packages/bash/tool-bash/tests/tools.spec.ts
#	packages/cordis/tool-cordis/src/api-catalog.ts
2026-07-15 13:38:17 +08:00
Tianyi Cui
457e3b827f Merge pull request #297 from deepseek-harness/codex/simp-prune-web-seam-fields
refactor: prune unused web seam fields
2026-07-15 13:32:12 +08:00
Yichen Jiang
3285b77d3c Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-15 13:30:39 +08:00
Tianyi Cui
96851da571 Merge remote-tracking branch 'origin/master' into codex/simp-prune-web-seam-fields
# Conflicts:
#	docs/rfc/INDEX.md
2026-07-15 13:28:40 +08:00
Tianyi Cui
fc3b6255e7 Merge pull request #292 from deepseek-harness/codex/simp-prune-bash-surface
refactor: prune bash implementation surface
2026-07-15 13:26:57 +08:00
Tianyi Cui
fe2d61198f Merge remote-tracking branch 'origin/master' into codex/simp-prune-bash-surface 2026-07-15 13:23:16 +08:00
Tianyi Cui
e6edee1d54 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2026-07-15 13:21:06 +08:00
Tianyi Cui
38ea10eee0 Merge remote-tracking branch 'origin/master' into codex/simp-prune-code-runtime-surface 2026-07-15 13:20:08 +08:00
Tianyi Cui
7e03ecc937 Merge pull request #289 from deepseek-harness/codex/simp-prune-tools-prompt-surface
refactor: prune core tool and prompt surface
2026-07-15 13:19:25 +08:00
Tianyi Cui
3eb8c15b36 Merge remote-tracking branch 'origin/master' into codex/simp-prune-tools-prompt-surface 2026-07-15 13:14:56 +08:00
Tianyi Cui
7938c4201e Merge pull request #304 from deepseek-harness/refactor/agent-leaf-dependencies
refactor: add independent stdio interface - not std-agent allinone
2026-07-15 13:12:44 +08:00
Tianyi Cui
eccaf2e2f7 Merge remote-tracking branch 'origin/master' into codex/simp-prune-tools-prompt-surface 2026-07-15 13:10:16 +08:00
imccyu
8aa4c8f660 Merge branch 'master' into refactor/agent-leaf-dependencies 2026-07-15 13:10:14 +08:00
Tianyi Cui
13caeaeeda Merge pull request #302 from deepseek-harness/codex/simp-share-loader-smoke-harness
refactor: share loader smoke harness
2026-07-15 13:09:41 +08:00
imccyu
517964fe84 Merge branch 'master' into refactor/agent-leaf-dependencies 2026-07-15 13:09:33 +08:00
Tianyi Cui
600af3ca79 chore: reconcile loader smoke lockfile 2026-07-15 13:06:08 +08:00
Tianyi Cui
4d29e8b5d7 Merge remote-tracking branch 'origin/master' into codex/simp-share-loader-smoke-harness 2026-07-15 13:03:53 +08:00
Tianyi Cui
b75c9909e5 Merge pull request #299 from deepseek-harness/codex/simp-drop-skill-provider-events
refactor: drop unconsumed skill provider events
2026-07-15 13:03:30 +08:00
Tianyi Cui
e16ce4d04e Merge remote-tracking branch 'origin/master' into codex/simp-drop-skill-provider-events 2026-07-15 12:59:17 +08:00
Tianyi Cui
6a0bb33eab Merge pull request #294 from deepseek-harness/codex/simp-prune-workflow-worker-surface
refactor: narrow workflow worker surface
2026-07-15 12:58:58 +08:00
imccyu
4593bf6ed4 Merge remote-tracking branch 'origin/master' into refactor/agent-leaf-dependencies 2026-07-15 12:54:06 +08:00
Tianyi Cui
cb682af117 Merge remote-tracking branch 'origin/master' into codex/simp-prune-workflow-worker-surface 2026-07-15 12:53:29 +08:00