
interactions 入口把 input 写成裸内容块数组时,文字块能过、图片被静默丢掉,Gemini、Antigravity、Codex 三个上游目标都是这样;这篇给命中条件、一分钟自查和今天就能改的写法。
POST /v1beta/interactions 把 input 写成裸内容块数组时,只有文字块进得去。图片、音频、视频、文件在 Antigravity、Gemini、Codex 三个上游目标上被静默丢掉,请求照常返回 200,模型会照着剩下的文字正常作答 1。/v1beta/interactions、input 是数组且数组项本身是内容块(不是 step)、模型落在上面那三个目标上。把 input 包成 step 就不受影响,这也是今天就能改的写法。input 写法 | Antigravity 上的结果 |
|---|---|
[{"type":"image",…},{"type":"text",…}] | 回答没有提供图片 |
[{"type":"user_input","content":[图,文]}] | 正常描述图片 |
{"type":"user_input","content":[图,文]} | 正常描述图片 |
:generateContent 也能描述这张图,所以不是凭证、配额或附件本身的问题 1。{"type":"text","text":"hi"} 是能过的——仓库自己的测试就用这个形态 2。default 分支里的 text 被收下,图片块没有任何一个字段被认,于是什么都不追加。input 是数组时,每一项都被当成一个 step 送进 appendInteractionsStepToAntigravity(第 335–353 行)。裸块没有 step 外壳,只能落进 default;而 default 只读 parts、content、text 三个字段,裸图片块一个都没有。
appendInteractionsStepToAntigravity:case "user_input", "" 在第 491 行,default 在第 502 行,两者合起来只认 parts / content / text,裸图片块三个字段全无 3。 
case "user_input", "" 在 1032 行、default 在 1043 行,与 Antigravity 那份逐行对应 4。 case "user_input", "message", "" 与 default 同样只处理 content 和 text 5。default 只接受字符串形态的 step,连裸文本块都进不去 6。也就是说,同样一份 body,换目标就是另一种丢法。UnsupportedPartError 返回 400 并标成 request-scoped;UserTurnDrops 的注释写明——一轮用户内容只剩发不出去的附件时,宁可拒绝,也不空着转发 7。
UnsupportedPartError 定成 400 且 request-scoped,UserTurnDrops 的注释写明「只剩发不出去的内容就拒绝、不空转发」 7。 Drop 记录,EndTurn 时看不出这一轮少过东西。既不 400、也不写日志,只剩一张图没了。interactionsClaudeDroppedMedia 命中 image / audio / video / document / file 时,把裸媒体对象当成一个独立 step 直接追加,注释原文是「A bare media content object stands for a step of its own.」 8
else if interactionsClaudeDroppedMedia(step) != "" 把裸媒体对象直接 appendPart,注释就写在这一行下面 8。 request.contents 只剩文字块,找不到 inlineData。input 包成 step(报障人已验证):{"model":"gemini-3-flash","input":[{"type":"user_input","content":[
{"type":"image","mime_type":"image/jpeg","data":"<base64>"},
{"type":"text","text":"describe this image"}
]}]}:generateContent,同一模型同一张图是正常的。internal/translator,除非确认自己有写权限,否则把目标、理由与实现代码贴进 issue 10。appendInteractionsContentBlockItem 两处都不存在。也就是说,这条路要等维护者自己落笔。request.stream 有一条 PR #7002 在等合并,流式缺 [DONE] 那条是 #7003 1112。前两处的机理在前几期写过,这里只记状态,不重复。appendInteractionsStepToAntigravity 都在,v8.0.0 的 switch 分支与现在一致 14。所以别指望「升级就好了」。input 包成 step,或者在管线里加一张金丝雀图;发版不用等,也不会很快来。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
codex-reset.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.