v1.0.4 - Asynchronous subagents
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-jobsfor 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