1.2.1 [2026-07-31]

- Added first-class Modbus master/client support over native Windows/Linux RTU,
  ASCII, and TCP transports without extending BMAPI or requiring BUSMUST
  analyzer hardware.
- Added coils, discrete inputs, input/holding registers, single/multiple writes,
  File Record FC20/FC21, and FIFO FC24 with strict protocol limits, exception
  reporting, CRC/LRC/MBAP validation, and no automatic write retry.
- Added lightweight Linux Foundation EdgeX Modbus Device Profile YAML/JSON
  import, Device Definition bench import, typed resource/command access,
  RTU/TCP/ASCII device bindings, scaling, bidirectional mappings, byte/word
  order, access/range validation, and readback.
- Added bounded daemon-owned polling with latest/history, freshness, quality,
  gaps, missed deadlines, on-change retention, persistent endpoint connections
  with reconnect, REST/SSE endpoints, OpenAPI, and a Modbus engineering panel
  in the bundled Dashboard.
- Hardened the Modbus service around one persistent session per physical
  endpoint shared by CLI, poll, and Web; added RTU t3.5 timing, wider Linux
  baud-rate support, exact 64-bit values, write-only EdgeX semantics,
  partial-command diagnostics, bounded dynamic history, resumable loss-aware
  SSE, concurrent-stop safety, and typed HTTP error status classes.
- Added independent TCP and PyModbus interoperability peers, POSIX PTY RTU/ASCII
  tests, EdgeX fixtures, Web/daemon integration tests, and full BMCLI hardware
  and real-ECU regression coverage.
- Added a narrowly triggered BMCLI Modbus Skill methodology that keeps protocol
  I/O in BMCLI and general Web authentication, durable storage, uploads,
  reporting, and reverse proxying in surrounding application services.
- Added explicitly authorized installation of approved local F4L2/0083 HPM UF2
  images through `device update <selector> --file=<path> --force`, including
  fixed-block/application-range validation and same-UID/version re-enumeration.
- Fixed Modbus endpoint/session lifecycle, exact numeric conversion, EdgeX
  compatibility, loss-aware polling/SSE behavior, HTTP error mapping, and a
  poll start/stop publication race found during the 1.2 release review.
- Restricted local F4L2/0083 UF2 images to the physical application interval
  `[0x80020000, 0x80100000)` and synchronized the latest BMAPI, LIN schedule,
  replay, updater, and Bamboo build-compatibility baseline from BUSMASTER.

1.1.0 [2026-07-27]

- Introduced first-class XCP on CAN/CAN FD support for ECU measurement,
  calibration, integration testing, and internal-state observation without a
  hardware debugger.
- Added XCP connect/status/disconnect, external seed/key unlock, raw memory
  read/write/checksum, A2L-backed measurement and characteristic access, and
  bounded dynamic DAQ acquisition.
- Added a BMCLI-owned software ISO-TP engine and migrated ISOTP/UDS receive
  paths onto RxBroker cursors so UDS, XCP, raw receive, logging, and Web can run
  concurrently without competing for the BMAPI receive queue.
- Added a tolerant, read-only A2L subset for scalar measurement and calibration
  workflows, including MODULE scoping, byte order, COMPU_METHOD,
  RECORD_LAYOUT, BIT_MASK, access semantics, and duplicate-symbol handling.
- Added the typed `GET/POST /api/v1/xcp` Web boundary for Dashboard and
  automation clients while keeping XCP lifecycle and safety rules in the shared
  BMCLI service layer.
- Standardized XCP DAQ output as one bounded JSON document with a `samples`
  array; JSONL/CSV are rejected before execution instead of producing
  misleading output.
- Hardened XCP endpoint safety: strict numeric/flag validation, raw-write
  dry-run and optional readback verification, bounded/escaped JSON, and
  capability-aware address/DAQ granularity handling.
- Made UDS/XCP response-route collision checks symmetric and cleaned XCP
  sessions, DAQ state, receive cursors and BMAPI handles on reconfiguration,
  channel close, daemon stop and restart.
- Decoupled the DAQ pump from the daemon command lock, protected XCP state with
  its own mutex, and made software ISO-TP timeouts restart for each N_Bs/N_Cr
  protocol phase instead of expiring one whole valid multi-frame transfer.
- Corrected DBC/LDF/A2L registry mutation permissions and documented their
  shared generic unload lifecycle.
- Made `ai status` detect stale installed Skill content byte-for-byte, and
  tightened Skill guidance for missing UDS/XCP bench IDs and complete XCP
  cleanup.

1.0.6 [2026-07-25]

- Fixed daemon-backed channel lifecycle and host logging/replay lifecycle/status
  commands so `--format=json` always returns one bounded JSON document.

1.0.5 [2026-07-24]

- Aligned runtime Help, the command Reference, option validation, examples, and
  machine-readable discovery so automation no longer relies on stale syntax.
- Expanded real-world DBC and LDF compatibility and completed the revised BLF
  reader/writer contract used by recording, replay, conversion, and Web flows.
- Verified physical CAN and LIN online recording and replay with ASC and BLF,
  including the daemon, REST API, engineering console, and Gateway paths.
- Preserved LIN schedule slot phases when translating LDF tables into hardware
  TX tasks, including mixed master-read and master-write schedules.
- Added deterministic local/remote claim and release arbitration for protected
  channel control while retaining compatible shared send and passive receive.
- Improved Gateway session cleanup, BUSOFF recovery, logging lifecycle, replay
  channel mapping, and multi-consumer receive continuity.
- Narrowed the BMCLI AI Skill activation boundary and added lightweight
  application-development guidance without triggering on generic dashboard,
  DBC/LDF, test-methodology, or source-review work.
- Added compatibility regression coverage for supplied DBC/LDF corpora, BLF
  round trips, CAN/LIN online capture and replay, Web, Gateway, and shuffled HIL.

1.0.4 [2026-07-16]

- Replaced the obsolete reverse-`BM_OpenRemote` Gateway path with a direct,
  GWR-compatible UDP control/data server over the daemon's physical handles.
- Added typed REST resources for bench/device inventory, channel statistics,
  logging, replay, remote-BMAPI gateway lifecycle, and bounded firmware checks.
- Added explicit CommandRegistry permissions and parameter type/range/unit/
  mutual-exclusion metadata for runtime discovery and AI clients.
- Added retained duration/byte sizing and per-consumer backlog/gap observability
  to RxBroker and Web metrics.
- Hardened Windows package path symmetry, final-handle project containment, and
  single-setter-group channel PATCH semantics.
- Added a packaged Nginx HTTPS-first profile for trusted Linux browser access
  while BMCLI remains bound to loopback HTTP.
- Fixed daemon logging above slot 15 and idempotent same-value LIN mode updates.
- Fixed Linux daemon startup so bounded JSON remains one document while child
  diagnostics are redirected to the private daemon log.
- Fixed Windows-driven WSL worktree builds to embed the same Git commit metadata
  as release manifests and added Windows/Linux load, HTTPS, and Skill gates.
- Hardened release-check so package lifecycle, runtime, hardware, Web, and Skill
  gates execute the Bamboo package whose metadata matches the release manifest.
- Moved UDS DTC argument validation before BMAPI initialization so invalid
  commands return their stable contract even while hardware is being released.
- Kept release package tests strict while capturing updater JSON and diagnostic
  stderr separately, avoiding false PowerShell NativeCommandError failures.
- Made release-check native tool gates decide success from process exit codes,
  so non-fatal WSL and tool diagnostics on stderr do not abort verification.
- Recognized standard equivalent wording such as "neither authentication nor
  encryption" in the AI gateway safety-boundary release rubric.
- Fixed UDS request parsing so space-form option values such as
  `--channel 10356/1` cannot be appended to the diagnostic payload.

1.0.3 [2026-07-15]

- Added project-local target and bench configuration with multiple named
  networks, nodes, databases, and machine-local channel bindings.
- Added the daemon-owned Web automation service with packaged OpenAPI and an
  engineering console, typed message send, cursor history, SSE/WebSocket raw
  streams, and DBC signal plans.
- Added typed REST lifecycle for daemon channels, engineering databases,
  hardware TX tasks, and message routes without exposing a shell executor.
- Added the per-channel RxBroker so CLI receive, logging, remote BMAPI gateway,
  Web streams, and DBC signal decoding use independent cursors without competing
  for the BMAPI receive queue.
- Hardened bounded JSON, daemon IPC, cross-platform resource paths, Web shutdown,
  package lifecycle, and Claude Code/Codex Skill behavior checks. Uninstall now
  terminates an active package-owned daemon before removing its executable and
  runtime state.
- Added real-browser and configurable multi-consumer soak release gates; Windows
  HIL completed a 30-minute SSE/WebSocket run with exact active-cursor continuity.

1.0.2 [2026-07-15]

- Added capability-aware LIN master/slave message workflows, channel power
  control, and runtime schedule/response management.
- Added physical-device reset and identity-safe generation-3 firmware update
  handling for devices selected by serial number, UID, or channel name.
- Completed DTC request construction, response parsing, action-level Help, and
  public command/alias contract cleanup.
- Added a GWR-compatible CAN FD/LIN UDP gateway for unmodified remote BMAPI
  clients, including mixed-bus logical-to-physical channel translation.
- Verified current Windows and Linux builds, firmware transfer behavior, and
  sequential plus shuffled hardware regression coverage.

1.0.1 [2026-07-13]

- Added verified `bmcli update --check` release discovery and changelist output.
- Added CID-based firmware checks and updates for generation-3 HPM BUSMUST devices.
- Moved the Bamboo deployment implementation into a Git-managed PowerShell script.
- Published BMCLI release notes and SHA-256 metadata with each version manifest.

1.0.0 [2026-07-12]

- Initial product release of BMCLI as an independent BUSMUST command-line tool.
- Supports CAN/CAN FD channel control, message traffic, TxTask, routing, DBC,
  logging, replay, ISO-TP, UDS diagnostics/flashing, checksum, and AutoSet.
- Includes project bench profiles, structured Help/JSON contracts, offline
  packages, update support, and Claude Code/Codex skill integration.
