PlugStream is continuously updated to improve reliability, security, and user experience. This page provides a transparent record of every software and firmware release, including what changed and why it matters.
Latest
Chargepoint API 1.64.0
Chargepoint API – 1.64.0
1.64.0
Tests: passed (631/631)
Service
September 27, 2026
Tags
#chargepoint-api
Chargepoint API – 1.64.0
Bug Fixes
amqp: retry and dead-letter copies drop another publisher's user_id (552489b)
auth: platform support is platform mode plus PLATFORM_ADMIN, not the scope alone (6e6b48c)
customer-migration: refuse chargers that changed hands; never move another user's card; send owed events only while still true (0dbc5bc)
device-move: only a stock charger moves unforced; a forced move leaves the household behind (068a23e)
devices: return-to-stock takes back the household and replaces the claim codes (2894a40)
events: claim, transfer, commission and return-to-stock commit device.tenant_changed to the outbox (bc1e9bc)
ownership: a charger that left a tenant drops out of its ownership register (140e6e1)
notifications: do not push late transaction events as live news (031a12c)
notifications: report a session's energy, not the meter's lifetime register (b7adf29)
amqp: retry a failed delivery once, then dead-letter it instead of dropping it (23c8cd0)
notifications: a late Ended with nothing to sum up still tells the driver the session ended (fa6be88)
notifications: an Ended without a reading reports the energy the row already holds (13be2ea)
readiness: keep currentRmsA / currentPeakMethodA and any new key in the stored payload (70386c8)
transactions: prefer ocpp-core's explicit session energy to the 1.6 Ended special case (e02f174)
adoption: a label code no longer hands over someone else's charger (ac50e0a)
auth: compare the internal token in constant time; refuse empty tokens (d684050)
auth: report the edge identity mode only when serving requests (a8eee73)
auth: verify auth-api's signature on edge identity headers (aac15dc)
cors: send no CORS headers unless CORS_ALLOW_ORIGINS is set (debd7fa)
device-model: send overrides apart from the mode and allow deleting one (697310a)
device-users: assign only real users of the charger's tenant; keep the recorded owner (05cf15a)
devices: stop claim codes leaking through search and sort (e9b383b)
emobility: drop the per-pod OCPI dedupe; republish when a connector changes (04e9f7c)
factory-qa: only the factory identity records QA results, on server time (d83b8b9)
id-tokens: mask card numbers for callers who cannot manage them (9df760c)
ingest: a device upsert never overwrites a rotated adoption or activation code (e19c02e)
ingest: ack a redelivered websocket event instead of dead-lettering it (03c8b07)
ingest: an older readiness or site-control frame no longer overwrites a newer one (d2227cb)
ingest: commit pushes and status refreshes with the state they follow (29a0253)
ingest: compute readiness once per event and publish changes a retry can re-derive (e46d399)
ingest: judge presence at the event's time; push with the stored device id (175b693)
ingest: retry failures through delayed-retry queues for ~30 minutes (e3242b0)
ingest: supervise the consumer, isolate each delivery, report it in health (398d01e)
installer-diagnostics: only a charger's own installer drives its diagnostics (42e6930)
installer: a handover link only redeems the charger's current commission (f7f4fe7)
installer: an installer may re-commission its own unclaimed charger (e2de2d7)
installer: commissioning follows the claim rules (a533933)
installer: one answer for an unknown serial or a wrong code, and a limit on guesses (02d931e)
installer: verify a commission against the charger, and keep drafts to your own ids (a34a1b2)
log-pulls: end finished pulls, store big bundles in batches, hide the token (ba29027)
mode-sync: dispatch off the AMQP consumer and off the settings PUTs (dd38ed6)
mode-sync: hold back only the ChargingType during a charging session (0c92ee9)
mode-sync: retry with a new key per attempt, back off, and stop at needs_attention (3426670)
mode-sync: Smart Charging with no plan yet is synced, not a failure (2d1a862)
network-onboarding: provider credentials and hosts come from a platform allowlist (f0a0eac)
network-profiles: confirm slots before prioritising and keep pushes and syncs apart (b3a22ac)
ocpp: send every command as the station's registered OCPP version (641c7cd)
performance: require the internal token or a signed service identity (2fdea85)
provider-migration: act only on the key's tenant's chargers; let failed operations retry (9add4a4)
publisher: confirm every publish on one reused channel, persistent (e860b9c)
readiness: trust the firmware frame for as long as it is current (a8a2dc0)
schedule: refuse turning the schedule off while Schedule mode is selected (56040b1)
schedule: validate the schedule timezone as an IANA zone (735df7e)
tenant-api-client: percent-encode every id put in a tenant-api path (b6a9d25)
transactions: apply events in stream order, not processing order (d7d4100)
transactions: carry stored metadata forward instead of replacing it (ca9b599)
transactions: close on Available with one guarded UPDATE; sweep only what Available ended (f5609ce)
transactions: one station cannot write another's session; key 1.6 ids by station (98e827e)
mode-sync: selecting the same mode again restarts a sync that gave up (93c9385)
adoption: check claims against the activation code the charger holds (8800f2f)
transfers: address transfer notifications to whoever can act on them (566281b)
id-tokens: a token presented as Central matches its registration of any type (3ed1ef7)
Features
amqp: stamp chargepoint.provisioning messages with the publisher's RabbitMQ user (7dc6ade)
amqp: replay a dead letter by moving it back onto the ingest queue (9092454)
id-tokens: a registry of driver credentials, and the lookup ocpp-core authorises against (6fbbf45)
installer: commission into delegated customer tenants behind a flag (fa33631)