Skip to content

v1.0.4 - Asynchronous subagents

Choose a tag to compare

@ScottRBK ScottRBK released this 02 Aug 10:13
· 14 commits to main since this release

Highlights

Asynchronous subagents

Subagent calls now return immediately with a Job ID while AgentShell continues working in the
background. Completed results are delivered automatically to the parent conversation as follow-up
messages, so the parent remains available while delegated work runs.

Job cancellation

Running jobs can now be cancelled either by the parent agent with the subagent_cancel tool or by
the user with:

/agentshell-cancel <job-id>

Job IDs are unique and cannot be confused with resumable AgentShell session IDs.

Background-job widget

Pi now displays a compact widget above the editor while jobs are active. It shows up to three jobs
and summarises additional work as +N more. Jobs remain visible while cancellation is completing or
while a finished result is waiting to be delivered.

Named jobs and richer job details

Every subagent call now requires a short task_name of 1–40 characters. The widget and
/agentshell-jobs display the task name together with its harness, model, effort, status, and Job ID.

Important

task_name is a new required parameter for callers using the subagent tool directly.

Other improvements

  • Added /agentshell-jobs for inspecting active and delivering jobs.
  • Prevented stale Job IDs from referring to unrelated work.
  • Added regression coverage for asynchronous execution, cancellation, delivery, metadata, and UI
    state transitions.
  • Expanded the README with asynchronous job lifecycle and cancellation guidance.
  • Restored the original project architecture diagram.

Upgrade

Update installed Pi extensions and reload the current session:

pi update --extensions
/reload

The npm package is available as
@scottrbk/pi-agentshell-extension@1.0.4.

Full changelog: v1.0.3...v1.0.4