{"version":"2.1.274","anchor":"rewrite-detector-generalized-to-catch-control-characters-in","canonical_anchor":"rewrite-detector-generalized-to-catch-control-characters-in","heading":"Rewrite-detector generalized to catch control characters in any prop, not just origin","tier":"internal","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.274\/e\/rewrite-detector-generalized-to-catch-control-characters-in","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.274","markdown":"### Rewrite-detector generalized to catch control characters in any prop, not just origin\n\nThe check for hooks secretly rewriting UI text now covers more fields and blocks hidden control characters\n\n**What**\n\nClaude Code has an internal check that catches a hook or plugin silently rewriting the text a UI element displays. Previously this check only looked at one field, a message's `origin`. It now checks a wider set of fields (`origin`, `isExpanded`, `task`, `from`), and separately flags any of these values as suspicious if it contains a control character (a hidden escape sequence the terminal would act on) or is unexpectedly long.\n\n**Why**\n\nThis closes gaps where a hook could have altered what a user sees in ways the old, narrower check wouldn't catch, making it harder for a hook to disguise a rewrite as ordinary printable text.\n\n- Area: Permissions\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5"}