What's New1.6.4 - Subscription API – 1.6.4

PlugStream Change Logs

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)
  • migration: add dry-run customer tenant device migration tool (14856a4)
  • adoption: push staged activation codes to chargers (SetClaimCredentials) (6793bfb)
  • migration: record the activation code each charger holds (f399e68)
  • tools: backfill factory activation codes, dry run by default (90ba6b7)
  • events: say why a charger changed tenant on device.tenant_changed (9c8449d)
  • devices: let a platform admin move a stock charger into another tenant (4aa1279)

Performance & SLO

SLO Targets:
P95 < 200msP99 < 500msAvailability > 99.5%
Loading performance data...
Performance Tests:
Passedstaging test
10/2/2026
P95: 103.8msP99: 186.5msHTTP errors: 0.01%Availability: 99.99%95,060 requests
HTTP statuses: 0: 7 · 200: 95,053