deepseek-harness/packages/support/loader-smoke
2026-07-29 15:30:44 +08:00
..
src test: adopt execa for hand-rolled subprocess plumbing, parseArgs for llm-mock-server CLI, vi.waitFor for poll loops 2026-07-26 22:29:41 +08:00
tests refactor(cli): make dsh the sole terminal front door, drop RESUME_SESSION_ID 2026-07-25 12:43:59 +08:00
package.json test: adopt execa for hand-rolled subprocess plumbing, parseArgs for llm-mock-server CLI, vi.waitFor for poll loops 2026-07-26 22:29:41 +08:00
README.i18n.yaml docs(i18n): record proofread README pairs 2026-07-29 15:30:44 +08:00
README.md docs: move execa Agent Note to implemented; update inbound links and README contracts 2026-07-26 23:10:38 +08:00
README.zh.md docs(i18n): proofread README translations 141-160 2026-07-29 15:29:38 +08:00
tsconfig.json feat(invariants): require package-owned companions 2026-07-19 22:13:50 +08:00

@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.