user-scanner v1.5.0 β 2026-08-13
This release collects merged changes since v1.4.3.1. It focuses on reliability and accuracy fixes across many modules, profile enrichment improvements, and a major cross-scan workflow that lets you pivot finished scans into focused username and email scans and score each hit.
Notable changes
Cross-scan workflow
- feat(cross-scan): pivot finished scans into username and email scans, and rate each hit (#559) β by @brunolm; reviewed by the team.
- New "cross-scan" flow: after a scan finishes, you can run a targeted pivot that splits results into username and email scan tasks, re-checks hits with specialized modules, and assigns a confidence rating to each discovered item.
- Helps prioritise follow-ups and reduces manual triage by surfacing higher-confidence matches first.
- CLI and docs updated with usage and interpretation guidance for cross-scan results.
Features & enhancements
- feat: add Tinder username module (#560) β by @kristoisberg.
- feature: Andele Mandele username module (#572) β by @kristoisberg.
- feat(email_scan): add several new email modules (multiple PRs, incl. #508, #495, #573) β by @kaifcodec and contributors.
- feat(core): add
impersonate_request_asyncto make email modules non-blocking and improve throughput (#528). - feat(pdf): parallelize profile photo downloading with a progress bar for faster PDF reports (#506).
- feat(gravatar): further enrich profile extraction (links, interests, profile details) (#516).
Bug fixes & accuracy improvements
- fix: resolve core engine concurrency hangs (#571) β avoids scan stalls under heavy parallel load.
- Wide-ranging module fixes that improve verdict accuracy and clear challenges/WAF/Captcha for lookups (GitHub, Facebook, Medium, Patreon, etc.). These reduce false positives and restore modules previously unable to return verdicts.
- fix(cli): prevent bandwidth waste on invalid output formats (#502).
- fix(core): display and export the
mediadictionary in console, JSON, and CSV outputs so avatar/media URLs are preserved (#517). - Numerous small but important fixes to restore and harden modules that previously returned spurious results or errors (see detailed PR list).
Documentation
- chore/docs: add contributor guides and small docs improvements; README sync and layout refinements (#505, #570).
- Updated CLI help and docs to cover cross-scan usage and result rating.
Tests, CI & maintenance
- Continued test additions and maintenance (flake/nix dependency fixes, refactors separating media from extra, and CI stability tweaks) β examples: #513, #496.
- Housekeeping: retire permanently-offline modules to abandoned/ (#525), various cleanups.
Detailed merged PRs included in v1.5.0 (merged after v1.4.3.1)
- #504 β fix: Steam user module errors
- #519 β fix: BentBox username module errors
- #520 β fix: resolve BDSM Singles browser challenge
- #521 β fix(user_scan): restore 11 modules that could never return a verdict
- #522 β fix: batch execution for multi-module scan progress bar
- #523 β fix(bentbox): detect profiles via the ProfilePage JSON-LD
- #524 β fix: unblock apexlegends, buzzfeed, cups7 and flickr
- #525 β chore: retire Motherless modules to abandoned/ (site is offline)
- #528 β feat(core): add impersonate_request_async for the email modules
- #529 β fix(wordpress): treat email_login_not_allowed as a registered account
- #530 β fix(deezer): key the verdict on the email constraint alone
- #531 β fix(nytimes): recognise show-welcome-back as a registered account
- #532 β fix(nextdoor): name the geo null-route instead of a raw resolver error
- #533 β fix(kick): route the signup check through the impersonating transport
- #534 β fix(fapfolder): route the signup check through the impersonating transport
- #535 β fix(patreon): clear the 403 and recognise the sso_required auth step
- #536 β fix(letterboxd): clear the challenge that served HTML where JSON was expected
- #537 β fix(classmates): clear the WAF 403 on the login handshake
- #538 β fix(walmart): clear the 412 session mismatch
- #539 β fix(pornhub): probe a sub-addressed alias to get a verdict again
- #540 β fix(github): find accounts via the search API when signup is challenged
- #541 β fix(spankbang): impersonate Safari to clear the Cloudflare challenge
- #542 β fix(facebook): follow canonical-casing redirects and match both miss wordings
- #543 β fix(livejournal): resolve journals, and split purged from suspended
- #544 β fix(defensivecarry): confirm a miss instead of inferring it from a bare 200
- #545 β fix(thefirearmsforum): confirm a miss instead of inferring it from a bare 200
- #546 β fix(producthunt): confirm a hit on the profile title instead of a bare 200
- #547 β fix(annaabi): name the Cloudflare challenge instead of emitting a bare 403
- #548 β fix(donatello): confirm a creator page instead of returning taken on any 200
- #549 β fix(yaga): name the CloudFront country block instead of a bare 403
- #550 β fix(advfn): clear the Cloudflare wall blocking every lookup
- #551 β fix(babepedia): clear the Cloudflare wall blocking every lookup
- #552 β fix(bdsmlr): resolve blogs through the site API
- #553 β fix(medium): match the served handle and follow subdomain redirects
- #554 β fix(stackoverflow): verify the fragment before returning a verdict
- #555 β fix(riot-id): require a boolean verdict from the lookup API
- #556 β fix(bdsmsingles): stop reporting every handle as free
- #557 β fix(annaabi): name the Cloudflare challenge instead of emitting a bare 403 (followup)
- #558 β fix(chess_com): resolve mixed-case handles instead of erroring on the 301
- #559 β feat(cross-scan): pivot a finished scan into username and email scans, and rate each hit
- #560 β feature: Tinder username module
- #563 β fix(reddit): stop naming a boolean flag after an email field
- #564 β fix(gitlab): publish the account's public email
- #565 β feat(devto): extract the linked github and twitter handles
- #566 β feat(liberapay): extract the OAuth-verified accounts the profile vouches for
- #567 β feat(ifttt): extract the profile instead of discarding the response
- #568 β feat(flickr): extract the profile's linked social accounts
- #569 β fix(monkeytype): stop reporting real accounts as errors, and extract the profile
- #570 β docs: sync README with main features and refine layout
- #571 β fix: resolve core engine concurrency hangs
- #572 β feature: Andele Mandele username module
- #573 β feat(email_scan): add asafeer, tatacliq, couplejoy, lovenudge modules
Credits
Thanks to all contributors and reviewers for this batch of changes: @brunolm, @kaifcodec, @kristoisberg, @VamatoHD, @json-hunter07, @A-S-Manoj, @beranka, @w3lld1, and others.