{"repo":"NousResearch/hermes-agent","public_id":"92207","display_label":"Fix quadratic cost when streaming large tool-call arguments","summary":"A bug was identified where streamed tool-call arguments were being rebuilt on every incoming chunk, causing O(n²) performance for large tool calls. These items address the problem by collecting chunks in a list and assembling them in linear time.","subsystem":"agent","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":101906,"merged_at":"2026-09-03T06:13:01+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-03T06:13:01+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":92207,"pr_number":101906,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-03T06:13:01+00:00"}],"members":[{"kind":"issue","number":92207,"title":"[Bug]: streamed tool-call arguments are rebuilt on every chunk, so a big tool call costs the square of its size","url":null,"state":"closed"},{"kind":"pr","number":92217,"title":"fix(agent): keep large streamed tool calls responsive","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#101906","number":101906}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":92221,"title":"perf(agent): collect streamed tool-call arguments in a list","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#92217","number":92217}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":92242,"title":"perf(agent): assemble streamed tool-call arguments in linear time","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#92217","number":92217}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":101906,"title":"perf(agent): buffer streamed tool-call argument fragments and join once at materialisation (salvage #92217)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/chat_completion_helpers.py","tests/run_agent/test_streaming.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}