CLAUDE WATERMARK REMOVER · DESTINATION TEST
Does Object.assign create an independent nested snapshot of cleaned text?
No. Editing the copied nested row also changes the original row to CD.
What the test establishes
The export record wraps the callback result in one nested row. Object.assign copies the outer property into a new container but both containers point at the same row. Recording reference equality alongside both text values makes the sharing visible. A preview screen using this copy as a rollback snapshot can accidentally alter its own original when editing nested content. Choose an explicit copy strategy that matches the schema before offering an undo guarantee. The fixture uses a direct assignment after copying, so the observed modification does not depend on hidden browser events or a second cleaning pass.
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.
{
"sameRow": true,
"original": "CD",
"copy": "CD"
}Capability boundary
One nested plain object is measured. Cycles, class instances and deep clone compatibility are not tested.
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.