Repository navigation
v2.2.4
Date: 2026-03-28
Previous release: v2.2.3
Summary
Maintenance release: internal package boundaries, validation and tests, and Makefile/CI alignment with full-module typecheck. No intentional user-facing CLI or output-format breaks.
Highlights
- Packages: MCAP binary codec, load, and CSV/JSON/blocks exports live in
internal/mcap; client stdout (text/json/table) and MCAP-derived strings / frequencies helpers stay ininternal/format. Command wiring and formatted runs useinternal/runner; typed CLI errors and exit mapping useinternal/errs. - Config & discover: Modbus URL and SunSpec base parsing are split into focused
internal/confighelpers (with tests). Discover adds--force-large-scanandMODBUSCTL_DISCOVER_FORCE_LARGEto allow probing beyond the default unique-host safety cap. - Modbus & MCAP: Capture path resolution, cancel-aware sleeps, clearer layered address validation, multi-unit pooling where applicable; MCAP export paths share load/stitch/sort; fingerprint partial vs failed outcomes and related types are clearer.
- Server: Static handler FC gating and replay comments tightened.
- Tooling:
make compile(go build ./...) feedslint/lint-ci;checkruns fmt, lint, lint-ci, vet, test, and coverage;check-legacyhelps catch duplicate root packages. golangci-lint usesissues.new: falseandrun.tests: trueso the linter sees the same typecheck surface as a full build (see.golangci.yml). - Tests & docs: More unit tests across config, modbus, types, format/mcap, and CLI fatals; exit codes remain documented in
docs/exitcodes.md.
Upgrading
- Same CLI and
--formatcontract as v2.2.3 unless you rely on discover host-count limits—in which case use--force-large-scanwhen you intentionally need a larger probe.