Skip to content

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 21:02
38a9675

🐑 Pi Herdsman v0.22.0

More control over how the herd works. Less complexity to get started.

v0.22.0 introduces configurable Lead execution profiles, makes /herdsman the main entry point, and establishes a clearer boundary between Manager-controlled project work and ordinary Lead sessions.

It also simplifies the coordination-tool vocabulary, improves context-retirement handling, and adopts Pi 1.1.0.

Important

Breaking change: Model-facing coordination tools now use verb-first names. Existing agent instructions, integrations, and workflows referencing the previous tool names need updating.


Lead execution is now configurable

Ordinary Leads can now operate in two explicit execution modes:

Flexible

A normal Pi session with Herdsman coordination capabilities. The default profile preserves Pi's ordinary tools and supports both direct work and delegation.

Orchestrate

An orchestration-focused Lead that delegates bounded work to Agents while retaining coordination, direction, integration, and decisions.

The bundled Orchestrate profile starts with read-oriented tools, but both profiles can be customized.

Each mode has its own standalone definition:

Ordinary Lead
├─ Flexible     → flexible-lead
└─ Orchestrate  → orchestrator-lead

Manager-assigned Lead
└─ Managed      → managed-lead

These profiles do not inherit from or compose with one another.

Switch ordinary execution modes through:

/lead
/lead flexible
/lead orchestrate

The /herdsman menu also provides an Execution selector.

A new defaultLeadExecution setting controls the initial mode for future ordinary Lead sessions. The default is flexible.

Execution preferences persist across session continuation, and navigation through Pi's conversation tree restores the appropriate execution state.

Note

Lead execution profiles control instructions and ordinary tool availability, not ownership or supervision authority. Manager-assigned Leads continue using their separate managed-lead definition.

Contributor: @boadij · PR: #304 · Issue: #294


/herdsman becomes the main entry point

Herdsman has grown beyond background Agents. The human-facing interface now reflects that broader scope.

Run:

/herdsman

to access:

  • Execution
  • Agents
  • Project manager
  • Session stats
  • Definitions
  • Settings
  • Advanced controls

The interface progressively exposes more powerful workflows without requiring users to understand the entire orchestration hierarchy first.

Existing /agents commands remain fully supported as aliases, including their arguments and expert shortcuts.

Tip

You can start with normal Pi usage, add background Agents when useful, and move into dedicated Lead or Manager workflows without changing tools or adopting a prescribed development process.

This also establishes progressive capability disclosure as an explicit product-design principle: simple workflows should remain simple even as more advanced orchestration becomes available.

Contributor: @boadij · PRs: #300, #299


Manager authority is now tied to exact project assignments

Manager supervision is now explicitly limited to Leads named by current durable project assignments.

Sharing a workspace or worktree scope no longer implies Manager authority.

Manager
  └─ assigned Lead       → Manager authority

Unassigned ordinary Lead → no implicit Manager authority

Unassigned Leads remain eligible for Chief supervision.

This makes the project-control boundary clearer and avoids treating physical proximity as ownership.

Automatic handoffs from managed Leads

Every completed direct turn from an assigned Lead can now return a nonterminal report to Manager.

When a managed Agent herd run owns the work, herd settlement remains the single automatic handoff boundary.

This closes the gap where a Lead could perform multi-turn direct work without reliably returning its result to Manager.

Routine coordination through message_supervisor remains asynchronous and nonblocking.

Explicit /takeover

Users can now release a Lead from Manager control without destroying its working environment.

After confirmation, /takeover:

  • removes the current project assignment and pending project messages
  • preserves the Pi session and conversation
  • preserves the branch, worktree, and running process
  • preserves the Lead's owned Agents
  • transitions the Lead to ordinary Orchestrate execution

This is an authority transition, not project completion.

Important

A managed Lead remains managed until its assignment is explicitly released. Merely continuing the same Pi session manually does not revoke Manager authority.

Contributor: @boadij · PR: #284 · Issues: #277, #278


Breaking: coordination tools now use verb-first names

The model-facing API now follows a consistent:

<verb>_<target>

naming convention.

Agent tools

agent_list       → list_agents
agent_delegate   → delegate_agent
agent_continue   → continue_agent
agent_steer      → steer_agent
agent_interrupt  → interrupt_agent
agent_reply      → reply_agent
agent_close      → close_agent
agent_inspect    → inspect_agent
agent_transcript → read_agent_transcript

Peer and supervisor tools

peer_list          → list_peers
peer_message       → message_peer
supervisor_message → message_supervisor

Staff and project tools

staff_list       → list_staff
staff_inspect    → inspect_staff
staff_transcript → read_staff_transcript
staff_message    → message_staff

staff_delegate   → delegate_project
staff_resume     → resume_project
staff_stop       → stop_lead

The existing ask_owner tool keeps its name.

Human-readable tool presentation, documentation, bundled instructions, and runtime registration have been updated accordingly.

Manager/Lead messaging also remains intentionally distinct from managed-Agent questions: supervisor coordination is nonblocking, while ask_owner remains the direct-owner question mechanism.

Contributor: @boadij · PR: #297 · Issue: #289


Pi 1.1.0 and cancellation-safe settlement

The tested runtime baseline is now:

Pi      1.1.0
Herdr   0.9.3

Pi 1.1.0 provides explicit cancellation information through agent_settled.aborted.

Herdsman now respects that signal when classifying managed-Agent results.

A cancelled run can no longer be reported as successfully completed merely because its last assistant message looked successful.

Cancelled Lead turns likewise produce factual, nonterminal reporting instead of implying verified completion.

This preserves existing assignment ownership, child-work reconciliation, and durable result delivery.

The update also keeps Agent-definition tool policies closed by rejecting Pi's new +name and -name modifiers in explicit tool allowlists.

Contributor: @boadij · PR: #305 · Issue: #301


Context retirement reaches the next provider request

Context retirement now delivers its guidance more reliably when an active managed Agent reaches the automatic compaction threshold.

Pi can defer durable messages until a safe turn boundary. Previously, this meant retirement could be recorded before the next provider request actually received the instruction.

Herdsman now uses a one-request bridge to make the guidance available immediately while retaining the durable message in Pi history.

Preventive threshold compaction remains cancelled, and overflow recovery retains its existing behavior.

Retired Agents also cannot start new Agent delegations or continuations, although they may still coordinate already-running children.

Note

This fixes timely instruction delivery, not guaranteed model compliance. Adversarial testing still demonstrated additional ordinary tool calls after guidance was delivered. Further work on reliable post-retirement convergence remains necessary.

Contributor: @boadij · PR: #310 · Issue: #303


Clearer project reports and evidence boundaries

Manager handoffs now distinguish between information present in a project report and evidence actually available on the current Pi conversation branch.

Automatic project reports preserve their text without silently attaching or inventing result bindings.

A semantic Agent result reference is forwardable only when the relevant direct completion or imported result binding exists on the current branch.

Merely mentioning a reference does not make its underlying artifact available.

Explicit files handoffs remain the supported mechanism for transferring evidence between coordination boundaries.

Contributor: @boadij · PR: #315 · Issue: #313


Execution mode is visible in the status widget

The Lead status widget now shows its verified effective execution mode:

● lead · flexible
● lead · orchestrate
● lead · managed

This helps distinguish ordinary interactive work, orchestration-focused Leads, and Manager-assigned project work without opening a menu.

Unknown or unverified execution state is omitted rather than guessed. Narrow terminals preserve the Lead identity before optional metadata.

Contributor: @boadij · PR: #318 · Issue: #317


Additional polish

Agent Definition details now support individual click-to-expand behavior, consistent with other expandable Herdsman transcript entries.

Editing Agent-definition settings preserves the original frontmatter key order instead of moving edited properties to the bottom. Bundled definitions have also received consistent frontmatter formatting.

Test coverage now recognizes bundled-definition paths across standard macOS, Linux, and Windows home directories.

Contributor: @boadij · PRs: #296, #308, #314


Release

Full changelog: v0.21.3...v0.22.0