zsv v1.4.3
Features
- compare --json-redline — new redline mode for zsv compare: emits a self-contained JSON document fully
describing a comparison result. Adds --include-unchanged-rows and --include-tolerated flags, plus a
published schema.jsonc and user/technical/integration docs (#630). - Duplicate column names now handled gracefully across sql, sheet, and flatten (previously a repeated
header crashed zsv sql with a double-free) (#631):- sql: new --rename-duplicate-columns flag (a,b,a → a,b,a_2); strict mode emits an actionable error
naming the column and positions. - sheet: sqlfilter and pivot disambiguate duplicates automatically.
- flatten: ensures unique output column names by default.
- sql: new --rename-duplicate-columns flag (a,b,a → a,b,a_2); strict mode emits an actionable error
- WASM/emscripten SIMD optimizations (new zsv_scan_simd_wasm.h engine path) (#598).
Bug fixes
- Fix integer underflow vulnerabilities in the parser; performance verified unchanged vs 1.4.0 (#612).
- sheet: fix invalid command-line flag handling (#609).
- Fix app/Makefile bad CFLAG when INCLUDEDIR is empty (#618).
Internal / CI / docs
- Improved fuzzing: libFuzzer + MSan + OSS-Fuzz CI infrastructure (#612).
- help: command catalog is now a structured {name, synopsis} table; static usage moved into header (#627,
#628). - Windows/MinGW: mutually-exclusive curses selection; vendor + bootstrap PDCurses 3.9 (#629).
- CI: fix FreeBSD deprecation, bump cross-platform-actions 1.0→1.2 (#617, #621, #626); CodeQL
category/job-name/exclude updates. - Docs: add vulnerability reporting procedure to README (#614).
- Remove obsolete benchmark script and workflow (#606).