
同一个维护者在 23 分钟里把 Vertex 多区域主机、Claude 延迟搜索、上下文超限码三张单修进 dev,v8.0.38 一处都没带上;今晚能绕的路、以及同批另三张还没动的单,都在这一篇里。
location 填了 us 或 eu。us 用 https://aiplatform.us.rep.googleapis.com,eu 用 https://aiplatform.eu.rep.googleapis.com。5location 设成 us 或 eu,主机名要显式用带 .rep. 的那一个。vertexBaseURL 只特判了空值和 global,其余位置一律套 https://{location}-aiplatform.googleapis.com。us 因此被拼成 us-aiplatform.googleapis.com。
internal/runtime/executor/gemini_vertex_executor.go 第 1433–1441 行:只有空值与 global 两个分支,第 1440 行的模板把 us、eu 和 us-central1 一视同仁。aiplatform.us.rep.googleapis.com 这类主机被算进「Google 自家主机」。
internal/runtime/executor/helps/vertex_openapi.go 第 379–404 行:第 395 行把 REP 主机并进判定,第 398–404 行是新增的 isGoogleVertexREPHost,认 aiplatform. 前缀加 .rep.googleapis.com 后缀。location 从 us / eu 改成具体区域(us-central1 之类)或 global,这两类在 v8.0.38 里是对的。base-url 写成 REP 主机同样走不通:v8.0.38 的 IsGoogleVertexHost 认不出这个域,同一个主机在别处会被当成第三方主机。web_search 和客户端工具。stop_reason: tool_use 停下,这时搜索还没跑。客户端把工具结果交回去,Anthropic 才执行搜索,结果随下一次响应回来。claudeResponsesWebSearchStatus 只在 pause_turn 时把没收结果的搜索留在 in_progress。tool_use 不在条件里,这一项就被写成 completed。
internal/translator/claude/openai/responses/claude_openai-responses_response.go 第 207–214 行:判定只有 claudeStopReasonPauseTurn 一个条件,tool_use 走不到第 211 行。completed 又没有 results,客户端回传后,翻译层把它重放成一对 server_tool_use 加空的 web_search_tool_result。srvtoolu_ 编号出现两遍,一遍带着那个凭空的空结果,一遍带着续接真正拿到的结果。tool_use 与 pause_turn 一起留在 in_progress;responsesItemIsTurnBoundary 也不再拿工具输出当回合边界,只认 user turn。web_search 和客户端工具放进同一轮并行组,或者先把搜索工具关掉。streaming 段,默认都是关的。11keepalive-seconds 大于 0,再加 send-keepalive-before-ft: true,SSE 头在第一个 token 之前就发出去了。invalid_request_error,消息以 prompt is too long 开头。code。本该按状态码写进去的 invalid_request_error 也就没机会出现。context_length_exceeded。它的 ApiError 里有一个专门的 ContextWindowExceeded,匹配就靠 response.error.code 这个字段。13
sdk/api/handlers/openai_responses_stream_error.go 第 156–171 行:第 157 行先看有没有 code,没有才在第 161 行按类型与消息前缀补 context_length_exceeded,第 168 行起的两个 return 都改走它。send-keepalive-before-ft 只是把「已提交头之后的 response.failed」换成普通 400。invalid_request_error,Codex 那边一样认不出是上下文超限。#6870 说的是 auth 目录读不到时,全量扫描会把每一个文件凭据都派发注销。15github.com
github.com
github.com
github.com
docs.cloud.google.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.