edgepiityped character spans
taxonomy 2026.11 GitHub

Screenshot tour

Every screen, and what it proves

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.

The demo opens: the edgepii demo screen showing The sidebar lists every lane. The rule lane is active because it needs no download..
1. The demo opensThe sidebar lists every lane. The rule lane is active because it needs no download.
Rules on a ticket: the edgepii demo screen showing Phone, email, and a Luhn-valid test card. The order id stays visible..
2. Rules on a ticketPhone, email, and a Luhn-valid test card. The order id stays visible.
A secret is irreversible: the edgepii demo screen showing The password becomes <SECRET>. The vault has no entry for it..
3. A secret is irreversibleThe password becomes <SECRET>. The vault has no entry for it.
Only what you asked for: the edgepii demo screen showing A request for EMAIL returns one email span and no person, even on a model lane..
4. Only what you asked forA request for EMAIL returns one email span and no person, even on a model lane.
Chinese text: the edgepii demo screen showing A Chinese mobile number and an email pass the same slice check..
5. Chinese textA Chinese mobile number and an email pass the same slice check.
Numbered placeholders: the edgepii demo screen showing A repeated slice reuses &lt;EMAIL_1&gt;. A new slice gets &lt;EMAIL_2&gt;..
6. Numbered placeholdersA repeated slice reuses <EMAIL_1>. A new slice gets <EMAIL_2>.
Long text keeps offsets: the edgepii demo screen showing The email sits far into the string. The start index still refers to the whole source..
7. Long text keeps offsetsThe email sits far into the string. The start index still refers to the whole source.
An empty source: the edgepii demo screen showing The page shows a message instead of making a call..
8. An empty sourceThe page shows a message instead of making a call.
A narrow screen: the edgepii demo screen showing The layout survives a 430 pixel viewport..
9. A narrow screenThe layout survives a 430 pixel viewport.
A model lane finds a name: the edgepii demo screen showing The closed encoder finds a person, and the slice check still passes..
10. A model lane finds a nameThe closed encoder finds a person, and the slice check still passes.
Copy as JSON: the edgepii demo screen showing The span list leaves as JSON, so a reviewer can diff it..
11. Copy as JSONThe span list leaves as JSON, so a reviewer can diff it.
Caller policy: the edgepii demo screen showing A floor of 0.90 keeps the card and drops the two spans with no score..
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.