v2.7.0 — Pi end-to-end + driver contract completion
2.7.0 — 2026-08-18
Pi end-to-end (milestone v2.7.0). DevFlow finishes the AgentDriver migration and drives Pi
through the full pipeline. Phase 37.1 (research) returned a VIABLE verdict for the
@bacnh85/pi-subagent extension; Phase 38 removed the legacy AgentAdapter surface and wired
InteractivityMode; Phase 39 landed the Pi pipeline (provider-aware health, Legacy launch,
subagent dispatch).
What's new
- The legacy
AgentAdaptersurface is gone (999.106 / Phase 38).AgentAdapter,DriverShim,
adapter_for, and the four legacy*Agentstructs are removed; every call site resolves through
driver_for(kind) -> Box<dyn AgentDriver>. Claude's launch argv stays byte-identical (zero
regression). InteractivityModeis consumed (Phase 38). A driver-driven Define/Plan gate replaces the
hardcodedAgentKind::CodexDefine check.- Two Codex-parser defects fixed (999.107 / Phase 38). Terminal
turn.failednow takes
precedence over an earlier success marker; non-UTF-8 / hostile writable-root paths are refused
rather than lossily converted to U+FFFD. - Pi health probes the active provider (Phase 39).
PiDriver::healthreadssettings.json's
defaultProvider(falling back to Pi's--providerdefault) instead of a hardcodedgoogleor
"any readymodels.jsonprovider" — fixing both a false-reject of standard installs and a
false-green of a provider the launch never uses. - Pi is pinned to
MonitorLaunch::Legacy(Phase 39). A regression test asserts the
claude_stream_launch_enabled(Pi)precondition, so Pi can never land on thePipeOwningpath
whose stdin wire protocol deadlocks it. - Pi subagent dispatch is detected, not faked (Phase 39). Capability detection matches the
vetted@bacnh85/pi-subagentpackage specifically (not*subagent*), and a captured session
transcript proves the live dispatch (parenttoolCall: subagent→ nested subagentbash→
DEVFLOW_RESULT) completes underLegacywith no drain gate.
Deferred (recorded, not shipped here)
999.94— unattendeddecisioncheckpoint takes the first option blindly.- Isolated-context (process-spawning) Pi dispatch — needs a
--no-approvechild-argv patch.