[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.)