{"repo":"NousResearch/hermes-agent","public_id":"70595","display_label":"Fix invalid reasoning signature replay errors in OpenAI/Codex","summary":"These items address a bug where rejected or invalid reasoning/thinking signatures during replay cause unhelpful errors or incorrect self-healing behavior instead of proper recovery. The work focuses on handling 'thinking_signature_invalid' and related 'Unsupported content type' errors more gracefully.","subsystem":"agent","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":115729,"merged_at":"2026-09-19T16:23:55+00:00"},"resolution":{"state":"resolved","by":"pr-115729"},"freshness":{"state":"verified","last_verified_at":"2026-09-19T16:23:55+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":51512,"pr_number":115729,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-19T16:23:55+00:00"},{"issue_number":70595,"pr_number":115729,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-19T16:23:55+00:00"}],"members":[{"kind":"issue","number":70595,"title":"[Bug]: OpenAI thinking_signature_invalid bypasses encrypted replay recovery","url":null,"state":"closed"},{"kind":"pr","number":70597,"title":"fix(openai): recover invalid reasoning signatures","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"e62c5e3360a3","number":0},{"kind":"pr","value":"#115729","number":115729},{"kind":"pr","value":"#70595","number":70595},{"kind":"pr","value":"#51512","number":51512},{"kind":"pr","value":"#70597","number":70597}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":115729,"title":"fix(codex): rejected reasoning replays phrased as thinking_signature_invalid or codex 'Unsupported content type' self-heal instead of aborting the turn (#70595, #51512, salvage #70597)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/codex_responses_adapter.py","agent/error_classifier.py","tests/agent/test_error_classifier.py","tests/agent/test_native_compaction.py","tests/agent/transports/test_codex_transport.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}