{"repo":"NousResearch/hermes-agent","public_id":"115061","display_label":"Truncated or malformed tool-call JSON repair","summary":"These items address a bug where tool-call argument JSON arriving truncated or malformed was dropped rather than repaired. The work involves correctly tracking brackets outside strings and closing them in stack order to salvage incomplete tool calls.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":116674,"merged_at":"2026-09-20T06:40:01+00:00"},"resolution":{"state":"resolved","by":"pr-116674"},"freshness":{"state":"verified","last_verified_at":"2026-09-20T06:40:01+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":115061,"pr_number":116674,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-20T06:40:01+00:00"}],"members":[{"kind":"issue","number":115061,"title":"Tool-call JSON that arrives truncated/malformed is not repaired; plugins have no native button callback","url":null,"state":"closed"},{"kind":"pr","number":115096,"title":"fix(agent): count tool-call argument brackets outside strings and close in stack order","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"081332f0ee22","number":0},{"kind":"pr","value":"#116674","number":116674},{"kind":"pr","value":"#115061","number":115061},{"kind":"pr","value":"#115096","number":115096}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":116674,"title":"fix(agent): misnested or truncated tool-call argument JSON is repaired instead of dropping the tool call (#115061, salvage #115096)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/message_sanitization.py","tests/agent/test_repair_tool_call_arguments.py","tests/agent/test_streaming_tool_call_repair.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}