This document records how the OpenSIN Bridge performs against publicly available detection benchmarks. Run these before every release that touches the stealth layer or any automation primitive.
How to run
- Build and load the extension (
pnpm run ext:package, then loaddist/opensin-bridge-extension.zipviachrome://extensions). - Open
https://bot.sannysoft.comin a tab. - Every row on the table must show a green check.
- Paste
test/stealth/sannysoft-probe.jsinto DevTools and confirmPASSfor every entry.
What each row tests
| Row | Stealth module covering it |
|---|---|
| WebDriver | webdriver |
| Chrome (New) | chromeRuntime |
| Permissions | permissions |
| Plugins Length | plugins |
| MimeTypes Length | plugins / mimeTypes |
| Languages | languages |
| HeadlessChrome in UA | userAgent |
| Broken Image | (not automation specific) |
| Outer Dimensions | outerDimensions |
| Navigator Languages | languages |
| Navigator Plugins | plugins |
| WebGL Vendor | webgl |
How to run
- Extension loaded, open
https://abrahamjuliot.github.io/creepjs/. - Wait for the full analysis to complete (~30 s).
- Record the
trust score. Target: >= 70% (same range a vanilla Chrome without any automation scores). - Confirm the
lies detectedcount is <= 3 and never includesnavigator.webdriver,navigator.plugins,webgl, orchrome.runtime.
The canvas and audio modules intentionally introduce micro-noise,
so CreepJS may flag them as rotated fingerprint — that is expected
and desirable. The fingerprint changing across sessions means our
hash cannot be correlated across visits.
- Open
https://pixelscan.net/. - Expected verdict: "You look like a genuine user" or equivalent.
- Verify
Masked / Hiddenis NOT reported for any field.
- Open
https://iphey.com/. - Confirm the
Trustworthyscore is at least green. Headless Browsermust reportNot detected.
pnpm test:stealthRuns test/stealth/stealth-main.test.mjs which instantiates the
stealth IIFE inside a vm context with a fake browser environment
and asserts:
- The idempotency flag is set to the current version string.
- Every module reports
applied/skipped/partial(never an uncaught error). - Hooked functions
toString()with[native code]preserved. - Loading the script twice does not mutate state a second time.
This is the production use case. The worker repo
(A2A-SIN-Worker-heypiggy) drives the extension through a full
login → dashboard → survey flow. The bridge is considered stable
when the worker can open a survey and complete at least one
question page without the site flagging the session.
| Date | Sannysoft | CreepJS trust | heypiggy flow | Stealth version |
|---|---|---|---|---|
| 2026-04-19 | 12/12 PASS | pending | pending | 2.0.0 (initial) |
Append rows as new results come in — keep the latest row at the top and never rewrite historical entries.