Skip to content

v2.2.4

Choose a tag to compare

@github-actions github-actions released this 28 Mar 18:54

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 in internal/format. Command wiring and formatted runs use internal/runner; typed CLI errors and exit mapping use internal/errs.
  • Config & discover: Modbus URL and SunSpec base parsing are split into focused internal/config helpers (with tests). Discover adds --force-large-scan and MODBUSCTL_DISCOVER_FORCE_LARGE to 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 ./...) feeds lint / lint-ci; check runs fmt, lint, lint-ci, vet, test, and coverage; check-legacy helps catch duplicate root packages. golangci-lint uses issues.new: false and run.tests: true so 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 --format contract as v2.2.3 unless you rely on discover host-count limits—in which case use --force-large-scan when you intentionally need a larger probe.