3.2.0 (2026-03-21)
๐ Features
- ocpp2.0: implement Authorize request, fix double TransactionEvent(Started) (c13a409)
- ocpp2: fix authorization conformance gaps (C10, C12, C01, C09) (#1735) (cde7fa6)
- ui: add OCPP 2.0.x command support to Web UI (#1734) (4aeb171)
๐ Bug Fixes
- auth: address audit findings in OCPP auth abstraction layer (382bd67)
- auth: log actual station OCPP version in RemoteAuthStrategy (9691126)
- auth: replace phantom spec references in source code comments (d6e48eb)
- deps: update all non-major dependencies (#1739) (3f56c2b)
- lifecycle: clear auth service on template reload and station reset (3e8dea4)
- merge duplicate node:process imports in Utils.test.ts (1eec746)
- merge duplicate type imports from same barrel module (1c3e3e9)
- ocpp2.0: add proper response handlers for certificate commands + handler coverage tests (273f539)
- ocpp2.0: align VARIABLE_REGISTRY spec conformance and log severity (3c1c342)
- ocpp2.0: guard BroadcastChannel MeterValues for both VERSION_20 and VERSION_201 (9c0fcfd)
- ocpp2.0: inject offline:true in sendTransactionEvent offline path per E04.FR.03 (2f582de)
- ocpp2.0: make stopRunningTransactions version-aware for OCPP 2.0 (ede4205)
- ocpp2.0: pass real transactionId to buildMeterValue for energy accumulation (dcfc120)
- ocpp2.0: reset transaction sequence number before new transaction per E01.FR.07 (3c431b0)
- ocpp2: add AvailabilityState defaults and allow self-transitions (8733ff9)
- ocpp2: audit TransactionEvent โ state ownership, deauthorization, meter values (710db15)
- ocpp2: handle transaction lifecycle in TransactionEvent response (0af4959)
- ocpp2: revert UI transaction handlers to simple passthrough (7b543d0)
- ocpp: keep StopTransactionRequest as 1.6 wire type, narrow reason via indexed access (c6aac34)
- ocpp: remove type re-export from services barrel (31852b7)
- ocpp: replace this.constructor.name with moduleName in base class logs (442b290)
- preserve EVSE and connector IDs in configuration persistence (7040dac)
- prevent tests from polluting production log files (03ef74b)
- use exception barrel instead of direct module imports (351d607)
- use truncateId consistently for all user identifiers in logs (e786699)
โจ Polish
- auth: remove ocppVersion from UnifiedIdentifier (f369b3a)
- auth: replace adapter Map with single adapter per station (7021e25)
- build version-agnostic OCPP transaction primitives in service layer (#1741) (72993ba)
- harmonize barrel usage across all test files (6656593)
- ocpp2.0: parameterize requestStopTransaction triggerReason and stoppedReason (a488b92)
- ocpp2: centralize payload construction and eliminate duplication (285b9a3)
- ocpp2: consolidate dual-path request architecture into single path (a91da1d)
- ocpp2: extract buildTransactionEvent as standalone function, remove dead context code (0d25748)
- ocpp2: harmonize and condense audit comments to match existing FR style (fe485a8)
- ocpp2: remove redundant getTxUpdatedInterval wrapper (6eba8ca)
- ocpp2: use enum values instead of string literals in variable registry (6f0f52f)
- ocpp: add rawPayload bypass, resolve minimal params in buildRequestPayload, fix test types (0d54c72)
- ocpp: consolidate cross-stack types and harmonize barrel imports (0dd1fb1)
- ocpp: harmonize buildRequestPayload switch structure across versions (db04e15)
- ocpp: make buildRequestPayload the authoritative builder for all commands (2f82688)
- ocpp: use buildStatusNotificationRequest helper in TriggerMessage handlers (f611016)
- test: remove duplicate certificate passthrough tests from broadcast channel (6d3a996)
๐งช Tests
- auth: fix OCPP spec references and remove duplicated tests (20912b5)
- auth: strengthen assertion quality and edge case coverage (4943d4f)
- move truncateId tests from InMemoryAuthCache to Utils (351cccc)
- ocpp: add call chain integration tests for both OCPP stacks (df31480)
๐ Documentation
- update suggested commands and task completion checklist (0894428)