Files
deepseek-harness/packages/support
kingwl 1f38b211be Merge origin/master (generic task runtime #219, single-exe closure, package renames)
Semantic resolutions beyond line merges:
- The bash seam keeps resolveMode + the bash/resolve-mode waterfall on
  master's task-free BashExecutor (run/start/resolve only; BashProcess
  handles); tool-bash consults it at its stamping site and escalation
  baseline on master's render/background split, with a waterfall test on
  the recording executor.
- dsh-mode's BASH_FAMILY narrows to ['bash']: bash_output/bash_kill are
  replaced by the kind-generic task_output/task_kill, which span every
  task kind and only observe or stop work, so the access cap withholds
  only the starter it can reason about.
- The plan-mode snapshot suite adopts master's pin grammar (tool-schema
  sidecars; the expectedHeaderSnapshots extension is gone — the exit
  transition deltas, and entering-before-turn-1 needs no second
  snapshot); modes-advertise joins the plan header class (no-model, so
  membership is vacuous). Fixtures re-recorded on the acp-demo bin;
  the replay overlay gains the passthrough sandbox runner.
- examples/plan-acp-agent rewires to @deepseek-ai/dsh-acp-demo and drops
  its tool-bash entry (the spine bundle now composes it); dsh-stdio (the
  renamed stdio-chat home) keeps its /mode command and gains the dsh-mode
  peer edge; the acp bridge keeps the modes surface beside master's
  permission presets.
- mode README gains the Model Experience / Known Limitations sections the
  new README gates require; AGENTS.md ceiling 1370 → 1440 for the kept
  mode/ layout line and Agent efficiency section.
2026-07-15 23:17:18 +08:00
..
2026-07-15 11:28:45 +08:00
2026-07-15 11:28:45 +08:00

support/ — dev/test/example infrastructure

Packages that exist to serve development, testing, and the examples rather than to ship as product API. They are real workspace packages (typed, tested, under the coverage gate), but they carry lower compatibility expectations: they may change or be removed when the development need behind them does, without the deprecation care a product package would warrant.

Package Role ctx key
acp-snapshot/ ACP snapshot suite kit: subprocess scenario harness + golden normalizers + the defineAcpSnapshotSuite factory (library — imported by example *.snapshot.ts suites)
invariants/ Runtime event-contract assertions for development diagnostics (listens on session/*, agent/*)
loader-smoke/ Shared real-Loader subprocess harness for keyless example smokes (library — imported by example e2e suites)
llm-replay/ Record/replay adapter: short-circuits llm/stream from a recorded session JSONL (keyless snapshot tests) (listens on llm/stream)
subagent-mock/ Scripted SubagentProvider for deterministic seam/tool tests (registers on ctx.subagents)

invariants is development support but has no environment guard: it runs wherever registered, and the default dsh-agent-spine-demo bundle mounts it unconditionally. llm-replay backs the demos and the snapshot test tier under the per-file coverage gate. acp-snapshot carries the snapshot tier's harness/normalizer/suite machinery, while loader-smoke owns the parallel stdio/Loader process boundary used by keyless example e2e suites. subagent-mock exercises the real ctx.subagents load path without a model or child agent. A package graduates OUT of support/ into a product group only when it gains documented product consumers.