{"version":"2.1.221","anchor":"reply-text-is-validated-hard-before-it-can-be-published","canonical_anchor":"reply-text-is-validated-hard-before-it-can-be-published","heading":"Reply text is validated hard before it can be published","tier":"soon","area":"Artifacts","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/reply-text-is-validated-hard-before-it-can-be-published","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### Reply text is validated hard before it can be published\n\nComment replies must be plain text under 4096 bytes, with emoji and invisible characters rejected.\n\n**What**\n\nReply payloads must pass a strict content check, applied twice so that an approved payload is the one that actually gets sent.\n\n**Details**\n\n- Text must be non-empty, not visually blank after normalization, and at most 4096 UTF-8 bytes.\n- The thread id must be UUID-shaped.\n- Invisible, control, bidi and variation-selector code points are rejected, as are runs of exotic blanks; the check explicitly rejects most emoji.\n- The same checks run in validateInput and again at call time, so hook or permission rewrites cannot substitute a different payload after approval.\n- Behind the artifact-comments gate.\n\n**Evidence**\n\n`text is visually blank \u2014 every approval surface would show an empty payload for it`\n\n- Area: Artifacts\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 2\/5\n- Present in the build but not switched on"}