CLAUDE WATERMARK REMOVER · CALLBACK TEST
Which file wins when two file reads overlap?
In this callback test, the last read to finish wins, even when it was selected first. Wait for a file to finish loading and verify its name before cleaning.
What the test establishes
We deliberately hold the first promise unresolved, complete the second handler, and then release the first. The intermediate source says second and the final source says first. The callback captures each selected file but has no request-generation comparison before assigning the resolved text. This is a deterministic ordering experiment, not an estimate of how frequently users encounter a race.
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. File-like objects and clipboard responses are controlled substitutes. Runtime: v24.22.1. No submitted text or genuine Claude output is used.
{
"intermediate": {
"source": "second",
"result": "",
"status": "Loaded second.txt",
"inputCount": "6 characters",
"resultCount": "",
"copyDisabled": true,
"details": [],
"writes": [],
"focused": false,
"selected": false
},
"final": {
"source": "first",
"result": "",
"status": "Loaded first.txt",
"inputCount": "5 characters",
"resultCount": "",
"copyDisabled": true,
"details": [],
"writes": [],
"focused": false,
"selected": false
}
}Capability boundary
The mock controls promise timing; real disks, file sizes and browser scheduling were not benchmarked. No concurrent network upload is involved in this handler. Reselecting a file after completion is different from overlapping reads. Confirm both the visible filename status and source before producing the result.
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.