{"repo":"NousResearch/hermes-agent","public_id":"25333","display_label":"Gemini parallel tool call streaming parse bugs","summary":"Multiple bug reports and fix attempts addressing how Gemini's OpenAI-compatible and native endpoints emit parallel tool calls as concatenated or merged JSON during streaming, causing arguments to be dropped or misassigned. Includes related work to route Gemini through the native AI Studio API.","subsystem":"agent","counts":{"members":13,"open_issues":1,"open_issues_distinct":1,"open_prs":1,"closed_issues":4,"merged_prs":0,"attempt_prs":8},"landed_fix":null,"resolution":{"state":"unresolved","by":null},"freshness":{"state":"never_verified","last_verified_at":null,"is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.1558974358974359},"fix_edges":[],"members":[{"kind":"issue","number":25333,"title":"run_agent: 'Unrepairable tool_call arguments' when Gemini-3-Flash-Preview emits parallel tool calls as }{ — JSON parser drops them","url":null,"state":"closed"},{"kind":"issue","number":33402,"title":"[Bug]: stream parser fails to lex parallel tool-calls emitted as concatenated JSON (Gemini 3.5)","url":null,"state":"closed"},{"kind":"issue","number":57939,"title":"Gemini streaming: distinct parallel calls to the same tool are merged into one tool call (misreported as \"Response truncated due to output length limit\")","url":null,"state":"closed"},{"kind":"issue","number":62937,"title":"[Bug]: Gemini (OpenAI-compat) parallel tool calls are concatenated into one tool_calls entry → arguments dropped as {}","url":null,"state":"open"},{"kind":"issue","number":62940,"title":"Gemini (OpenAI-compat) parallel tool calls are concatenated into one tool_calls entry → arguments dropped as {}","url":null,"state":"closed"},{"kind":"pr","number":25346,"title":"fix(run_agent): split concatenated streamed tool-call args","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"0430e71ec971d673a6d2a32fd54c1847683a16d2","number":0},{"kind":"pr","value":"#25333","number":25333},{"kind":"pr","value":"#25346","number":25346}],"category":"wontfix_bydesign","implication":"wontfix"},"merged":false},{"kind":"pr","number":25347,"title":"fix(agent): repair concatenated JSON tool_call arguments from Gemini parallel calls","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#25346","number":25346}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":26053,"title":"fix(run_agent): recover first object from concatenated tool_call args (#25333)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#26053","number":26053},{"kind":"pr","value":"#25347","number":25347},{"kind":"pr","value":"#25346","number":25346},{"kind":"pr","value":"#25333","number":25333},{"kind":"pr","value":"#5","number":5}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":36039,"title":"fix(run_agent): split concatenated streamed tool-call args (#25333)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#45835","number":45835}],"category":"wontfix_bydesign","implication":"wontfix"},"merged":false},{"kind":"pr","number":57941,"title":"fix(gemini): do not merge distinct parallel calls to the same tool in streaming","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#24676","number":24676},{"kind":"pr","value":"#54355","number":54355},{"kind":"pr","value":"#57165","number":57165},{"kind":"pr","value":"#57939","number":57939}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":63015,"title":"fix(agent): split concatenated tool_call args in streaming assembler","url":null,"state":"open","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":67507,"title":"fix(agent): correctly merge parallel tool calls from Gemini endpoints","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"91665b5e79","number":0}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":117927,"title":"fix(gemini): thought signature sentinel replay and parallel tool calls","url":null,"state":"closed","close_reason":{"category":"silent_close","implication":"active"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}