Files
deepseek-harness/packages/bundle/headless
Yichen Jiang d5af34b022 fix(headless): align the one-shot runner with the direct rosterless profile
The shipped headless profile is base + headless (the direct-core front
door), and its installation-owned migration rewrites the old three-bundle
tuple down to that template, so a one-shot run composes no preset roster.
The runner's optional preset composition was compensating in the wrong
direction: it re-added roster reads the shipped profile never satisfies,
and its golden pinned a header field only a roster-bearing deployment
produces. The runner, the headless bundle manifest, and the dsh-run golden
return to the direct shape; skills in a direct run flow through the base
host rows' global layer, which is what the repository-plugin e2e proves.
2026-08-09 23:12:29 +08:00
..

@deepseek-ai/dsh-headless

English | 中文

The dsh one-shot bundle. cordis.patch.yml rides directly over dsh-base: it supplies the coding persona and tool mode, disables HMR, mounts Code Mode's worker as a core execution capability, and inserts this package's headless-runner plugin (config {task}). It mounts no Host, HTTP server, Web runtime, or browser plugin.

After the Loader settles, the runner reads the shared ctx.agentDefaultModel, creates one fresh persisted Agent through ctx.agents, submits the task as an ordinary user message, and waits for quiescence. It flushes the Session before folding the owned durable event interval, writes the last non-empty assistant text to stdout, and requests exit through the launcher-provided ctx.headlessIo host hook (final turn/end completed → 0, otherwise 1). A terminal error reason also writes its code and message to stderr; successful runs keep stderr empty. The process opens no listening port. The launcher patches the task text in (dsh run "task") and fails loud when the selected profile lacks this row.

Model Experience

None, as the runner submits the task as an ordinary user message; prompts and tools belong to the base and headless bundle rows.

KV Cache effect

None; the runner adds nothing to the request prefix.

Known Limitations and Deferred Work

  • One submitted task only — the runner has no interactive follow-up surface; it waits through any work the Agent completes before returning to idle and prints the last non-empty assistant message in that interval.
  • ctx.headlessIo is launcher-owned — booting the headless profile outside the dsh launcher fails loud at activation until the host provides the hook.