pi-subagents 0.76.1 is a reliability release. When a subagent result wakes an idle parent, that parent now keeps its full prompt (subagent list, MCP servers, other extensions), so it stops forgetting tools mid-session and stops churning your provider's prompt cache. Updating pi-subagents while Pi is running now gives a clear "restart Pi" message instead of strange errors after /reload. Herdr users get a pane that only turns red when a person is actually needed, and paused runs that looked stuck can now be stopped.
Highlights
- A parent woken by a subagent result keeps the subagent list, MCP servers, and other extensions' prompt sections for the whole run.
- Updating pi-subagents while Pi is running now stops
/reloadwith a clear "restart Pi" error instead of running a mix of old and new code. - In Herdr, a child asking its parent agent for help no longer turns the pane red.
stopworks on a paused run whose result was already delivered, andsubagent doctorshows the same async capacity that launches use.- Reloading extensions while a child's result is waiting no longer lets a host such as pi-web lose that result.
Changelog
Highlights
- When a subagent result wakes an idle parent, that run keeps the subagent list, MCP servers, and other extensions' prompt sections, and no longer churns the provider's prompt cache.
- Updating pi-subagents while Pi is running now stops
/reloadwith a clear "restart Pi" error instead of running a mix of old and new code. - In Herdr, a child asking its parent agent for help no longer turns the pane red.
stopworks on a paused run whose result was already delivered, andsubagent doctornow shows the same async capacity that launches use.- Reloading extensions while a child's result is waiting no longer lets a host such as pi-web lose that result.
Changed
- The npm package now has the
extensionkeyword, so Pi's extension catalog lists pi-subagents under Extensions instead of Unlabelled.
Fixed
- When a subagent result, supervisor question, or other notice woke an idle parent, the run it started skipped Pi's normal prompt setup. From its second request on, it lost the subagent list, the MCP server list, and other extensions' prompt sections, and the changing prompt could invalidate the provider's prompt cache. The parent now gets the notice followed by a short
Subagent updates above.message, which starts the run the normal way. Thanks to @ashlineldridge for #2688. - Reloading extensions while a child's result was waiting in Pi's queue made the session look idle, so a host such as pi-web could replace the session and lose the result. The session now stays busy until Pi picks up the result. Thanks to @brettinternet for #2687.
- After pi-subagents was updated while Pi was running,
/reloadran a mix of old and new code and failed with errors such ascompletionNotifier.messageStarted is not a function. Node cannot reload a module it has already imported, so loading now stops with an error that names both versions and asks you to restart Pi. Thanks to @TheAsda for #2695. - Child system prompts started with pi-subagents' own instructions instead of Pi's base prompt. Providers and extensions that recognize Pi's default prompt by its first sentence then sent
systemPromptMode: appendchildren Pi's whole prompt unchanged. Pi's prompt now comes first. (#2692) - When a per-tool timeout stopped a foreground child, its output said
Subagent timed out after <run timeout>ms.(or0mswhen no run timeout was set), naming a deadline that never fired. It now names the tool timeout, for exampleTool 'find' exceeded its timeout of 300000ms.Thanks to @mannainsect for #2691. stopfailed withpaused result is missingon a paused run whose result had already been delivered or was never written, and a finished parent workflow kept that run's async capacity slot. When the run's process has exited,stopnow marks it stopped and the slot is freed. Thanks to @builtroller for reporting #2699.subagent doctorcould reportusage: 0/3 usedwhile launches were rejected with3/3 used, for example in a session resumed withpi --session <id>, because doctor counted a different capacity pool than launches do. It now reads the same pool for both active async capacity and the spawn budget. Thanks to @builtroller for reporting #2698.- In Herdr, the pane turned red, which means a person needs to act, whenever an async child needed attention, including a child waiting for its parent agent's answer. Those requests go to the parent agent, so pi-subagents no longer marks the pane blocked; the
⚠in the pane's subagent label still shows it. Thanks to @nateberkopec for reporting #2702.