Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Why did filter keep a cleaned row whose async check returns false?

Array.filter treats the returned Promise as truthy and keeps the row.

Tested 7 November 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

The fixture compares a direct asynchronous predicate with an explicit two-stage workflow. Array.filter does not wait for the predicate result; the Promise object immediately satisfies its truthiness check. Waiting for boolean flags before filtering produces the empty result intended by this particular predicate. A destination validation pipeline can therefore retain a row that its later check rejects. This has nothing to do with whether the cleaner removed the selected marker. AB is the input to both paths. The experiment uses a deterministic false result rather than network requests so timing and remote validation cannot obscure the control-flow difference.

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.

{
  "bad": [
    "AB"
  ],
  "flags": [
    false
  ],
  "explicit": []
}

Capability boundary

One row and a resolved false predicate are measured. Rejections, cancellation and concurrent remote checks 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.