Skip to content

2026-09-10

One upload for every signal, a hero that answers, and a reference you can run

The cross-signal check now takes a list: one upload, one header row, four signals per row and the comparison beside them. The landing page stops playing a recording and answers real lookups. And the endpoint reference runs six of its operations from the page you are reading.

  • The cross-signal check takes a list now. It was strictly one record at a time, so scoring a signups export meant four separate uploads to four pages and a spreadsheet join afterwards — and the comparison nobody else computes was the one thing you could not get for a list. There is a fifth bulk run type: one upload, one header row, and the parser works out which column is the email, which is the phone, which is the IP and which are the address fields by composing the four detectors that already existed. A row where only two of the four resolve is a perfectly good check of those two and is run as one.
  • It bills exactly as the single call does, leg by leg, and the comparison stays free — so a row costs between nothing and four credits depending on what its columns reached and what answered. The preview prices it on the columns actually mapped, so a file that only reaches two signals is quoted at two a row rather than four. It goes through the same preview-then-start flow as the other four, with no one-shot upload and no paste box: a pasted line cannot say which signal it is, and a mis-read column costs four times more here than anywhere else.
  • The landing page stops playing a recording. The hero has been auto-rotating four canned lookups with no input at all, on the busiest page on the site — while five real widgets and five throttled guest endpoints existed and were mounted on every marketing page except that one. Each tab now holds the live widget for its signal, seeded from the lookup it used to play, so the panel still shows a full answer the instant it loads and runs a real one the moment you ask.
  • One of the recorded values it paints at rest was wrong, which only mattered once the live answer landed on top of it: mailinator.com is a free provider and the record said it was not. A test now runs each recorded value through the real pipeline, so the page cannot show a number and then correct itself in front of the visitor.
  • The endpoint reference runs. A hundred-odd pages you could read and none you could try. Six operations — the ones that cost at most a credit, that a guest can already run free, and whose demo answers the same shape the page documents — now have a console on their own page. It says what the call will cost before you press anything, never runs on load, and every other operation says why it has none rather than silently missing one.
  • A run does everything the endpoint does, and the page says so: the answer is logged where that endpoint logs it, and a verdict that suppresses an address or a number suppresses it here too. The first version claimed it "changes nothing", which was not true of three of the six and would have had somebody delete them.
  • The consistency run also got what the other four have had for weeks and it did not: a completion email when it finishes or stops, a place on the dashboard's live strip, its row in the published list of webhook events, and its uploaded file deleted with the account. That last one is the third time this exact gap has appeared — a database cascade fires no application code, so a new run type's files outlive the account unless something deletes them by hand.

markdown version: /changelog/2026-09-10-one-upload-a-live-hero-and-a-reference-you-can-run.md · atom feed: /changelog.atom

All releases