Files
deepseek-harness/packages/subagent
Turtle c58097a826 feat(session-persistence-jsonl): cross-process write-ownership lease
Write handles now hold a durable lease (session.lock.json beside the
log): a random owner token, diagnostic pid, and an expiry. Acquisition
wins by exclusive create; a second process's create or write open rejects
while the record is unrenewed for less than leaseTtlMs (default 5 min),
and takes over after that — a crashed holder is waited out, never
reclaimed by pid. The holder renews every leaseRenewIntervalMs (default
4 min); a renewal that finds a foreign, vanished, or expired record — or
fails outright — marks the lease lost permanently, so every later
append/flush rejects with SessionOwnershipLostError while reads continue.
Close releases the record; read handles never touch it. Takeover of an
expired record is eventually exclusive: a replaced holder stops within
one renewal interval.

Refs #3245
2026-09-04 14:12:14 +08:00
..
2026-09-03 02:27:19 +08:00
2026-08-30 14:14:46 +08:00
2026-08-30 14:14:46 +08:00

description, kind
description kind
The subagent package group: the delegation seam, its in-process and out-of-process backends, and the model-facing delegation tools. package-group

subagent/ — subagent capability family

English | 中文

Summary

The subagent group is the delegation family: it lets an agent hand a task to a child agent, wait for or continue the child's work, and keep every child discoverable. One contract (ctx.subagents) serves any number of named providers, so a single composition can mix in-process children (fresh, or forked from the parent's completed history) with out-of-process children — an ACP agent, a real Codex or Claude Code installation, or a complete Harness runtime over the SDK. The model-facing tools expose delegation, adjacent-Agent messaging, and listing to agents, and a parent can always see which children exist and whether they are live or stored. This page maps the group; each package README owns its package contract.

Table of Contents


Packages

Package Role ctx key
subagent/ Defines the delegation service: provider registry, one-shot runs, continuable children, and discovery ctx.subagents
subagent-in-process-driver/ Provides the shared in-process run driver
subagent-spawn-in-process/ Runs a fresh in-process child registers on ctx.subagents
subagent-fork-in-process/ Runs an in-process child seeded from the parent's completed history registers on ctx.subagents
subagent-acp/ Runs an out-of-process child over the Agent Client Protocol registers on ctx.subagents
subagent-codex/ Runs a real Codex child through the official app-server protocol registers on ctx.subagents
subagent-claude-code/ Runs a real Claude Code child through the official Agent SDK registers on ctx.subagents
subagent-dsh-sdk/ Runs an out-of-process Harness child through the TypeScript SDK registers on ctx.subagents
tool-subagent/ Exposes delegation to the model registers on ctx.tools
tool-subagent-control/ Exposes adjacent-Agent messaging, interrupt, and listing to the model registers on ctx.tools

Dev Note

None.