Bundle
dsh-goal-quiescence
Completion evidence gate for DeepSeek Harness goal-mode subagents
- Source
- 1052326311
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 11 days ago
Readme
# dsh-goal-quiescence **Do not complete a Harness goal while observed subagent evidence is still running or has not been explicitly returned to the goal agent.** `dsh-goal-quiescence` is a community plugin for DeepSeek Harness. It addresses the goal-mode failure reported in [DeepSeek Harness Discussion #284](https://github.com/deepseek-ai/deepseek-harness/discussions/284): a parent can call `update_goal(action=complete)` while background reviewers are still running, after which their result can arrive too late to affect the completed goal. ## What it enforces For every subagent run observed after the plugin has loaded under an active goal, the plugin records the public `subagent/start` and `subagent/end` lifecycle pair. It then denies `update_goal(action=complete)` until: 1. Every observed child run has settled. 2. The goal agent calls `goal_quiescence_ack` for every settled run. That tool returns the run's terminal assistant output as its own tool result, making the evidence visible in the parent agent's current context. `goal_quiescence_status` gives a bounded list of the runs that still block completion. The plugin does not schedule, cancel, or retry children, and it does not replace Harness goal mode. ## Install ```sh pnpm install pnpm pack dsh plugin --profile web add ./dsh-goal-quiescence-<version>.tgz ``` The bundled patch enables the plugin. It requires the normal Harness `goal`, `subagent`, and `tools` services provided by the Web profile. ## Completion flow 1. Work normally in goal mode and delegate background reviews as needed. 2. If goal completion is denied, call `goal_quiescence_status`. 3. Wait for each `running` run to settle. 4. Call `goal_quiescence_ack` with each returned `runId`; inspect the terminal output it returns. 5. Resolve any reported finding, then call `update_goal(action=complete)`. ## Guarantees and boundaries The gate is a process-local lifecycle policy. It covers runs that begin after the plugin is loaded and completion attempts made through the model-facing `update_goal` tool. The policy deliberately does not claim to be an atomic core transaction: direct service calls, a process restart, or a child that began before plugin activation are outside its observable boundary. A core lifecycle permit would be needed for an end-to-end atomic guarantee. Within that boundary, acknowledgement is not a metadata checkbox: the acknowledgement tool returns the saved terminal output into the parent agent's tool context before it releases completion. This prevents the specific "settled but unseen" state from being treated as complete. ## Verification The integration test mounts the real Harness `ToolRuntime`, `GoalService`, and `SubagentRuntime`. It starts a real runtime lifecycle through a deferred provider, proves completion is denied while the child is running, proves it is still denied after settlement but before acknowledgement, verifies the child output reaches the acknowledgement tool result, and finally completes the unchanged goal revision. ```sh pnpm test pnpm check ```
Install
dsh plugin --profile web add github:1052326311/dsh-goal-quiescence
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-goal-quiescence from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.