Files
deepseek-harness/packages/tasks
Yichen Jiang d78b796a51 feat(tasks): wake an idle owner when a background task completes
Completion notices went through agent.inject(), which never reserves a
driver, so a task settling after its turn closed left the notice parked
until unrelated input woke the agent — while the same prompt told the
model not to poll for it.

An unreported completion now picks its lane from the owner's state: a
busy owner is injected as before, an idle owner is woken with
followup(). This adopts the delivery rule the subagent continuation
manager already ships. maxConsecutiveWakes bounds the self-exciting
chain and is reset by user-authored input; completionDelivery: quiet
restores the old lane for deterministic transcripts.

Teardown cancellation now claims the terminal report the way kill()
already does, so an owner being destroyed is never woken, and settle()
announces completion last so a reporter that opens a turn synchronously
sees a committed record.
2026-08-11 19:36:49 +08:00
..

tasks/ — background-task capability family

English | 中文

This family gives long-running tools one owner-isolated background-task protocol for observation, cancellation, waiting, and completion notices.

Package Role ctx key
tasks/ Defines the task registry and lifecycle contract ctx.tasks
tasks-local/ Implements the process-local task registry registers on ctx.tasks
tool-tasks/ Exposes task control and completion notices to the model registers on ctx.tools

See the background-task runtime and task-registry decisions.

The subsystem reference — the id scheme, the owner-fenced contract, snapshots — is docs/subsystems/tasks.md; design in the background-task runtime and task-registry contract Agent Notes.