{"repo":"NousResearch/hermes-agent","public_id":"110915","display_label":"Unicode line separator characters breaking NDJSON parsing","summary":"A bug where inbound messages containing U+2028 (and related Unicode separator characters) were silently dropped due to NDJSON line parsing. Members cover the issue report and multiple fix attempts addressing escaping of these characters in sidecar NDJSON frames.","subsystem":"gateway","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":2,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":111345,"merged_at":"2026-09-15T11:34:14+00:00"},"resolution":{"state":"resolved","by":"pr-111345"},"freshness":{"state":"verified","last_verified_at":"2026-09-15T11:34:14+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":110915,"pr_number":111345,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-15T11:34:14+00:00"}],"members":[{"kind":"issue","number":110915,"title":"Photon: inbound iMessages containing U+2028 (iOS line break) are silently dropped (sidecar NDJSON vs httpx aiter_lines)","url":null,"state":"closed"},{"kind":"pr","number":110927,"title":"fix(photon): escape U+2028/U+2029/U+0085 in sidecar NDJSON frames","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"b3f3734ffa","number":0},{"kind":"pr","value":"#110930","number":110930}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":110930,"title":"fix(photon): preserve Unicode separators in inbound NDJSON","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"646b111c6f","number":0},{"kind":"pr","value":"#110927","number":110927}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":111345,"title":"fix(photon): inbound messages containing U+2028 line separators are no longer dropped (#110915, salvage #110930)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["plugins/platforms/photon/adapter.py","tests/plugins/platforms/photon/test_inbound.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}