Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Why can Buffer.from(view.buffer) include bytes outside cleaned text?

In this test the backing buffer contains bracket bytes; passing the view offset and length isolates AB.

Tested 1 November 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

A larger byte allocation holds a framed version of the cleaned value. The subarray selects only the two text bytes but keeps a reference to the whole allocation. Constructing a Buffer from its backing store alone loses that selection boundary. An export should carry the offset and length with the view, or deliberately copy its selected bytes, to avoid including surrounding record 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",
  "whole": "[AB]",
  "bounded": "AB"
}

Capability boundary

This fixture uses a fresh TextEncoder allocation. It does not inspect pooled memory, claim a security exploit or test browser download behavior.

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.