{"repo":"NousResearch/hermes-agent","public_id":"95003","display_label":"xAI reserved tool_search name conflict fix","summary":"An issue was identified where xAI rejects requests because 'tool_search' is a reserved name for a native server-side tool. These members track attempts to resolve the naming collision by aliasing the bridge tool name on the wire for xAI transports.","subsystem":"agent","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":4,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":99499,"merged_at":"2026-08-31T17:09:05+00:00"},"resolution":{"state":"resolved","by":"pr-99499"},"freshness":{"state":"verified","last_verified_at":"2026-08-31T17:09:05+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":95003,"pr_number":99499,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-31T17:09:05+00:00"}],"members":[{"kind":"issue","number":95003,"title":"xAI rejects requests: function name tool_search is reserved for the native server-side tool","url":null,"state":"closed"},{"kind":"pr","number":95011,"title":"fix(xai): alias the reserved tool_search bridge name on chat completions","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"6552d44e52349700aecc7d6cdbbb836dd941b80c","number":0},{"kind":"commit","value":"95668f5eabff2ae17f96496ffb87e280b8879846","number":0},{"kind":"pr","value":"#95019","number":95019},{"kind":"pr","value":"#95011","number":95011},{"kind":"pr","value":"#95003","number":95003},{"kind":"pr","value":"#83126","number":83126},{"kind":"pr","value":"#83122","number":83122}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":95019,"title":"fix(xai): alias the reserved tool_search bridge on the wire (#95003)","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"75a296abe2b0ab4c83a2820cfd6abe2dfa69a459","number":0},{"kind":"commit","value":"95668f5eabff2ae17f96496ffb87e280b8879846","number":0},{"kind":"pr","value":"#95011","number":95011},{"kind":"pr","value":"#95003","number":95003},{"kind":"pr","value":"#83126","number":83126},{"kind":"pr","value":"#83122","number":83122}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":95219,"title":"fix(xai): make tool_search wire alias collision-safe","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#95019","number":95019},{"kind":"pr","value":"#95011","number":95011},{"kind":"pr","value":"#95003","number":95003}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":95268,"title":"fix(xai): alias reserved tool_search bridge on the wire","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#95019","number":95019}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":99499,"title":"fix(xai): alias the reserved tool_search bridge on the wire for both xAI transports","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/chat_completion_helpers.py","agent/transports/chat_completions.py","agent/transports/codex.py","tests/agent/transports/test_chat_completions_xai_tool_search_alias.py","tests/agent/transports/test_codex_transport.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}