CLAUDE WATERMARK REMOVER · DESTINATION TEST
Why does a byte preview throw even though cleaned text has two bytes?
Reading a two-byte integer starting at offset one exceeds this two-byte DataView.
What the test establishes
The view contains exactly the two ASCII bytes for AB. A two-byte integer read beginning at offset one would require a third byte, so the operation throws RangeError. This identifies a bounds mistake in a binary preview rather than a corrupted cleaned string. Check both the starting offset and the requested width before each read. The fixture provides the typed array offset and length explicitly when constructing the view, so it does not accidentally expose unrelated backing storage. Endianness cannot repair a read outside the view; it only changes interpretation of bytes that can actually be read within the permitted range.
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.
{
"bytes": [
65,
66
],
"length": 2,
"error": "RangeError"
}Capability boundary
One out-of-bounds Uint16 read is measured; resizable buffers and detached views 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.