CLAUDE WATERMARK REMOVER · PRACTICAL TEST
Can direction controls remain after a no-findings result?
Yes. The homepage does not remove the tested direction controls. Its no-findings message means no selected deletion character was found, rather than no invisible character exists in the text.
Open the Claude text cleaner · Full measured data
Measured inputs and outputs
These are locally constructed test strings, not evidence that Claude inserts these characters. We executed the saved homepage script snapshot with a minimal DOM harness and compared exact strings. Invisible removal is enabled; the dash mode appears in each row. The observations below test this page's specific question. We make no detector-score or statistical-watermark removal claim.
| Fixture and mode | Input string and code points | Output and cleaner status | Observed before / after |
|---|---|---|---|
| Right-to-left mark direct string / keep | "AB"U+0041 U+200F U+0042 | "AB"No selected invisible characters found | {"directionControls":["U+200F"],"hasZeroWidthSpace":false}{"directionControls":["U+200F"],"hasZeroWidthSpace":false} |
| Override with terminator direct string / keep | "ABC"U+0041 U+202E U+0042 U+0043 U+202C | "ABC"No selected invisible characters found | {"directionControls":["U+202E","U+202C"],"hasZeroWidthSpace":false}{"directionControls":["U+202E","U+202C"],"hasZeroWidthSpace":false} |
| Right-to-left isolate direct string / keep | "ABC"U+0041 U+2067 U+0042 U+0043 U+2069 | "ABC"No selected invisible characters found | {"directionControls":["U+2067","U+2069"],"hasZeroWidthSpace":false}{"directionControls":["U+2067","U+2069"],"hasZeroWidthSpace":false} |
| Direction mark and unwanted space direct string / keep | "AB"U+0041 U+200F U+200B U+0042 | "AB"Removed 1 invisible character | {"directionControls":["U+200F"],"hasZeroWidthSpace":true}{"directionControls":["U+200F"],"hasZeroWidthSpace":false} |
What the no-findings message actually measured
The first three fixtures retain their complete strings and receive the same no-selected-character status. They contain U+200F, U+202E with U+202C, and U+2067 with U+2069 respectively. These controls are not in the five-character removal map. The fourth fixture contains both U+200F and U+200B; the cleaner deletes the latter, reports one removal, and leaves the direction mark. The data file records the status and remaining controls together so that a removal count cannot be mistaken for a complete inspection.
Stored order and display order are different
Unicode Annex #9 explains bidirectional display and the roles of directional marks, overrides and isolates. Our table prints escaped strings and code points in stored order, deliberately avoiding a display that could conceal the tested control. We have not rendered these fixtures in Arabic or Hebrew, inspected a malicious file, or measured accessibility behavior. Controls can be meaningful in mixed-direction text. Their presence alone neither identifies AI output nor justifies deleting them from a document.
Investigate the exact symptom
For an unexpected visual order, use the full Unicode inspector, compare stored code points, and identify the surrounding language and application. Preserve an original before editing a control, then check the display in the destination application. For source code or a filename that seems misleading, inspect the complete string rather than relying on its rendered appearance. The homepage performs no bidirectional-security audit and emits no warning for the retained controls in these fixtures. Its removal action has a precise limited scope. Do not interpret that status as a certificate that text is safe or free of all formatting controls.
Reproduce this test
Save reproduce.cjs and tested-app.js in the same folder. Run the command below with Node.js. The harness prints its runtime, script SHA-256 and every measured row. Compare those rows with the original record. Using a newer script or runtime creates a new experiment; retain the version information with your rerun.
node reproduce.cjsReference and next check
Unicode bidirectional algorithm provides the relevant primary definition. The table and fixture analysis are original measurements. For broader inspection, use our Unicode inspector. Read the scope distinction before interpreting cleanup as a watermark result.