{"repo":"NousResearch/hermes-agent","public_id":"19195","display_label":"Image MIME type detection via magic byte sniffing","summary":"A cluster of bugs and fixes centered on incorrect media_type values being sent to Anthropic's vision API, caused by misleading file extensions or Discord's image caching. Fixes involve sniffing actual file magic bytes to determine true MIME type rather than trusting suffixes.","subsystem":"gateway","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":2,"merged_prs":0,"attempt_prs":2},"landed_fix":null,"resolution":{"state":"unresolved","by":null},"freshness":{"state":"never_verified","last_verified_at":null,"is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.3933333333333333},"fix_edges":[],"members":[{"kind":"issue","number":19195,"title":"[Bug]: Discord-cached PNG-as-.webp images cause HTTP 400 from Anthropic (media_type mismatch)","url":null,"state":"closed"},{"kind":"issue","number":21049,"title":"[Bug]: Regression in #16506: Anthropic 400 invalid_request_error on Discord image attachments — media_type mismatched with actual bytes","url":null,"state":"closed"},{"kind":"pr","number":19196,"title":"fix(image-routing): sniff magic bytes for image MIME, ignore misleading suffix","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"101a77861","number":0},{"kind":"pr","value":"#21049","number":21049}],"category":"merged_via","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":21345,"title":"fix(discord): sniff image magic bytes so Anthropic vision accepts media_type","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"5cf703245bbce4b8cb34fbfb42571bfa50c4c00e","number":0}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true}],"trust":{"default_tier":"verified","includes_suggested":false}}