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.