These images are produced by the browser test run, not by hand. The test fills the page, clicks
Locate spans, waits for the result, and writes the file. A changed image means a
changed behaviour. Regenerate them with make e2e.
1. The demo opensThe sidebar lists every lane. The rule lane is active because it needs no download.2. Rules on a ticketPhone, email, and a Luhn-valid test card. The order id stays visible.3. A secret is irreversibleThe password becomes <SECRET>. The vault has no entry for it.4. Only what you asked forA request for EMAIL returns one email span and no person, even on a model lane.5. Chinese textA Chinese mobile number and an email pass the same slice check.6. Numbered placeholdersA repeated slice reuses <EMAIL_1>. A new slice gets <EMAIL_2>.7. Long text keeps offsetsThe email sits far into the string. The start index still refers to the whole source.8. An empty sourceThe page shows a message instead of making a call.9. A narrow screenThe layout survives a 430 pixel viewport.10. A model lane finds a nameThe closed encoder finds a person, and the slice check still passes.11. Copy as JSONThe span list leaves as JSON, so a reviewer can diff it.12. Caller policyA floor of 0.90 keeps the card and drops the two spans with no score.
How to read a screenshot
A green slice check card and a green ok in each row mean every span
passed source[start:end] == text.
A red mark is a contract failure, not a style issue.
A dash in the Score column means no validator covers that form. The library
does not fill the gap with a number.
The span table is the review artifact. A masked paragraph alone is not.