又有 3 个 PR 合入 pi:vLLM 优先级开关与代理流挂起修复
2026 年 9 月 2 日,三个 PR 合入 pi 编码代理主线,规模小于前一天那批九个 PR 的合并潮;和那批一样,它们都还躺在主线上,未进入任何已发布版本。
功能改动是 AppleDannyClegg 的 #9004:为 OpenAI 兼容模型引入可选的 vllmPriority 兼容开关,向请求注入 vLLM 的顶层 priority 字段(要求 vLLM 0.28 及以上;数值越小越早处理,默认 0)。开关默认关闭,自动生成的模型目录也不携带它——自定义 provider 需在 models.json 里配置 compat.vllmPriority。适用场景是一台 vLLM 机器在 --scheduling-policy priority 下同时服务交互会话与后台任务:给后台模型设一个更大的 priority 数值,其漫长的预填充就会排到交互会话之后,而不是让正在输出的回答卡在半路。
hobostay 的 #8997 修复一个 agent 挂起(对应 issue #8996):当代理服务器没发出 done 或 error 终止事件就断开 SSE 连接时,streamProxy 会让消费方永远等下去。两个缺陷叠加——读循环结束后残留行缓冲从未被处理,末尾不带换行符的 data: 行会被静默丢弃(哪怕它正是 done 事件);而没有终止事件时 stream.end() 不携带结果,EventStream.result() 永远不会 resolve,agent 循环就停在 response.result() 上。修复在 EOF 时冲刷解码器与残留缓冲,并在流缺失终止事件时合成一条 error 事件——“Connection closed by proxy server before the response completed”。两种失效路径都有回归测试覆盖。
第三个是文档:rwachtler 的 #9009 更新扩展 API 文档,明确 pi.setModel() 与 pi.setThinkingLevel() 自 #8356 起改为会话级作用域、不再把默认配置写进 settings.json——这正是 issue #8976 指出的文档缺口。
这三个改动目前都只在主线,要等 v0.84.4 之后的下一个版本发布才会带到用户手里。
source: https://github.com/earendil-works/pi/pulls?q=is%3Apr+merged%3A2026-09-02+is%3Aclosed