Extension streaming, Copilot GPT-6 routing, and a compaction race fix merge into pi main
Three user-facing pull requests merged into the pi coding agent on September 7, 2026, and as with the batches before them, all three sit on main with no published release including them yet. The day’s two other merges are repository infrastructure: implementation-backed documentation evals and repository-link updates across prompts, docs, and code.
The feature is rwachtler’s #9272, which opens the streaming path of the extension-facing model registry: ctx.modelRegistry now exposes stream(...) and streamSimple(...) alongside the existing complete(...). Before this, an extension that needed token-level deltas had to call pi-ai’s compat stream() directly, bypassing the provider composer that honors pi.registerProvider() — so a model whose api id exists only at the extension layer failed with “No API provider registered for api:
petrroll’s #9253 fixes how GitHub Copilot GPT models are routed (issue #9209): github-copilot/gpt-6-astra was being sent to /chat/completions, an endpoint Copilot rejects with a 400, because route selection treated gpt-5* as Responses models but not gpt-6*. GPT-6 models now take the same Responses path GPT-5 already did. The PR also argues the change is future-proof: with no GPT-4 models left in GitHub’s catalog, routing by generation cannot regress them.
acmerfight’s #9179 closes a session-tree race (issue #9178). compact() prepares a summary from the current branch and then waits on extension hooks or the model; a concurrent navigateTree() could move the leaf during that wait, so appendCompaction() attached the old branch’s summary — plus a firstKeptEntryId pointing into it — to the new branch, and the next provider context could end up holding nothing but the summary. Tree navigation is now rejected while compaction or another tree navigation is active, compaction results and retained context stay on the branch they were prepared from, and both races carry regression tests. The rejection mirrors the manual-compaction guard from #7383 and complements #9155, which covers the inverse ordering of a prompt starting during tree navigation.
None of the three has shipped yet — they reach npm with the next release after v0.85.1, and the #9272, #9253, and #9179 pages on GitHub carry the full diffs and test runs in the meantime.
source: https://github.com/earendil-works/pi/pulls?q=is%3Apr+merged%3A2026-09-07+is%3Aclosed