Files
deepseek-harness/packages/support/loader-smoke/README.md
T
Tianyi Cui a8a1ada183 docs: move execa Agent Note to implemented; update inbound links and README contracts
- proposed/testing -> implemented/testing with the lifecycle rewrite
  (Proposal->Decision in present tense, Acceptance criteria + Risks
  folded into Consequences); zh counterpart mirrored and both pairs
  re-recorded.
- the rejected NIH-audit roll-up pair now links the implemented/ path.
- loader-smoke README: captured output is bounded by execa's default
  100 MB maxBuffer, no longer unbounded.
- acp-snapshot README: harness.ts now also imports vitest (vi.waitFor),
  so the vitest-run-only constraint names both modules.
- jsonrpc keyless smoke: raise the invalid-env case's subprocess
  deadline to 25s (the 9s pick starved a cold tsx boot on slow NFS).
2026-07-26 23:10:38 +08:00

1.4 KiB

@deepseek-ai/dsh-loader-smoke

English | 中文

Shared subprocess harness for tests that boot an app and cordis.yml through the Cordis Loader. resolveExampleLaunch selects local src mode (tsx and root tsconfig paths) or CI lib mode (plain Node and package exports) from an explicit mode or DSH_EXAMPLE_MODE.

runLoaderSmoke accepts bin and config paths, optional complete bin arguments, environment overrides, stdin, pre-run setup, and pre-cleanup inspection. It owns the isolated cwd, DSH homes, diagnostics, deadline, termination, EOF, and cleanup; it returns both streams after a zero exit and rejects with both streams on failure.

This is support-tier test infrastructure, not product API.

Model Experience

None, as this test-only harness boots example processes and inspects their streams without changing an assembled model request.

KV Cache effect

None; this package neither assembles nor sends a provider request.

Known Limitations and Deferred Work

  • Built mode requires a prior build — the config must also resolve every named package upward through examples/node_modules.
  • Captured stdout and stderr are bounded only by execa's default 100 MB maxBuffer — a runaway child is terminated at that ceiling rather than at a smoke-chosen budget.
  • Timeout kills only the direct child — a process tree spawned by a faulty fixture can outlive the smoke and needs external cleanup.