Skip to content

0.7.0 - 2026-08-24

Choose a tag to compare

@github-actions github-actions released this 24 Aug 06:18

Release Notes

Added

  • Bilingual UI (English/Persian) with full RTL. Header language toggle
    (persisted, html[dir/lang] applied pre-paint), Vazirmatn webfont,
    logical-property sweep, LTR-isolated data tokens. Pro panel fully
    translated (~120 keys).
  • Beginner mode upgrades: candidates-to-test knob alongside find-target,
    copy → share-sheet → .txt export fallback chain, honest stop-overshoot
    hint ("a few extra working IPs may land after the target").
  • Pro mode additions: ranges list-file import (server-grammar
    validated, bare IPs classified per mode), AmneziaWG noise editor over the
    pasted wgconf (plain INI or awg:// base64 URI round-trip, Off/Light/
    Heavy presets, constraint validation per the 2026-08-23 research), and
    Skip-to-Phase-2 — cancels phase 1 mid-scan and verifies the banked
    candidates via phase2_only, with a low-yield suggestion badge.
  • WARP verify mode completes a full WireGuard session. Verify probes
    now finish the cryptographic handshake under the user's keypair AND push
    an encrypted DNS query through the tunnel, passing only on a data reply —
    shape-only replies cannot tell a dummy-key handshake from a real one.
    Discovery stays shape-only; verified scans badge their results.
  • Client-side validator module (ui/src/lib/validators.ts) mirroring
    the server grammar: inline field errors gate both scan start and profile
    save; pasted endpoint/CIDR lists normalize on blur (blank and duplicate
    lines dropped); the ranges importer classifies with the same rules.
  • Results-table UX: tri-state aria-sort headers, 44 px touch targets,
    bulk-copy live region, skeleton rows, filtered/true-empty states, and a
    render cap for very large scans.
  • Grammar fixture (tests/fixtures/grammar-cases.json) pinning
    CIDR/endpoint/SNI parsing for the server tests and the UI mirror.

Fixed

  • UI phase-2 starts were rejected (422). The form sent lowercase
    fragment presets (off) while the API contract is Off/Light/… —
    every UI-initiated phase-2 scan failed before it began. The form now maps
    to the wire form (saved profiles keep loading) and fragment errors route
    to the fragment field.
  • Pasting a wgconf now auto-enables real-keypair verification (previously
    only the file-import path did), so verify-mode scans are never silently
    run with the dummy key.
  • Mode flip no longer wipes restored port selections on hydration or
    cross-mode profile loads; each import button targets its own field;
    failed stop/cancel requests surface in the UI; ETAs humanize past 60 s.

Fixed

  • SSE /api/events no longer closes idle connections after replaying the
    previous run's terminal: a browser EventSource held open between scans used
    to reconnect-storm (connect -> replay -> close -> reconnect) and could miss
    the next run entirely. A replayed terminal is now context only; the stream
    ends on the next run's live terminal or an unrecoverable lag. Graceful
    shutdown additionally bounds its wait (5 s grace) so deliberately-open idle
    streams can never hang process exit.

Fixed

  • Stale validation message. "Fix the highlighted fields to continue."
    no longer lingers after the user corrects the field — the message clears
    live while typing and stays cleared after Next.
  • Forward tab clicks were silently swallowed until validation passed.
    Tabs now navigate freely in both directions; validation errors paint on the
    target step when it is shown.
  • Mode switch kept the previous mode's default port (e.g. 2408 carried
    into CDN mode). The wizard now shows an inline amber warning when a custom
    port differs from the mode default and never silently rewrites custom
    values; untouched defaults still auto-correct (443 ↔ 2408).
  • Rate stat showed "0/s" when idle. The rate is now hidden whenever no
    scan is running and appears only during a live scan.
  • "URIs" download option was offered when nothing could be exported
    (WARP mode without configs). The option is now disabled in that state.
  • Heading hierarchy: "Generate WARP config (optional)" was an H4 under an H2
    (skipped H3); it is now an H3.

Install cf-scanner 0.7.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/qmahyar/cf-scanner/releases/download/v0.7.0/cf-scanner-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/qmahyar/cf-scanner/releases/download/v0.7.0/cf-scanner-installer.ps1 | iex"

Download cf-scanner 0.7.0

File Platform Checksum
cf-scanner-x86_64-pc-windows-msvc.zip x64 Windows checksum
cf-scanner-x86_64-pc-windows-msvc.msi x64 Windows checksum
cf-scanner-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
cf-scanner-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum