{"repo":"NousResearch/hermes-agent","public_id":"111210","display_label":"Vision tool message veto bypass via OpenRouter","summary":"These items concern a bug where the supports_vision_tool_messages veto was bypassed when routing through OpenRouter to Xiaomi MiMo, causing 400 'text is not set' errors. The members cover the bug report and related fix attempts for this specific routing scenario.","subsystem":null,"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":111441,"merged_at":"2026-09-15T11:48:22+00:00"},"resolution":{"state":"resolved","by":"pr-111441"},"freshness":{"state":"verified","last_verified_at":"2026-09-15T11:48:22+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":111210,"pr_number":111441,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-15T11:48:22+00:00"}],"members":[{"kind":"issue","number":111210,"title":"[Bug] supports_vision_tool_messages veto bypassed via aggregator (OpenRouter → Xiaomi MiMo 400 'text is not set')","url":null,"state":"closed"},{"kind":"pr","number":111217,"title":"fix(vision): honor Xiaomi tool message veto via OpenRouter","url":null,"state":"closed","close_reason":{"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":111441,"title":"fix(vision): Xiaomi tool-message veto survives OpenRouter routing — no more 400 'text is not set' after image tools (#111210, salvage #111217)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/vision_message_prep.py","providers/__init__.py","tests/agent/test_vision_tool_messages.py","tests/tools/test_vision_native_fast_path.py","tools/vision_tools.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}