Opus finding
RSS escape map omits non-printable control characters that XML 1.0 forbids
mediumbugmedium
- apps/web/lib/rss.ts:6-18
Per the file's own comment, escapeXml must handle every character XML treats as syntactic. XML 1.0 prohibits most C0 control characters (U+0000–U+0008, U+000B, U+000C, U+000E–U+001F). If a finding title or maintainer comment contains such a byte (e.g. a stray \u0001 from an LLM tool output), the resulting XML is malformed and strict parsers (Slack /feed, validator.w3.org) will reject the feed. Source data flows from reviews.title and finding_status.title which are upstream-controllable through GitHub PR metadata indirectly. The comment is therefore aspirational, not accurate.
Recommendation
Extend escapeXml to strip or replace XML-illegal control characters (e.g. /[\x00-\x08\x0B\x0C\x0E-\x1F]/g → '').