Changelog
Changelog
Every release of Flint, from the first to the latest.
v1.9.0 latest
- Feature: System disk protection — flash, wipe and clone now refuse to target the drive the OS is running from.
- Feature: Counterfeit-drive detection (
--check-fake) — a non-destructive 1 MiB capacity probe flags inflated/fake USB drives; a destructive write-back verify mode confirms mismatches. Available for bothflashandbackup. - Feature: CLI flash flags —
--partition-scheme gpt|mbr,--filesystem fat32|ntfs|exfatand--write-mode raw|file-copy. - Feature: Linux ISO auto file-copy — the
autowrite mode now switches to file-copy for Linux ISOs (Rufus parity) so Windows Explorer can read the drive contents. - Feature: Auto-eject after write — optional setting that ejects the drive automatically when a flash succeeds.
- Feature: UI polish — layered gradient depth, per-page top-bar titles, recessed settings panels, and a collapsible flash queue with a count badge.
- Fix:
backupno longer crashes with aNameErrorwhen--confirmis omitted. - Fix:
--check-fakeis now honored byflash(it was documented but previously only implemented forbackup). - Fix: Removed the intersecting sidebar/top-bar divider lines and tightened recessed panel borders and padding.
- Fix: Tip-overlay fade-out during teardown no longer races on a
RuntimeError. - Perf: Win32 kernel32 argtypes/restype are wired once at import instead of on every call.
- Test: 38 new tests covering counterfeit detection, the CLI system-disk guard and new flags, Linux ISO write-mode and auto-eject; 415 passing.
v1.8.0
- Feature: Auto-extract compressed images — drop .zip, .gz, .xz, .zst files directly onto the flash zone; decompresses transparently before hashing and writing.
- Feature: Dark/light theme auto-switch — new "Auto (system)" option in settings polls the Windows registry every 5 s and applies the matching theme.
- Feature: SHA-256 hash clipboard copy — computed hash shown on the verify page with a one-click "Copy" button.
- Fix: Decompression failure now surfaces a user-visible error instead of silently falling through to hash the raw (invalid) file.
- Fix: Verify speed and ETA use a rolling 0.5 s window instead of the full write duration — eliminates inflated initial speeds and stale ETAs.
- Fix: Five silent
except Exception: passblocks in window.py now log at debug level. - Fix: Regression script now restores dialog function patches in a finally block — prevents test-ordering contamination.
- Refactor: Consolidated Win32 helpers into
core/deviceio.py— single source of truth for kernel32, constants and device primitives across writer, verify, wipe, benchmark, bootcheck and drives. - Test: Updated monkeypatch targets for new import paths; 377 tests passing.
v1.7.0
- Fix: Unbuffered I/O for raw device writes — uses FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH matching Rufus behavior, eliminating ERROR_NOT_READY from Windows write cache flushing to sleeping USB devices.
- Fix: WipeWorker now retries transient USB errors (ERROR_NOT_READY, ERROR_GEN_FAILURE, ERROR_ACCESS_DENIED, ERROR_NOT_CONNECTED) with exponential backoff — prevents half-wiped drives from flaky connections.
- Fix: Filecopy verify skips source byte comparison — the drive has a filesystem layout, not a raw image, so byte comparison was meaningless.
- Fix: Backup deletes partial file on error or cancellation — prevents leftover corrupted images.
- Fix: flash-all now passes --bypass-tpm to UsbWriter and reads --verify flag.
- Fix: Hash drive transient error set now includes ERROR_ACCESS_DENIED for read retries.
- Fix: fits_on_drive uses raw size_bytes when available — fixes up to 1 GB rounding error on capacity checks.
- Fix: DrivePoller CoInitialize wrapped in try/except for resilience.
- Fix: _open_drive shows "run as administrator" hint on ACCESS_DENIED.
- Fix: Done bar buttons now context-aware — "Flash again" hidden for wipe/backup/clone operations.
- Fix: Decompress temp cleanup uses os.unlink + os.rmdir instead of shutil.rmtree.
- Fix: _decompress_zst catches ImportError and raises user-friendly OSError with install instructions.
- Fix: Error messages skip generic "locked/removed" advice when retry-specific text is already present.
- Refactor: Removed dead sample_mode code path from verify_device (87 lines of unreachable code).
- Test: Updated backup cancel and filecopy verify tests for new cleanup and skip_source_iso behavior.
v1.6.0
- Fix: Transient USB write errors (ERROR_NOT_READY, etc.) are now retried with exponential backoff — prevents mid-write failures on flaky USB ports.
- Fix: Improved error messages for USB device errors with actionable recovery suggestions.
v1.5.0
- Feature: Windows 11 TPM bypass — patch boot.wim to skip TPM, Secure Boot and RAM checks (
--bypass-tpm) - Feature: TPM bypass auto-switches to file-copy mode when raw DD is selected
- Feature: TPM bypass works with both normal file-copy and Windows To Go writes
- Docs: Rewrote marketing copy across website for a more professional tone
- Fix: Consistent nav order across all pages, added missing Compare/Changelog to About page
- Fix: Download buttons on homepage point to download page; prominent download button on download page
v1.4.0
- Feature: Compressed image support — flash .zip, .gz, .xz, .zst files directly
- Feature: CLI
--dry-runflag to preview flash/wipe/clone without writing - Feature: Bash and Zsh shell completions (
flint completions --shell bash) - Feature: Sampling verify mode for faster sanity checks
- Feature: Drive speed benchmark (
core/benchmark.py) - Feature: Drive health percentage in scan results
- Feature: Resume interrupted writes with
--resumeflag - Feature: ETA display during image hashing in the GUI
- Feature: Windows toast notifications on write completion
- Feature: Export flash history as CSV
- Feature: Settings export/import for fleet standardization
- Feature: Configurable log level in settings
- Feature: Ctrl+Enter keyboard shortcut to start flash
- Feature: Drag-and-drop .sha256 files onto the main window
- Feature: CLI
--copy-reportflag to copy flash summary to clipboard - Feature: CLI
--verboseflag for bad-block scan detail - Fix: Platform guard blocks pip install on non-Windows with clear error message
v1.3.0
- Feature: Parallel drive detection with ThreadPoolExecutor for faster scanning
- Feature: Time-based progress bar smoothing for small images
- Feature: Expanded error messages with WinError code translation
- Feature: Interactive CLI reference page with search
- Feature: Comparison page (Flint vs Rufus vs Etcher vs Ventoy)
- Fix: ETA jitter reduction via rolling-window median
- Test: 13 new unit tests for native C writer error paths
v1.2.2
- Fix: Include flint.ico in pip package for correct window icon
v1.2.1
- Fix: Handle extensionless pip scripts and graceful elevation failure
v1.2.0
- Feature: Branded CLI with logo, status icons and scan timing
- Feature:
--yesconfirmation bypass and improved CLI diagnostics - Feature: Quiet mode, tables, and enhanced result output styling
- Refactor: Rename list row index variable
v1.1.2
- Fix: Audit fixes for fleet mode, quoting, CI, packaging
- Fix: PyPI publish only downloads sdist+wheel artifacts (not flint.exe)
- Fix: Rename release.yml to publish.yml (match PyPI trusted publisher)
- Fix: Always declare ext_modules in setup.py (cibuildwheel needs platform wheel)
v1.1.1
- Feature: Whole-drive scan (
flint scan) - Feature: Queue improvements and
--skip-flashed
v1.1.0
- Feature: Pip distribution as
flint-usbon PyPI - Feature: Single release workflow for parallel exe + pip releases
- Fix: Audit findings — ISO dir walk truncation, CLI exit-code and ndjson contract, false success after failed verify, version hijack
- Fix:
ensure_elevatedlaunches argv[0] directly when it is a .exe - Fix: Add
py-modules = ['main']so main.py is installed by pip
v1.0.4
- Feature: Rewrite headless mode around modern top-level commands (CLI overhaul)
- Fix: Detour to the CLI on any argument so unknown commands cannot open a window
- Fix: Restore the drive chip text — ignored-policy labels collapsed to zero width
v1.0.3
- Feature: Fleet mode — write queued images to every plugged-in drive
- Feature: CLI drive list command, FLINT progress contract, NIST method documentation
- Feature: Verification-grade design language — chamfered panels, mono readouts, palette parity
- Fix: Give the packaged windowed exe real stdio for
--climode - Fix: Enforce computed minimum size so no content clips at the resizing floor
- Fix: Clamp restored window geometry into the visible screen, center when fully off-screen
v1.0.2
- Feature: Wipe read-back verification and one-click export diagnostics
- Feature: In-app reference manual and help tips (hover bubbles)
- Feature: GUI flash queue with sequential multi-image flashing
- Feature: Backup, clone, wipe standards (zero/NIST/DoD), checksum sidecars, headless CLI
- Feature: Themed popups for all outcomes; migrate every dialog to FlintDialog
- Feature: Settings page with theme/expert/tray options; close-to-tray now opt-in
- Feature: Custom multi-resolution app icon (window, tray, exe)
- Fix: Sidecar mismatch detection, CLI verify sizing, type-check gates
v1.0.1
- Feature: Expert mode on by default, animated toggles, scrollable verify page
- Feature: Inline help buttons with reference anchors, expert-mode UI tests
- Feature: Robust post-write verification with SHA-256 compare and bad-block scan
- Feature: Buffered writes with configurable chunk size and optional native writer
- Feature: Hybrid ISO detection heuristics and raw-write enforcement in UI
- Feature: Persistence and Windows To Go support with ISO detection
- Feature: Expert partition & boot options with file-copy mode
- Fix: Keep expert toggle visible when turning expert mode off
- Fix: Resolve all audit findings (verify desync, cancel flows, drive mapping, packaging, CI)
v1.0.0
- Initial release of Flint — Windows bootable USB and ISO writer
Get the latest version
Download Flint v1.9.0 — portable, no install required.