Releases: BatchLang/Blinter
Releases · BatchLang/Blinter
Release list
v1.1.31
[1.1.31] - 2026-09-22
Changed
- Canonical repository, installer, and security contact are the BatchLang organization and BatchLang@proton.me
- Standalone
blinter.exereports company BatchLang and extracts native files to%LOCALAPPDATA%\BatchLang\Blinter\<version>
v1.1.30
[1.1.30] - 2026-09-20
Fixed
- W063 scopes FOR /F token overflow to the current loop: nested
FOR /F(including@andIF EXISTprefixes) is not treated as outer overflow,echo (does not swallow the next line, andDOinsideIN (...)is not the loop body - W049 still warns when SET assigns a space-only value to a pseudo-environment variable;
SET "errorlevel="remains a valid clear
Changed
- Parenthesis-depth and empty-assignment caches live in parsing with identity-safe keys, so large scripts lint without quadratic scans and without a checkers/parsing import cycle
- Coverage, mypy, pylint (
fail-under=10), and pytest configs drop unused boilerplate; coverage still maps installedsite-packages/blinterintosrc/blinter
v1.1.29
[1.1.29] - 2026-09-20
Changed
- Windows
blinter.exeNuitka builds installcharset-normalizeras pure Python and nofollow unusedssl/socket/wmiextensions so fewer CPython.pydfiles unpack at runtime - Architecture docs cover the x64 onefile extract layout; the README still warns that antivirus may false-positive the standalone exe
v1.1.28
[1.1.28] - 2026-09-17
Added
- Fifteen cmd.exe rules (E043–E047, SEC025, W064–W070, S029–S030) covering
::inside blocks, ELSE on a new line, invalid FOR/IF switches, spaced2> &1, unescaped FOR /F specials, unquoted%CD%, IF wildcards, parse-time%var%after SET in a block,%TIME%space padding, and SET/PATH/PROMPT&&in.batfiles - Corpus fixtures for those rules (274 committed cases)
Fixed
- E046 flags only a space before
&in stream merges (2> &1);2>>&1is valid append-duplication on live cmd - W017 also flags
IF ERRORLEVEL 0(always true for non-negative codes) - E036 also flags
IF EXIT/IF EXITSmisspellings of EXIST - E003 flags a single
=in IF and a missing space before( - W044 flags
SETwith a space before=even without a space after - SEC001 / SEC014 retargeted to unquoted SET /P dataflow and unquoted arguments
Changed
- Pinned batch-spec language SSOT to v0.71.0 (EXIST misspellings, single-equals IF, unknown FOR switches, spaced handle duplication)
- Spec docs, Architecture, and funding metadata match the 274-case corpus; synthetic lint baseline is 25.0s for the extra cmd.exe checks
v1.1.27
[1.1.27] - 2026-09-09
Added
- uv support for install (
uv tool install Blinter,uvx blinter) and development (uv sync --extra dev); CI Python installs use uv. pip remains a first-class path.
v1.1.26
[1.1.26] - 2026-09-07
Fixed
- W036 reads a FOR /F command operand to the parenthesis that balances
IN (, so nested(inside a backquoted command is not treated as a file (#37, #42) - Drive-relative names such as
C:Set-PermissionsandForEach-Object.batare no longer classified as embedded PowerShell (#38, #42) - S010 ignores
CALL/GOTOinside an inlineREMorECHOsegment after&(#39, #42) - P024/P006 count
SETLOCAL/ENDLOCALafter anIFpredicate or&(#40, #42)
Changed
- Pinned batch-spec language SSOT to v0.70.1 (FOR /F usebackq backtick commands keep nested parentheses as data)
- Spec docs, Architecture, and funding metadata match the 235-case corpus
v1.1.25
[1.1.25] - 2026-09-07
Fixed
- PowerShell
Get-/Set-/Write-/New-detection no longer backtracks into hyphenated filenames, and ignores.psm1/.psd1/.ps1xmlscript modules the same way as.ps1 - P024 reports only a second real
SETLOCAL; extraENDLOCALis left to its own rules
v1.1.24
[1.1.24] - 2026-09-07
Fixed
- P024 and P006 no longer treat the word
setlocal/endlocalinside comments as commands, and P024 reports the second realSETLOCAL(#40) - S010 counts labels reached by
if ... goto/calland|| goto, while ignoringgoto/callinside comments or echo output (#39) - Hyphenated filenames such as
set-permissions.batare no longer classified as embedded PowerShell, so per-line rules still run (#38) - W036 no longer treats FOR /F command operands (for example
powershell -NoProfileunder usebackq backticks) as data files (#37)
Changed
- Spec docs, Architecture, and funding metadata match the 231-case corpus
v1.1.23
[1.1.23] - 2026-09-07
Changed
- Windows
blinter.exeNuitka build uses LTO, cached onefile extract, stripped docstrings/asserts, and unused-stdlib nofollow; UPX stays off
v1.1.22
[1.1.22] - 2026-09-07
Changed
- Windows standalone
blinter.exeis now built with Nuitka (scripts/build_exe.py) instead of PyInstaller
Fixed
- Frozen
blinter.exe --versionreads the bundledpyproject.tomlfrom the Nuitka extract layout