Releases: clankercode/pi-subagents
Release list
v0.13.0
[0.13.0] - 2026-07-08
This release merges upstream (tintinweb/pi-subagents) through v0.13.0 — adopting FleetView, persist_session, foreground lifecycle symmetry, forgiving model resolution, and more — while preserving every fork feature (herdr, dashboard UI, event-forwarding, recursive widget tree, c2c, scheduling, retry handles, abort-resend, wait timeout, tool-description mode, custom agents).
Added
- FleetView — Claude Code-style subagent navigator below the editor (upstream tintinweb#114) — a persistent, navigable list of
main+ active subagents beneath the editor, auto-shown whenever agents run.↓/←at an empty prompt enters the list,↑/↓selects,Enteropens the live conversation overlay,Escreturns. Toggle via/agents → Settings → Fleet view(default on). Pure-UI, no LLM-context cost. persist_session/session_diragent frontmatter (upstream tintinweb#111) —persist_session: truewrites the subagent's full transcript to pi's session location (inspectable and resumable) instead of keeping it in memory only.session_diroptionally overrides the path.- Widget mode for the above-editor widget (upstream tintinweb#118) — new
widgetModesetting:background(default — hide foreground agents that already render inline as the Agent tool result),all, oroff. - Foreground agent lifecycle symmetry (upstream tintinweb#105) —
onCompletenow fires for foreground agents too (withresultConsumedpre-set), and foreground conversations stream to.outputfiles. - Forgiving model resolution + richer Agent types list (upstream) — agent model pins resolve fuzzily (date-stamp optional, provider fallback) and the
/agentstypes list shows each agent's resolved model. - Herdr
workingstatus — when inside a herdr-managed pane and the newherdrReportWorkingsetting is on (defaulttrue), the extension reports the pane asworking(custom-statusrunning subagents) for the duration that ≥1 subagent is running, and releases the status authority when the last one finishes. Without this, herdr screen-scrapes the parent pane's buffer and mis-classifies the blocked-waiting parent asidlewhile subagents do the real work. Refcounted across foreground/background/concurrent/resume/abort paths. No-op outside herdr. Toggle via/agents → Settings → Herdr status. - Steer-with-input form (
/steer-subagent) — new dashboard management-modal form (agent picker + message textarea) that steers a running subagent with a user-typed message. The row-actionSteerbutton on the/subagentstable can't collect text (the dashboard'sUiActiononly supports a yes/noconfirm), so the form is the in-protocol way to send custom steer text. The agent list rebuilds on every probe so it stays current.
Fixed
- Preserve unread completed subagents across session events (upstream tintinweb#108) —
clearCompleted(skipUnconsumed)now keeps results the LLM hasn't read yet across/new,/resume, and session switches; the 10-minute cleanup timer handles eventual eviction. - Dashboard
View Resultrow action now opens the log — it previously replied with aui_data_liston the row-action event, but the dashboard's/subagentstable only ever renders rows for its bounddataEvent(subagents:rows), so the reply was stored and never displayed (nothing happened). The action now opens the agent's streamingoutputFile(always present) in the host's default viewer (xdg-open/open/start), falling back to a tmp file of the result text when nooutputFileexists. This is the one reliable way to surface a subagent log from this modal — the protocol has no row-action detail-view mechanism. (The first-partySubagentDetailViewinspector is not an option for this fork: it's hard-coupled to@blackbelt-technology/pi-dashboard-subagents, a competing subagent engine that conflicts with this extension.)
v0.11.1
What Changed
Fixed
-
Depth 2+ subagents now appear in the TUI widget — Each child session's
DefaultResourceLoaderpreviously created its own isolated event bus, so lifecycle events (subagents:created,subagents:started,subagents:completed,subagents:failed) from depth 2+ agents never reached the parent's widget listener. A forwarding event bus now wraps the parent bus: the child gets its own isolated local bus (so it does not see parent/sibling events), but lifecycle events are forwarded to the parent so the widget renders the full recursive agent tree with├─/└─connectors at any depth. (b2af0dd, 0478029) -
Agent tool description shows next spawn depth instead of agent's own depth — The
{{currentDepth}}placeholder and recursive guideline in the Agent tool description now showextensionDepth + 1(the depth the next spawned agent would be at) instead ofextensionDepth(the agent's own depth), eliminating the off-by-one confusion where a depth-1 agent displayed "1/4" but spawned agents at depth 2. (0b2c69d) -
Event bus propagation covers all spawn paths — RPC-spawned agents (
cross-extension-rpc.ts), scheduled agents (schedule.ts), andspawnAndWaitforeground agents now correctly receive the parent's event bus and recursive depth metadata, so lifecycle events from agents spawned via any path are visible in the parent widget. (0478029) -
Dashboard UI action handlers — Steer, abort, and view-result row actions in the subagents management modal now route to the correct handler functions instead of silently no-opping. (fb07d08)
-
Dashboard UI duplicate module push guard — The
ui_managementprobe no longer pushes duplicate module entries when called multiple times in the same session. (241b1d5)
Added
- Dashboard UI model column — The subagents management modal now shows the model used by each agent (e.g. "opus", "sonnet") in a dedicated column. (3ffead0)
Install
npm install @clanker-code/pi-subagents@0.11.1Full Changelog: v0.11.0...v0.11.1
v0.11.0
What's Changed
Added
- Dashboard UI module integration —
pi-agent-dashboardusers can now see subagents in the dashboard. Three integration points: a footer-segment decorator showing running/completed agent counts, a/subagentsmanagement-modal command that opens a table view of all subagent history with row actions (view result, abort, steer), and round-trip event handlers wired through theui_managementprotocol. Lifecycle events trigger automatic dashboard invalidation. - Compact view for
get_subagent_result— when tool output is collapsed in the TUI,get_subagent_resultnow shows first 20 + last 20 lines of the result body with a styled divider. The full content is still passed through to the LLM. The divider format also applies to the Agent tool's collapsed view. list_subagentsandclear_subagentstools — agents can inspect retained subagent records with a compact renderer and clear stale completed records.list_subagentsdefaults to active/problem agents plus the two most recent successful completions;all: trueshows the full retained list.clear_subagentsdefaults to successful completions older than 5 minutes.
Changed
- Agent defaults omitted
subagent_typetogeneral-purpose— callers can omit the type for the default agent. - Built-in Explore no longer pins Haiku — inherits the parent/session model unless overridden.
snipMiddleLinesdivider updated — uses a styled format with line counts instead of plain text.
Fixed
- Nested subagents now appear in the live widget as soon as they are created — the widget listens to
subagents:createdlifecycle events. get_subagent_resultpeek bounds embedded multiline output — JSONL transcript entries with newlines are split before line-count limits are applied.get_subagent_resultrenderResult uses typed status — correctly renders queued status with accent spinner icon.
Full Changelog: v0.10.8...v0.11.0