Skip to content

Add durable agent bindings and child execution #879

Description

@dcramer

Objective

Add durable agent bindings and invocations, then prove a child conversation can execute independently through the shared conversation worker without model-facing tools.

Scope

  • Add a stable agent binding for named continuity and execution policy.
  • Add a durable invocation for each delegated task, including input, lifecycle, terminal result, and parent-notification state.
  • Create or reuse a child conversation with immutable parentConversationId lineage.
  • Allow child conversation work to be runnable without a conversation-level provider delivery destination; the invocation supplies bounded execution authority and an internal result target.
  • Enqueue invocation input as stable child mailbox work.
  • Run the child through the same lease, start/resume decision, session records, execution slices, terminalization, and recovery workflow proven by Unify new and resumed turns in the conversation worker #876 and Migrate agent dispatch onto the conversation worker #882.
  • Persist one terminal invocation result; parent delivery is added in Deliver subagent results through a durable parent outbox #878.
  • Keep recursive delegation disabled.

Completion

  • Named bindings may reuse one isolated child conversation; ephemeral work creates a new child conversation.
  • Every invocation has a stable id used as, or to derive, the mailbox idempotency key.
  • Child work survives execution-slice timeout, worker loss, queue redelivery, and missing wake-ups.
  • Destinationless child conversation work can be woken, leased, started, and resumed through the normal conversation queue.
  • Parent completion or idleness does not cancel the child.
  • One invocation produces at most one durable terminal result.
  • Child authority, credentials, tools, visibility, and workspace scope do not exceed the parent-provided bounds.
  • The proof works without model-facing spawn/result tools.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions