Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Will flatMap turn each cleaned string into individual characters?

No. Returning AB produces one row; returning a spread array produces A and B.

Tested 3 November 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

The review collection contains one cleaned string. The two callbacks differ only in the shape of their returned value. A string remains one element in this flatMap operation, whereas the explicitly constructed array contributes its two elements. This distinction prevents accidental assumptions that all iterable callback results are flattened. When the destination needs one record per line, return the record string. When it needs individual symbols, construct that representation explicitly and document its unit.

Reproduce the observation

Save tested-app.js and reproduce.cjs together, then run node reproduce.cjs. Compare its output with the recorded observation. The harness executes the actual homepage callback in a minimal DOM and records its resulting field values and method calls. Destination operations run in Node.js; the homepage DOM is a controlled substitute. Runtime: v24.22.1. No submitted text or genuine Claude output is used.

{
  "string": [
    "AB"
  ],
  "array": [
    "A",
    "B"
  ]
}

Capability boundary

One ASCII string is tested. This is not a grapheme segmentation algorithm or a CSV parser.

This Claude watermark remover edits a small selected character set. These callback observations do not establish authorship, detector scores, statistical-watermark removal or end-to-end browser behavior. For real work, keep the original and compare the exact result at its destination.

Primary material and next step

The tested first-party source snapshot and complete harness are the primary material for this page. For broader scope, read invisible Unicode versus AI watermarks, or return to the cleaner.