{"repo":"NousResearch/hermes-agent","public_id":"128817","display_label":"Tool schema rewriting causes spurious re-prefill between turns","summary":"A bug where tool schemas are rewritten or altered between conversation turns triggers unnecessary re-prefilling. The fixes aim to keep already-sent tool schemas byte-identical during prefix preservation and refresh cycles.","subsystem":"agent","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":139851,"merged_at":"2026-10-16T21:19:56+00:00"},"resolution":{"state":"resolved","by":"pr-139851"},"freshness":{"state":"verified","last_verified_at":"2026-10-16T21:19:56+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":128817,"pr_number":139851,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-10-16T21:19:56+00:00"}],"members":[{"kind":"issue","number":128817,"title":"[Bug]: Follow-up turns re-prefill because tool schemas change between turns","url":null,"state":"closed"},{"kind":"pr","number":128819,"title":"fix(tools): stop between-turn refresh from rewriting sent tool schemas","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"5675fc96bf4f8c8674a7eeb2c5736199bdca9a24","number":0},{"kind":"commit","value":"8d30c4eaabd85edb77a02fef6c5388d9344ef80c","number":0},{"kind":"commit","value":"57a22675ef9f7761111feba9d24e5c366db3134b","number":0},{"kind":"commit","value":"c1899de289a04d12100db370d81485cdf75e47ca","number":0},{"kind":"commit","value":"08f657561e0b18823d801fe80e786ff625f108b3","number":0},{"kind":"commit","value":"12b3e7e9a6b5d8b98d3d7da2a5ab176f0cedb4df","number":0},{"kind":"pr","value":"#128817","number":128817},{"kind":"pr","value":"#129033","number":129033},{"kind":"pr","value":"#172554","number":172554}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":132294,"title":"fix(tools): keep already-sent tool schemas byte-identical on preserve_prefix refresh (fixes #128817)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"1b11d2e70d0344b00c82219bef335f37b00573ff","number":0},{"kind":"commit","value":"7533bd2756b9526b52f527f737420a19e57331d7","number":0},{"kind":"commit","value":"f5a9361dcc66b0b972fd488b83129561509b3486","number":0},{"kind":"commit","value":"e94fc4e26a2a8d3967eef3bc5f5027ce418f222a","number":0},{"kind":"commit","value":"5675fc96bf4f8c8674a7eeb2c5736199bdca9a24","number":0},{"kind":"commit","value":"08f657561e0b18823d801fe80e786ff625f108b3","number":0},{"kind":"commit","value":"6f0ce583e0649d397752a2485108dd9628f9892c","number":0},{"kind":"commit","value":"6963db592ce63959d7d8bd26d458a65b03cf3940","number":0},{"kind":"commit","value":"164d5c2009d8b1d6d70b326739794da3f7120132","number":0},{"kind":"commit","value":"2a7039b0e8b53f69b1febeed60343e158db1c274","number":0},{"kind":"commit","value":"c1899de289a04d12100db370d81485cdf75e47ca","number":0},{"kind":"pr","value":"#128817","number":128817},{"kind":"pr","value":"#128819","number":128819},{"kind":"pr","value":"#129033","number":129033},{"kind":"pr","value":"#172554","number":172554}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":139851,"title":"fix(tools): between-turn MCP refresh keeps sent tool schemas byte-identical (#128817, salvage #128819)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_refresh_agent_mcp_tools.py","tools/mcp_tool_agent.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}