Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Can a cleaned record with a function be structured-cloned?

The measured structuredClone call throws DataCloneError when the record also contains a function. Successful text cleanup does not make every record member cloneable.

Tested 29 October 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

The text member is the plain result AB. The function member is intentionally independent of that text. The clone operation fails on the record instead of returning a record with the function omitted. A worker or snapshot integration should define a data-only envelope before trying to transfer cleaned content.

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.

{
  "cleaned": "AB",
  "errorName": "DataCloneError"
}

Capability boundary

This is a local Node structuredClone test, not a browser postMessage experiment. It does not establish cross-window permissions or support for every host object.

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.