Skip to content

chore(deps): update pi-subagents to 0.80.0 - #330

Merged
rochecompaan merged 1 commit into
mainfrom
automation/pi-subagents-upgrade
Oct 31, 2026
Merged

rochecompaan merged 1 commit into
mainfrom
automation/pi-subagents-upgrade

Conversation

@patchmill-release-please-bot

@patchmill-release-please-bot patchmill-release-please-bot Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

pi-subagents dependency upgrade

Updates pi-subagents from 0.78.0 to 0.80.0.

Release notes

v0.79.0

This release is about not losing work. When one session hands off to another in the same Pi process, the new session now owns the old one's background runs: it can see them, wait on them, steer, stop and resume them, and answer their questions. Coordinators can give a finished worker another round instead of starting over with a fresh child and a re-sent brief. Forked subagents and long sessions also spend fewer tokens, and updating pi-subagents mid-session no longer switches subagent off.

Highlights

  • Handoffs keep your background work. A session that takes over from another one in the same process gets that session's background runs, and a stopped workflow can be picked up with options: { reuseFrom: "<run id>" } without running its finished children again.
  • Resume a finished worker. Resuming a finished background child, a forked child, or a child that was already resumed once now works instead of failing with "session file is not under that nested run's session directory".
  • Fewer wasted tokens. Forked subagents reuse the parent's prompt cache (a fork's first request on a 60k-token Claude parent went from 9.6k to 60.8k cached tokens), /subagent-cost and other view-only reports no longer ride along in every request, and codemode no longer breaks the cache on every resume.
  • subagent survives updates. Updating or reloading pi-subagents mid-session no longer leaves subagent or bg_wait turned off.
  • RPC hosts see more. Each background child's agent, run id, requested model, and the model that actually answered.

Need to know

  • Children launched before this update still can't be resumed by a coordinator. Background and forked children now keep their session in a folder named by their run id, so only children started on 0.79.0 benefit.
  • Children that use Pi's built-in MCP tools need Pi 0.99.2 or later.

Changelog

Highlights

  • Handoffs keep your background work. A session that takes over from another one in the same Pi process can see, wait on, steer, stop and resume the old session's background runs, and a stopped workflow can be picked up with reuseFrom without running its finished children again.
  • Coordinators can give a finished worker another round. Resuming a finished background child, a forked child, or a child that was already resumed once now works instead of failing with "session file is not under that nested run's session directory".
  • Fewer wasted tokens. Forked subagents reuse the parent's prompt cache, /subagent-cost and other view-only reports no longer ride along in every request, and codemode no longer breaks the cache on every resume.
  • subagent survives updates. Updating or reloading pi-subagents mid-session no longer leaves subagent or bg_wait turned off.
  • RPC hosts see more: each background child's agent, run id, requested model, and the model that actually answered.

Added

  • Inspect replies (/subagents-inspect-rpc) now include resolvedModel: { provider, model }, the provider and model of the inspected child's latest reply. Before, a host could only see the requested model. The field is missing until the child replies, for a whole workflow or multi-step run, and for runs from before this release. A forked child's inherited history never counts. Thanks to @koenvg for reporting #2922.
  • The RPC subagent-async status snapshot now includes each background step's model, thinking level and agent. A workflow lane's label names the lane, not the agent, so hosts could not name a running child until it finished. Thanks to @agustinsacco for #2893 (#2892) and @kevinsleegerslameco for #2912 (#2911).
  • In a workflow that waits for its result, a background child's workflowChildren row now carries its agent and runId from launch, and that runId matches the child's run in the subagent-async snapshot. Before, the row had only { childId, state } until the child finished. Thanks to @kevinsleegerslameco for reporting #2911.
  • After a handoff, a relaunched workflow can reuse the work of a run that was stopped because the old session's runtime was replaced: pass options: { reuseFrom: "<run id>" }. Finished children are reused and running ones are awaited, even from another session, as long as the run ran the same script in the same cwd. Before, relaunching ran every child again, so two writers could share one output. The stop notice names the option and the run id. Thanks to @wireknight for reporting #2909.
  • A session that takes over from another one in the same Pi process, for example after a handoff to a new session file, now owns the old session's background runs. They show in its run list, fleet view and RPC snapshot. It can wait on, steer, stop, resume and inspect them, and it gets their notices and answers their supervisor questions. status shows Owner: inherited from session '…' (replaced in this process). for these runs. A fresh start, pi --continue, or another Pi process inherits nothing. Thanks to @wireknight for reporting #2909.

Changed

  • The pi-subagents skill now says that subagent, subagents_enable, subagent_supervisor, contact_supervisor and structured_output can't be called from codemode scripts. With codemode on, models used to try tools.subagent_supervisor(...) and get a "does not exist" error. Thanks to @CovetingEpiphany2152 for the report. (#2887)
  • Replying to a supervisor question that was already answered, expired or withdrawn now lists the questions still pending, so the parent can answer a newer one without another pending call. Thanks to @agustinsacco for #2895. (#2894)

Fixed

  • A coordinator could not resume its own finished background child: resume failed with "session file is not under that nested run's session directory", so it had to start a new child and send the brief again. The same happened for forked children (context: "fork") and for a child that had already been resumed once. All three now resume, with the same ownership checks as before. Background and forked children now keep their session in a folder named by their run id. Children launched before this update still can't be resumed. Thanks to @mannainsect for reporting #2924 and @GeorgeLautenschlager for showing it outside workflows. (#2932)
  • A coordinator child (one that delegates its own work) stayed stuck in bg_wait when one of its children asked it a question with contact_supervisor, so the questions expired unanswered. Its bg_wait now returns as soon as a question is waiting, as the parent's already does. Thanks to @mannainsect for reporting #2923.
  • A child's contact_supervisor question could expire before the parent saw it when the parent was busy in a long tool call, so the child gave up and asked again and the parent's late reply failed. The question's deadline now moves forward until the parent's model sees it. Thanks to @agustinsacco for the report. (#2894)
  • When a handoff or reload stopped an async workflow, its still-running children were listed as stopped, its notice didn't say that reusing finished children works only from the same session, and status offered a Revive: command to sessions that can't use it. The children now show as running, the notice explains how the same session and another session can reuse them, and status offers resume only to the session that launched the run. Thanks to @wireknight for reporting #2909.
  • After pi-subagents was updated or reloaded mid-session, subagent stayed off once the session started again (/reload or pi --continue), and subagents_enable wasn't offered either, so nothing could turn it back on. Pi records the unload as a removal of the extension's tools, and that was replayed as if you had turned subagent off. An unload is now recognized and the tools come back as you had them. Thanks to @bkdinoop for reporting #2910.
  • After such an update, a session continued in a new process (pi --continue) also kept bg_wait off, and a second update in that session lost subagent again. The tools the update removed now come back when the session starts, unless they are excluded for this process. (#2916)
  • Forked subagents now reuse the parent's prompt cache. A fork used to replace the parent's system prompt and tools, so its first request re-read the whole conversation. It now sends the parent's system prompt, tools and messages unchanged, and gets its own instructions in a <subagent_instructions> block at the start of its task. A fork also sees the parent's project context and skills even when its agent turns them off. On Claude with a 60k-token parent, a fork's first request went from 9.6k cached and 52k written tokens to 60.8k cached and 1.7k written. See tool-reference.md for the forks that still miss the cache. Fresh children are unchanged. Thanks to @gabsn for #2879.
  • /subagent-cost and other view-only slash reports no longer go into every later model request. They are still saved, shown in the TUI and sent to RPC callers. /run results stay in context because the model needs them. Reports saved before this update stay until compaction, so updating doesn't break a session's prompt cache. Thanks to @isjiajia01 for #2927 and @summer-tt for the report. (#2925)
  • With Pi's codemode on, every start or resume of a session added another copy of codemode's note to the bg_wait description, so the provider re-read the conversation without its prompt cache. The note now appears once and a resumed session keeps its tool declaration. Thanks to @SamuelBadr for the report. (#2889)
  • When a provider stopped a child with an error, such as a content-filter refusal, the child reported only the stop code. Its error now includes the provider's reply text as Reply text: … (up to 500 characters), so a refusal can be told apart from an outage. In a failed workflow, each failed child's line also starts with its own error instead of the Run fan-out: N/64 used line. Thanks to @stanleytelehealth for #2913.
  • A read-only child running grep … 2>/dev/null could be flagged needs_attention: the redirect counted as a file change, and output containing words like "error" counted as a failure. Redirects to /dev/null no longer count as changes, and a tool call counts as failed only when its result says isError: true. Calls blocked by a hard toolBudget don't count either. Thanks to @Liaokc for the fix and @builtroller for the report. (#2878, #2884)
  • A notice about a long-running bash call in a child suggested command.status, command.yield and command.cancel even when the child had no command controller, so following it failed with "No command controller is available for this child." The notice now suggests them only when they work. Thanks to @G0-0000 for #2882. (#2880)
  • On Pi 1.2 and later, the watchdog took the system prompt of a run started by an extension message (for example a wake sent with triggerTurn: true) as your prompt and showed it to its reviewer model as a real requirement. These runs no longer add to the watchdog's scope, and their edits are still reviewed against your earlier prompts. Thanks to @isjiajia01 for #2928 and @sternnick for reporting #2926.
  • A child using built-in MCP tools failed after 10 seconds even when its server was still connecting normally. It now waits for the connection, fails promptly when a connection fails, and stops waiting when the child is stopped or times out. This needs Pi 0.99.2 or later. Thanks to @qsgy-edge for #2904.
  • An extension that force-exits a headless run on quit could kill the background runner when one of its children ended, so the run failed with "Async runner process N exited with code 0 before writing a result". The runner now sets PI_SUBAGENT_RUNNER_PID to its own pid, so an extension can compare it with process.pid and leave the runner alone. Processes spawned from a child inherit the value but have their own pid. See extension-api.md. Thanks to @hughy for #2885. (#2883)
  • After Pi auto-compacted in the middle of a turn, the async and Fleet status widgets stayed hidden until the whole run ended. They now come back as soon as the compaction finishes. Thanks to @agustinsacco for #2891. (#2890)
  • When a background subagent finished, the parent often logged Failed to acknowledge the mission observer ... Timed out waiting for another process to finish updating with a stack trace and stalled for 200 ms. It now retries quietly a moment later. Thanks to @RainbowXie for the report. (#2896)
  • A finished mission run from an earlier Pi process in the same session was synced to its mission again every 60 seconds, rewriting the mission record each time. It is now synced once. Thanks to @BelovedYaoo for reporting #2905.
v0.79.1

pi-subagents 0.79.1 makes everyday sessions lighter and a few rough spots less fragile. Until you turn on subagent, a session no longer sends two background-work tools with every request, which saves about 1,500 characters per request. Apps that embed Pi, such as pi-web, now launch children with their own Pi instead of a copy bundled with the extension. When a workflow's main process dies, children that already finished keep their real results.

Highlights

  • Leaner requests until you delegate. A session that hasn't turned on subagent no longer sends the bg_wait and subagent_supervisor tool definitions. Sessions that already had them keep them, so upgrading doesn't break their prompt cache.
  • Embedded hosts use their own Pi. Children launched from apps like pi-web use the app's Pi install first. A broken install fails the launch with the reason, and doctor and status keep working.
  • Finished workflow children keep their results. If a workflow's main process dies, children that already completed, failed, stopped or partially finished keep that result instead of all being marked failed.
  • Every workflow lane shows its model. The async widget, FleetView and status now show each background workflow child's model and thinking level.
  • Quiet start on read-only installs. No more "permission denied" upgrade-notice error on every Pi start.

Full changelog

Highlights

  • Leaner requests until you delegate. A session that hasn't turned on subagent no longer sends the bg_wait and subagent_supervisor tool definitions, about 1,500 characters on every request.
  • Apps that embed Pi, such as pi-web, now launch children with their own Pi install instead of the copy that came with pi-subagents.
  • A workflow whose main process died keeps the results of children that had already finished, instead of marking them all failed.
  • Workflow child lanes in the widget, FleetView and status now show each child's model.
  • Read-only installs start without a "permission denied" error.

Changed

  • A session that hasn't delegated anything no longer sends subagent_supervisor with every request, saving about 420 characters each time. It turns on with subagent, or when a child's question reaches a session that doesn't have it yet, for example from a scheduled run. Thanks to @armchairfuturist-code for reporting #2936.
  • A session that hasn't delegated anything no longer sends bg_wait with every request, saving about 1,100 characters each time. It turns on with subagent (after subagents_enable), or once another extension registers background work for it to wait on. Sessions that already had bg_wait or subagent_supervisor keep them, so upgrading doesn't change their tools or break their prompt cache. Thanks to @armchairfuturist-code for reporting #2935.

Fixed

  • When pi-subagents ran inside an app that embeds Pi, children could start with the Pi copy installed next to pi-subagents instead of the app's own. Children now use the app's Pi first. PI_SUBAGENTS_PI_CODING_AGENT_PACKAGE_ROOT still takes priority, including when Pi is started through node_modules/.bin/pi. If the chosen Pi install is broken, launching a child fails and says why, while doctor and status keep working. Thanks to @CompN3rd for #2947.
  • When a workflow's main process died, every child still listed as running was marked failed, even one that had already finished on its own. A background child that already recorded its result (complete, failed, stopped, partial or rejected) now keeps it. Children that hadn't finished, or whose status can't be read, are still marked failed. Thanks to @isjiajia01 for #2940 (#2938).
  • A background workflow child showed no model on its lane in the async widget, FleetView or status. Lanes now show the model and thinking level the child reports. Thanks to @bottfish for #2941.
  • Attention notices for a child's bash call could name &1; as the file being written, because 2>&1 was read as a file. The notice now names the first real file the command writes, and names none when the command only redirects to another output or /dev/null. (#2943)
  • In a read-only install, every Pi start logged "Failed to show the pi-subagents upgrade notice: ... permission denied", because the upgrade notice couldn't save which version it last showed. It now skips the notice quietly in that case. Thanks to @jakubsuchy for reporting #2949.
v0.79.2

This release makes delegation more dependable in the situations where it used to quietly go wrong. A child that finishes while you're busy now gets its result to you even if Pi restarts in between. Steering a child is less fragile: a steer that times out no longer locks the run, and a steer that arrives too late tells you what state the run is in and what to do instead. Children also stop picking up instructions you wrote only for your main session, and a few long-running and provider-specific failures are gone.

Highlights

  • Completion notices survive a restart. If a background child finishes while you're busy and Pi restarts before you get to it, the next Pi that opens the session shows the notice and picks up from there.
  • Steering is less fragile. A steer that times out waiting for a busy child no longer blocks every later steer on that run, and a steer on a finished run names its state and the next step.
  • Your APPEND_SYSTEM.md stays with you. Children no longer receive it, on this machine or on a saved Herdr machine.
  • Long sessions keep their capacity. Workflows relaunched after a reload give their background-run slots back, and workflows started from providers with very long tool-call ids (such as LiteLLM with Gemini) no longer fail at launch.
  • Delegation can't be lost to an old compaction. A session compacted by an older Pi gets subagent back instead of losing it for good.

Need to know

If you relied on children reading your APPEND_SYSTEM.md, move those instructions into the agent's prompt or an agentOverrides systemPrompt.

Changelog

Highlights

  • A background child that finishes while you are busy no longer loses its completion notice if Pi restarts before you get to it. The next Pi that opens the session shows it.
  • Steering is less fragile. A steer that times out waiting for a busy child no longer blocks every later steer on that run, and a steer that arrives too late says what state the run is in and what to do next.
  • Children no longer pick up your APPEND_SYSTEM.md, on this machine or on a saved Herdr machine. It was meant for your main session.
  • Workflows relaunched after a reload give back their background-run capacity, and workflows started from providers with very long tool-call ids (LiteLLM with Gemini) no longer fail at launch.
  • A session compacted by an older Pi can no longer lose subagent for good.

Fixed

  • A background subagent that finished while the parent was busy could lose its completion notice if Pi restarted before the parent got to it: Pi drops a queued notice when the session ends, and the result file was already gone. Such a notice is now saved in the session when it ends, and the next Pi process that opens the session, for example after a restart or with pi --continue, resends it and wakes the parent. A notice already in the session is not sent twice, notices on another branch of the session tree don't count, and /reload is unchanged. Thanks to @advaitpaliwal for #2968.
  • A default steer on a running child that didn't pause within the recovery wait left the run locked, so every later steer failed with "Another steering recovery is already committed". A timed-out attempt now unlocks the run, still starts no replacement, and its error gives the real wait, the run's last state, that the message wasn't applied, and that action: "resume" continues the run. Thanks to @tglunde for reporting #2956.
  • steer on a run that had already finished said only that it "is not running or queued". It now names the run's state and the next step: a completed retained child points at mode: "follow_up" or resume, and other runs point at resume only when resume would accept them, otherwise giving resume's own reason (for example, a stopped run has to be started again). Thanks to @armchairfuturist-code for #2955 (#2954).
  • Children launched with systemPromptMode: replace (every builtin except delegate) received the operator's APPEND_SYSTEM.md, because Pi fills an empty append-prompt slot from that file. They now start without it, like delegate children and like the operator's global AGENTS.md. Children on a saved Herdr machine no longer get the remote operator's file either. To give a child those instructions, put them in the agent's prompt or an agentOverrides systemPrompt. Thanks to @scnbln for #2961 (#2960, #2969).
  • An async workflow relaunched after a reload kept its slot in maxActiveAsyncRunsPerSession forever when it reused finished children, re-attached to running ones, or had a child stopped before it started, so a long-lived session could run out of capacity. The slot is now released once the reused runs have ended. Slots already held by earlier versions are not reclaimed. Thanks to @peterdsharpe for reporting #2958 and the fix it describes.
  • A workflow launched from a tool call whose id was over 4,096 bytes failed with "parentToolCallId must be a non-empty identifier of at most 4096 UTF-8 bytes". LiteLLM, for example, puts Gemini thought signatures in the tool-call id. The workflow now runs; the workflow summary records a short digest of the id, and the run's status.json still keeps the full id. Thanks to @mxr576 for reporting #2962.
  • A session compacted by an older Pi, which kept no record of the session's tools, could lose subagent for good: on resume the surviving messages read as a deliberate choice to turn it off, and in auto mode nothing could turn it back on, not even /reload. Such a session now gets the tools a new session would, the same way on resume, /reload and tree navigation, and sessions already left without them recover. A choice to turn tools off made after the compaction is still kept. Thanks to @jbachorik for #2963.
  • The unit tests no longer fail when run from a shell that Pi or a pi-subagents child started, or on Node 24 under macOS. Thanks to @jbachorik for reporting #2964, #2965 and #2966.
v0.80.0

pi-subagents 0.80.0 moves to Pi 1.2.0 and uses it to make background work quieter. When a subagent finishes while you're idle, its own notice now starts the parent's turn, so your transcript no longer gets an extra "Inspect subagent updates above" line every time. Workflows got more flexible: parallel, tasks and chain children can each run in their own directory or on their own model without a workflow script. You can also turn off all pi-subagents slash commands while keeping the subagent tool, and the install is about half the size.

Highlights

  • Quieter wakes. An idle parent is woken by the subagent's notice itself, with no separate wake message in the transcript.
  • Per-child cwd and model in parallel, tasks and chain, so one call can fan out across repositories or worktrees, or mix models.
  • enableSlashCommands: false keeps the subagent tool and drops every pi-subagents slash command.
  • Elapsed time on the folded widget line, for example subagents (1/1 running 13s).
  • Fewer failures: Pi no longer exits at startup on Windows when security software blocks git, and DeepSeek and other providers that reuse the Codex Responses wire no longer fail on a child's second tool call.

Need to know

pi-subagents now needs Pi 1.2.0 or newer. If you're on Pi 0.86.1 or 1.0.0, update Pi first, or stay on pi-subagents 0.79.2. The supported standalone target is now the official Pi 1.2.0 Linux x64 release.

Changelog

Highlights

  • pi-subagents now needs Pi 1.2.0 or newer. In return, waking an idle parent no longer adds an "Inspect subagent updates above" line to your transcript: the subagent's own notice starts the turn.
  • parallel, tasks and chain children can each set their own cwd and model, so one call can fan out across repositories or worktrees, or mix models, without writing a workflow script.
  • enableSlashCommands: false keeps the subagent tool and drops every pi-subagents slash command, for setups that delegate only through the model.
  • The folded widget line shows how long the current batch of work has been running, for example subagents (1/1 running 13s).
  • Windows: Pi no longer exits at startup when security software blocks git. DeepSeek and other providers that reuse the Codex Responses wire no longer fail on a child's second tool call.

Added

  • Children of the built-in parallel workflow (args.tasks), and tasks items and chain steps and group members when workflow scripts are disabled, accept optional cwd and model. One call can now fan out across several repositories or worktrees, or mix models, without writing a script. Before, these fields were rejected with "accepts only agent and task". Thanks to @andresutre for #2985.
  • The folded async widget line now shows how long the current stretch of running work has lasted, for example subagents (1/1 running 13s). It counts from the oldest running job, so it stays right after a session resume, and it disappears once nothing is running. Thanks to @summer-tt for #2979.
  • enableSlashCommands: false in the extension config keeps the subagent tool and drops every pi-subagents slash command and the foreground-detach shortcut, for setups that delegate only through the model or want fewer global commands. Prompt shortcuts such as /parallel-review are Pi prompt templates, and Pi's package filter ("prompts": []) already removes them. See configuration. Thanks to @khavronin-artem for requesting it in #2977.

Changed

  • pi-subagents now needs Pi 1.2.0 or newer; Pi 0.86.1 and 1.0.0 are no longer supported. The supported standalone target is now the official Pi 1.2.0 Linux x64 release. Pi 1.2.0 lets an extension message start a turn with the full system prompt, so an idle parent is now woken by the subagent notice itself, and the transcript no longer gets a separate "Inspect subagent updates above" line on every wake. Each notice says what the parent should do next. Thanks to @summer-tt for #2976.
  • The npm package no longer ships source maps. They pointed at TypeScript sources the package does not include, so nothing could use them, and they were almost half its files: the unpacked install drops from 12.1 MB to 6.8 MB and the download from 2.5 MB to 1.6 MB. Thanks to @tututuhehehe for reporting it in #2980.

Fixed

  • Pi could exit at session start on Windows when security software stopped it from launching git (spawn EPERM). The watchdog now starts without its diff baseline in that case, as it already did when git was missing. Thanks to @advaitpaliwal for reporting #2978.
  • Children on a custom provider that speaks the Codex Responses wire under its own api id, such as pi-cliproxyapi's cliproxyapi-codex-responses, had their tool-call ids rewritten, and DeepSeek rejected the second tool turn with a misleading "reasoning_text ... must be passed back" error. Any *-codex-responses api now keeps its ids the way openai-codex-responses does. Thanks to @xspeed1989 for reporting #2981.
  • Subagent cards said "Configure the expand key for live detail" when Pi's keybindings were not loaded, for example in an HTML session export, although the key was bound (ctrl+o by default). They now say "Press the expand key for live detail", and in RPC mode the status line of slash-command launches such as /run no longer shows an empty key (3 tools | live detail). Thanks to @JohannesBertens for #2983 (#2982).
  • On Pi 1.2, a child's bash command that exited non-zero showed as completed in subagent_command status. It now shows as failed.

Changed files

  • package.json
  • package-lock.json
  • npm-shrinkwrap.json
  • nix/package.nix

Validation

  • node --test src/pi/pi-subagents-dependency-contract.test.ts
  • bun scripts/verify-pi-subagents-bun-workflow.mjs
  • npm test
  • node scripts/smoke-packed-artifact.mjs
  • npm run lint
  • scripts/update-npm-deps-hash.sh
  • nix build .#patchmill --print-build-logs
  • (cd result/share/patchmill && node --test --test-name-pattern='pi loads the resolved pi-subagents extension package without model execution' src/pi/pi-subagents-dependency-contract.test.ts)
  • nix flake check --accept-flake-config --print-build-logs

This pull request is review-gated and does not auto-merge or publish.

@patchmill-release-please-bot
patchmill-release-please-bot Bot force-pushed the automation/pi-subagents-upgrade branch from c440650 to 51a4243 Compare October 20, 2026 07:33
@patchmill-release-please-bot patchmill-release-please-bot Bot changed the title chore(deps): update pi-subagents to 0.79.1 chore(deps): update pi-subagents to 0.79.2 Oct 20, 2026
@patchmill-release-please-bot
patchmill-release-please-bot Bot force-pushed the automation/pi-subagents-upgrade branch from 51a4243 to 06c220d Compare October 21, 2026 07:32
@patchmill-release-please-bot patchmill-release-please-bot Bot changed the title chore(deps): update pi-subagents to 0.79.2 chore(deps): update pi-subagents to 0.80.0 Oct 21, 2026
@rochecompaan
rochecompaan force-pushed the automation/pi-subagents-upgrade branch from 06c220d to 852d921 Compare October 31, 2026 20:29
@rochecompaan
rochecompaan merged commit 7c2080f into main Oct 31, 2026
3 checks passed
@rochecompaan
rochecompaan deleted the automation/pi-subagents-upgrade branch October 31, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant