captchaforge 0.2.36

[DO NOT USE — UNDER ACTIVE DEVELOPMENT, NOT PRODUCTION-READY] Captcha solver scaffolding for chromiumoxide-driven browsers. The architecture is in place (vendor solvers, retry-loop iframe walking, VLM provider abstraction, real-WAF bench harness) but the live-vendor success rate is still 0% — Cloudflare Turnstile / hCaptcha / reCAPTCHA detect us at a TLS / CDP fingerprint layer that no flag-based stealth has cleared. Watch the repo; do not depend on this for any real workload.
Documentation
name: Stealth Matrix

# Runs the bench under each StealthProfile against the public
# fingerprint-checking endpoints (CreepJS, fp.json, browserleaks)
# and asserts each profile produces a trust-score above the per-
# profile floor declared in `bench/stealth_floors.toml`.
#
# Triggers:
#   - nightly (catches drift in vendor detection logic)
#   - manual workflow_dispatch
#
# A regression here is a stealth-bug — captchaforge solving will
# silently degrade against the corresponding vendors. Treat as an
# incident.

on:
  schedule:
    - cron: "0 6 * * *"   # 06:00 UTC nightly
  workflow_dispatch:

permissions:
  contents: read

jobs:
  stealth-matrix:
    strategy:
      fail-fast: false
      matrix:
        profile:
          - ChromeWindowsStable
          - ChromeLinux
          - ChromeMacStable
          - SafariMacStable
          - SafariIphone
          - SafariIpad
          - BraveWindows
          - FirefoxStable
          - EdgeStable
          - OperaWindows
          - SamsungInternetAndroid
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2
      - name: Install Chrome
        run: |
          sudo apt-get update
          sudo apt-get install -y google-chrome-stable
      - name: Run stealth probe against ${{ matrix.profile }}
        env:
          CAPTCHAFORGE_STEALTH_PROFILE: ${{ matrix.profile }}
        run: |
          cargo run --release --bin captchaforge -- selftest
          # The bench's anti-detection suite probes for the same
          # signals CreepJS / fp.json check (navigator.webdriver,
          # chrome.runtime, plugin count, language, WebGL vendor,
          # …). Failing this suite means stealth dropped.
          cd bench
          cargo run --release -- --suite anti-detection --strict