Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Will JSON export my cleaned byte array as a JSON array?

No. Uint8Array serializes with numeric property names; Array.from produces an array.

Tested 5 November 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

Both serializations contain the same byte values, but their JSON shapes differ. A receiving schema that expects an array can reject the numeric-keyed object even though no content byte is missing. Choose the representation explicitly at the boundary and validate its shape before sending it. This is distinct from the Buffer-specific JSON wrapper: the fixture uses Uint8Array and records its own observable serialization. The homepage callback only produces the string used to create the bytes. It does not select the JSON schema or make the exported structure interchangeable with an ordinary array.

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.

{
  "typed": "{\"0\":65,\"1\":66}",
  "array": "[65,66]"
}

Capability boundary

A two-element Uint8Array is measured. Custom toJSON methods and other typed arrays are excluded.

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.