3.1.0 (2026-03-15)
๐ Features
- ocpp2: integrate all 8 missing OCPP 2.0.1 outgoing commands into UIService/BroadcastChannel pipeline (#1718) (f1aba94)
- ocpp2: OCPP 2.0.1 Core certification readiness (#1712) (efa6368)
๐ Bug Fixes
- charging-station: add try/finally guards to lifecycle methods (b3827b5)
- clear OCPPAuthServiceFactory cached instance on station delete (6956e43)
- deps: update all non-major dependencies (#1706) (dff65e2)
- migrate JSR dependency from legacy npm:@jsr/ to native jsr: protocol (e7941db)
- ocpp16: fix StopTransaction unit schema and ChargingSchedule field name (1ca41bf)
- ocpp16: harmonize error logging โ log silent catches, demote business violations to warn (93e17b3)
- ocpp16: ocpp 1.6 conformance audit โ 8 findings remediated (d35e48b)
- ocpp20: add missing JSDoc @param description for hashAlgorithm in getInstalledCertificates (e2751d8)
- ocpp20: clean up VariableManager mappings cache on station stop (7f1aee5)
- ocpp20: implement proper M04.FR.06 guard via isChargingStationCertificateHash (47ced3b)
- ocpp20: isolate VariableManager overrides per station (77bd1a0)
- ocpp20: ocpp 2.0.1 conformance audit โ 17 findings remediated (429cdbe)
- ocpp20: remediate 4 conformance findings from cross-audit (4266b93)
- ocpp20: remediate all OCPP 2.0.1 audit findings (#1726) (3a6e89f)
- ocpp2: add missing outgoing schema entries for certificate commands (56b925b)
- ocpp: use per-subclass singleton map to prevent version collision (3de193f)
- renovate: enable Poetry dependency detection for OCPP2 mock server (525e1df)
- tests: remove stale optional chaining on now-required variableAttribute (3d00af1)
โจ Polish
- ocpp16: track diagnosticsStatus and extract composite schedule helper (4d2ca3a)
- ocpp20: extract named constants for hardcoded sleep/timeout values (adfe8d4)
- ocpp20: isolate per-station state with WeakMap instead of singleton properties (47cdf2b)
- ocpp2: convert incoming request fire-and-forget patterns to event listeners (#1715) (12018fd)
- ocpp: extract responseHandler and incomingRequestHandler into base classes (ef86be6)
- ocpp: harmonize JSON schema payload validation across OCPP stacks (0c8357f)
- ocpp: remove dead parseJsonSchemaFile overrides and standardize validation (dbf3c82)
- replace 54 unsafe error casts with instanceof guards (2bcd07d)
๐งช Tests
- ocpp16: add comprehensive OCPP 1.6 unit and integration tests (#1710) (9acc5a0)
- ocpp: add schema registration coverage tests for OCPP 1.6 and 2.0 (293588f)
- remove 24 tautological enum value assertion tests (ba22a74)