deepseek-harness/scripts
imccyu b5f618bcfb workflow: swap the engine's internals to node:worker_threads
In-place port of dsh-workflow-vm from the in-process node:vm execution
to one worker thread per run (the workflow-workerthread engine of
PR #215, adopted as THE engine): the script's vm context moves inside
the worker, agent() bridges to ctx.subagents over the message port
(host.ts/protocol.ts/session.ts/worker.ts are new; runtime.ts loses the
abandon channel — the host's grace timer force-settles and TERMINATES
instead), start() pre-parses the body host-side to keep the seam's
synchronous SCRIPT_PARSE throw, and a ready→go handshake keeps a run
cancelled before start from ever executing the body. start() no longer
blocks the host, termination is real, and the value boundary is
serialization by construction. The package keeps its name until the
follow-up rename commit; scripts see the identical hook surface, and
the seam-contract tests hardened ahead of this swap pass unchanged.

The run and child-RPC surfaces are class-shaped rather than literal
bundles: WorkerRun IMPLEMENTS the seam's WorkflowRun (id/meta are its
own clone, separate from event payloads') and start() returns the
instance directly — interface parity with the seam is compiler-checked;
worker-side, ChildRpcBridge (implements ChildPort; callId allocation +
pending book-keeping settled by onChild* entry points) and
RpcChildHandle (every member an RPC keyed by its callId) carry names in
stacks. ChildPort's method is startAgent — it names what it starts,
matching the script-side agent() hook and the agentsStarted /
workflow/agent-* vocabulary; the Child* type names deliberately stay
(the worker side is cordis- and subagent-free; these are reduced JSON
projections, not the seam's types).

Review findings from the reference PR are folded in rather than
re-introduced:
- cancel() drives BOTH child-cancel channels host-side: the request
  signal aborts AND each registered child's explicit cancel() is
  called — a worker wedged in a synchronous spin cannot relay its own
  ChildCancel RPCs (regression: cancel-only provider + wedged worker).
- All host warn paths render through the total renderThrown; a child
  dispose() rejecting a value whose coercion throws still acks
  ChildDisposed instead of wedging the script's finally (regression).
- built-worker.e2e.ts is wired into builtBinSmokeGate and the AGENTS.md
  CI sequence — the built lib/worker.js resolution contract now runs in
  an automated gate.
- workflow/end payload pinned on the worker-death path (with the
  cancelled and grace-force-settle pins riding the ported spec).
- Real-Worker scripted timing budgets widened (50-300ms → 150-1000ms)
  for starved CI hosts.

Workspace plumbing: the "./worker" subpath export sanctions the second
runtime bundle (check-workspace-constraints), tsdown builds two
single-entry passes, tsx becomes a devDependency for the unbuilt worker
spawn.
2026-07-09 19:31:14 +08:00
..
check-vendor-manifest.sh Add lefthook git hooks with a vendor-manifest guard 2026-06-11 15:07:55 +08:00
check-workspace-constraints.ts workflow: swap the engine's internals to node:worker_threads 2026-07-09 19:31:14 +08:00
doc-budgets.manifest.json docs: fix catalog and budgets 2026-07-07 21:39:48 +08:00
doc-typecheck.ts feat: generated plugin config catalog (docs/config-catalog.md) 2026-07-06 21:57:17 +08:00
gen-config-catalog.ts Merge remote-tracking branch 'origin/master' into worktree-export-jsdoc-gate 2026-07-07 09:34:12 +08:00
gen-cordis-catalog.ts Merge remote-tracking branch 'origin/master' into worktree-export-jsdoc-gate 2026-07-07 09:34:12 +08:00
gen-doc-graphs.ts Merge branch 'structured-output-subagent-seam' into worktree-dynamic-workflows 2026-07-07 10:00:58 +08:00
gen-module-graph.ts docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
gen-persistence-catalog.ts docs: flatten single-file catalog dirs to docs/tool-catalog.md and docs/persistence-catalog.md 2026-07-06 22:26:06 +08:00
gen-rfc-index.ts docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
gen-tool-catalog.ts Merge branch 'structured-output-subagent-seam' into worktree-dynamic-workflows 2026-07-07 10:00:58 +08:00
install-lefthook.mjs fix(dev): make hooks and bash seams safer 2026-06-17 21:26:44 +08:00
jsdoc.ts Merge remote-tracking branch 'origin/master' into worktree-export-jsdoc-gate 2026-07-07 09:34:12 +08:00
publint-all.ts chore: parallelize pre-push gates 2026-07-06 00:52:00 +08:00
rfc-index.ts docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
run-gates.ts workflow: swap the engine's internals to node:worker_threads 2026-07-09 19:31:14 +08:00
translation-pairing.manifest.json fix: retarget the i18n pairing exclusions to the flattened catalog paths 2026-07-07 00:08:55 +08:00
type-equiv.manifest.json Merge branch 'structured-output-subagent-seam' into worktree-dynamic-workflows 2026-07-07 21:23:20 +08:00
verify-doc-budgets.ts docs(budgets): ceilings carry at least 5% working headroom 2026-07-04 17:20:18 +08:00
verify-doc-refs.ts docs: split cordis primer from architecture map 2026-07-05 19:07:34 +08:00
verify-export-jsdoc.ts fix review findings: CI leaf-gate wiring, heritage return surface, AGENTS.md self-containedness 2026-07-07 20:30:34 +08:00
verify-md-links.ts docs: bilingual docs contract, translation skill, and pairing gate 2026-07-02 23:12:25 -07:00
verify-md-wrap.ts docs(AGENTS): rewrite the root standing orders to the 1,500-word budget 2026-07-04 14:22:47 +08:00
verify-mermaid.ts docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
verify-node-next-types.ts docs: update rewriteRelativeImportExtensions to current rfc 2026-06-22 09:03:28 +08:00
verify-package-paths.ts fix review findings: don't treat disabled entries as load failures; scope the verify-package-paths lib skip to a real package root 2026-06-21 19:47:22 +08:00
verify-rfc-classification.ts docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
verify-rfc-format.ts docs(rfc): address Codex review — fence-aware format gate, exact corpus counts 2026-07-05 23:45:34 +08:00
verify-translation-pairing.ts docs: equal-authority pairing with sidecar consistency records 2026-07-03 07:41:24 -07:00
verify-type-equiv.ts Reorganize packages into a modular hierarchy 2026-06-20 22:55:20 +08:00