RELEASE NOTES
BMCLI Release Notes
Review new features, refinements, and fixes before upgrading, or trace changes in an earlier release.
- Latest entry
- v1.2.1
- Releases
- 9
- Change items
- 63
01BMCLI v1.2.1Latest entry10
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.
02BMCLI v1.1.011
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.
03BMCLI v1.0.61
Fixed daemon-backed channel lifecycle and host logging/replay lifecycle/status
commands so `--format=json` always returns one bounded JSON document.
04BMCLI v1.0.58
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.
05BMCLI v1.0.415
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.
06BMCLI v1.0.36
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.
07BMCLI v1.0.25
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.
08BMCLI v1.0.14
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.
09BMCLI v1.0.03
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.