Four instruments, four questions
Every published number on this site comes out of one of four places, and each answers a question the others cannot.
| Criterion | Question it answers | Runs where |
|---|---|---|
| Fidelity baseline | Does the viewer still draw what the file says? | Local and on demand |
| Pixel assertions | Is the watermark still in the served bytes? | Playwright suite |
| Deployment invariants | Does the code that is deployed still carry the control? | CI, against the live database |
| Black-box replay | Does the original exploit still work? | CI, public key only |
The first is a scored comparison against LibreOffice with a committed floor per dimension. Any dimension that scores below its floor prints the regression and exits 1, so a fidelity loss fails the run rather than reaching a reader. Floors are updated only by an explicit flag, which makes lowering the bar a deliberate act that shows up in a diff.
The second asserts on real pixels produced by the real burner rather than on the code that calls it. It also asserts source ordering, that the burn happens before the image is encoded, because that ordering is the entire control and a refactor could silently reverse it.
The third is the one most suites skip. It reads the deployed function's source text out of the database catalogue and fails if either permission predicate has gone missing, or if a client-reachable role has regained execute permission. A test of the source tree cannot see a migration that ran differently in production.
The fourth replays closed exploits from outside with only the public key that ships in the browser bundle. It counts a permission-denied error as a pass and treats an ambiguous error as a failure, so a probe that stops working cannot quietly start reporting success.
- ClaimStated precisely enough to be wrong
- InstrumentMeasured by something that can fail
- FloorCommitted, lowered only on purpose
- GateRegression exits non-zero in CI
- ReplayOriginal attack re-run from outside
Reproducing it
node tests/fidelity/run.mjs --rebuild npx playwright test -c tests/rasterization/playwright.config.ts watermark-burn node --experimental-strip-types tests/security/org-isolation.test.ts node scripts/security/check-function-privileges.mjs --require-db
What none of it caught
Several of the worst defects we have shipped were invisible to every suite we had, and appeared only when the product ran on real infrastructure against a real browser. They share a shape: the code was correct and the thing around the code was not.
- The model endpoint was unreachable from any browserbypassable
The parser passed 158 tests. The reverse proxy had no route for it, so every request fell through to a 403, and the handler sent no cross-origin header, so a browser would have discarded the response anyway. Found by walking the deploy path by hand.
- A route prefix quietly protected the wrong pagesbypassable
The middleware guarded a path prefix, and a second, unrelated route began with the same characters. Every unit test of the guard passed, because the guard was right about the prefix it was given.
- A background job could never queue workbypassable
The reindex command was correct in every part a test exercised and could not enqueue a single job in practice.
- The permission predicate was right, its caller was notbypassable
The filter inside the retrieval query was correct and tested. The function could still be called directly with a substituted participant identifier, and it returned 30 chunks across 13 documents to someone with no relationship to the room.
One more, in the opposite direction. We recorded that legacy .xls frozen panes were unrecoverable because the converter dropped them, and wrote that down as a permanent limit. It was wrong, and a later attempt recovered them. A limitation logged as permanent is a claim like any other, and it deserves the same re-testing as a feature.
The pattern is not that testing failed. It is that a test of the code answers a narrower question than most people hear when they are told the code is tested. Configuration, routing, grants, deployment and reachability all sit outside it, and every one of them has produced a defect here. That is why two of the four instruments probe the deployed system rather than the source tree, and why the deploy path now gets walked by hand before a release rather than inferred from a green suite.
The individual measurements have their own pages: the fidelity scores, the crop sweep, and the permission fence, each with the method that produced it.
Related: The spreadsheet fidelity test · Do watermarks survive screenshots · What a citation has to point at · Pricing
Pricing is public, with no per-page fees and a 14-day trial that does not ask for a card. See the tiers.