{"repo":"NousResearch/hermes-agent","public_id":"10723","display_label":"Tool schema combinator compatibility fixes across AI APIs","summary":"Multiple bugs and fixes related to tool/function schemas using top-level combinators (anyOf, allOf, oneOf) that are rejected by OpenAI, Anthropic, and Codex APIs. A recurring concern is the schema sanitizer stripping or corrupting valid properties like dependentRequired while attempting to normalize schemas.","subsystem":"agent","counts":{"members":15,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":6,"merged_prs":1,"attempt_prs":8},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":64623},"resolution":{"state":"partially_resolved","by":"pr-64623"},"freshness":{"state":"verified","last_verified_at":"2026-07-28T21:37:20+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.11657142857142856},"fix_edges":[{"issue_number":64587,"pr_number":64623,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":10723,"title":"[Bug]: Invalid schema for function 'honcho_conclude': schema must have type 'object' and not have 'oneOf'/'anyOf'/'allOf'/'enum'/'not' at the top level.","url":null,"state":"closed"},{"kind":"issue","number":10812,"title":"[Bug]: honcho_conclude tool schema uses anyOf at root, rejected by Anthropic API (HTTP 400)","url":null,"state":"closed"},{"kind":"issue","number":21311,"title":"[Bug]: core memory tool schema uses allOf at root, rejected by OpenAI/Anthropic","url":null,"state":"closed"},{"kind":"issue","number":21322,"title":"[Bug]: invalid_function_parameters for memory tool on Codex/ChatGPT","url":null,"state":"closed"},{"kind":"issue","number":21336,"title":"[Bug]: HTTP 400 from openai-codex on memory tool — top-level allOf in MEMORY_SCHEMA (regression from #19180)","url":null,"state":"closed"},{"kind":"issue","number":64587,"title":"fix(tools): schema sanitizer corrupts dependentRequired on MCP tools (HTTP 400)","url":null,"state":"closed"},{"kind":"pr","number":10770,"title":"fix: normalize Codex Responses tool schemas for Honcho memory tools","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#10723","number":10723}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":10777,"title":"fix: batch fix for 4 issues (#10721, #10755, #10723, #10748)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"c03858733","number":0},{"kind":"commit","value":"45e1228a8","number":0},{"kind":"commit","value":"50d438d12","number":0},{"kind":"commit","value":"d67e602cc","number":0},{"kind":"commit","value":"d4eba82a3","number":0},{"kind":"commit","value":"3b5572ded","number":0},{"kind":"pr","value":"#10721","number":10721},{"kind":"pr","value":"#10755","number":10755},{"kind":"pr","value":"#10723","number":10723},{"kind":"pr","value":"#10843","number":10843},{"kind":"pr","value":"#10748","number":10748}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":10843,"title":"fix(honcho): remove top-level anyOf from conclude schema and harden validation","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#10723","number":10723}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":10847,"title":"fix(honcho): remove anyOf from honcho_conclude schema (fixes HTTP 400 with Anthropic API)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#11026","number":11026},{"kind":"pr","value":"#10864","number":10864},{"kind":"pr","value":"#10870","number":10870},{"kind":"pr","value":"#10952","number":10952},{"kind":"pr","value":"#11026","number":11026}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":10864,"title":"Remove unsupported anyOf from honcho_conclude schema","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#11026","number":11026},{"kind":"pr","value":"#10847","number":10847},{"kind":"pr","value":"#10870","number":10870},{"kind":"pr","value":"#10952","number":10952}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":10870,"title":"fix: remove anyOf from honcho_conclude schema (Anthropic API compatibility)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#11026","number":11026},{"kind":"pr","value":"#10847","number":10847},{"kind":"pr","value":"#10864","number":10864},{"kind":"pr","value":"#10952","number":10952}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":64623,"title":"fix(schema): preserve dependentRequired property names","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_schema_sanitizer.py","tools/schema_sanitizer.py"]},{"kind":"pr","number":64667,"title":"fix(tools): preserve dependentRequired in schema sanitizer (#64587)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#64623","number":64623}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":64928,"title":"fix(tools): preserve dependentRequired in schema sanitizer (#64587)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#64623","number":64623}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true}],"trust":{"default_tier":"verified","includes_suggested":false}}