fix(proxy): stand down when model baseUrl routes through the bili wire proxy (closes #296) - #297
Conversation
📦 Built Extension ArtifactBranch: Option A — Install from npm PR tag (recommended)pi install npm:billion-context-pi@pr-297Each push to this PR publishes a new version under the Option B — Download artifact
tar xzf billion-context-pi-pr297.tgz
pi install ./packageThis comment is automatically updated on each push. |
PR review 完成 —— 本地独立验证通过,LGTM。 验证结果(checkout b1ce78d 实测,非仅读 diff):
一个次要观察(非阻塞):OMP 宿主若同时把 baseUrl 指向 bili 代理,session_start 里 OMP 检测先置 其余均无问题:warn-once 为进程级(与 OMP 模式一致)、直连 endpoint 保持激活、context 事件兜底防宿主 session_start 缺失、工具文案按拒绝原因区分、README(en/zh)+ CHANGELOG 齐备。 结论:实现与 #296 triage 方案一致,单测 + 集成覆盖到位,本地验证全部通过。等待 @ranxianglei 合并(按仓库规范,merge 由人工执行)。 |
…index.ts conflicts Kept both sides: master's wireDelegateReadTracking (delegate read-tracking) alongside #297's standDownIfProxied param on wireSessionLifecycle/wireContextTransform. CHANGELOG keeps all three Unreleased entries (#296/#117/#294). Verified combined result: tsc clean, 570 pass / 0 fail / 3 skip, build 721.70 KB.
1d07380 to
d1a0ced
Compare
Review 结论:✅ 通过
已将分支 rebase 到 v0.1.58 master(原分支落后于 #310/#311/#315,mergeable 为 UNKNOWN):解了 一个不阻塞的已知限制:mid-session 切换模型后 |
Rebase 后已在本地重新验证新 head d1a0ced,全部通过:
mid-session 切模型后 CI 绿后即可合并。 |
问题(#296)
bcp 此前只认 launcher 注入的
BILLION_CONTEXT_PROXY环境变量。用户单独跑代理(bili start)并手动把 pi 的models.jsonbaseUrl 指到http://127.0.0.1:PORT/bili/https://upstream…(或只设HTTPS_PROXY)时 env 未设 → bcp 全功能激活 + 代理照常压缩 → 每轮请求双重压缩(token 浪费、嵌套摘要、ref 体系混乱)。修复
src/proxy-detect.ts:isBiliProxyBaseUrl(baseUrl)—— 镜像 billion-contextproxyBaseFromUrl的判定(http(s) scheme、首段路径为bili、余下部分匹配/^\/https?:\/\//,避免普通/foo/bili/路径误判)PROXY_STAND_DOWN_MESSAGE—— 让位警告文案(说明原因 + 透明模式指引)ctx.model.baseUrl(src/index.ts),命中即按 env 相同方式让位:进程内一次性警告(UI notify / headless stderr)、不取消宿主原生压缩、不注入 ACP prompt、context 原样透传/bili/前缀,只能靠 env 识别runtime.refusalMessage ?? OMP_UNSUPPORTED_MESSAGE(四个 ACP 工具返回让位原因而非 OMP 文案;OMP 行为不变)HTTPS_PROXY用户导出BILLION_CONTEXT_PROXY=1指引;CHANGELOG 条目测试
tests/proxy-standdown.test.ts:URL 矩阵 14 例(命中 / 非命中 / 防误判)+ 集成 6 例(stand-down 全套行为、warn-once、headless stderr、直连 endpoint 保持激活、context 兜底)Triage 结论
process.env.BILLION_CONTEXT_PROXY(factory 首行),全 src 无任何baseUrl检查 —— bug 属实