mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Moving the agent plane behind per-session presets took five rows with it that the host still owns, and the Web surface stopped booting: `host-apiproxy` injects `subagents`, so with the registry disabled here the entry never activated and `dsh web` died at plugin-tree load. The criterion is injection, not subject matter. A host row that injects a service resolves it before any session exists, so there is no agent to key by: `bash-env` (which `apps/cli/src/web.ts` injects to publish `DSH_WEB_URL`), the `subagents` registry and its spawn/fork backends (a process singleton whose cross-session queries the api-proxy serves, and whose provider names are globally unique), and `tool-subagent-report` (a continuable setup on that singleton, registered once per live session by a list that is not scope-aware) all stay host-plane. What a preset chooses is which delegation TOOLS it sees. The browser lane needs the second half: skill roots now resolve inside a preset, a subtree the lane's include patches cannot reach, so the row's documented environment fallback is pinned for the whole scaffold lifetime — presets mount when a session is created, not at boot. Without it a developer's real ~/.dsh/skills enters replay requests and goldens while CI sees none.
bundle/ — profile plugin bundles
English | 中文
Profile bundles: npm packages whose manifest declares "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }, making them installable patch layers for dsh --profile compositions (profile contract). A bundle's substance is its patch list; some also ship runtime glue plugins their patch mounts.
| Package | Role | ctx key |
|---|---|---|
base/ |
The shared dsh core every profile applies first | — (patch only) |
web-app/ |
Browser surface: web patch layer + runtime glue plugin | mounts rows |
headless/ |
One-shot task mode over base + web-app | mounts headless-runner |
In-box bundles resolve from the dsh installation; out-of-tree bundles install into a profile through dsh plugin --profile <name> add <package>.