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

OCPP API 2.18.3

Ocpp API – 2.18.3

2.18.3
Tests: passed (664/664)Coverage: 87.5%
Service
October 20, 2026
Tags
#ocpp-api

Ocpp API – 2.18.3

2.18.3 (2026-10-20)

Bug Fixes

  • boost: send the customer boost on three phases [needs product decision] (b39155c)
  • charge-now: refuse a remoteStartId no station profile may take (40aa60b)
  • charge-now: refuse an evseId below 1, as the boost does (86e9739)
  • chargepoint-api: encode a tenant or serial as a path segment, not a form (01c8986)
  • chargepoint-api: never ask about a . or .. tenant or serial (73dc22f)
  • commands: name a command by its OCPP action before any per-action rule (d4e5a96), closes #1 #10 #18 #10 #18 #1 #10 #18
  • config: keep the secrets out of AppConfig's Debug output (25ccb56)
  • consumers: bound every ack and nack so a dropped connection cannot wedge a consumer (41e992b)
  • hardware-config: a PATCH for a charger not held, or not checkable, saves nothing (18bd378)
  • hardware-config: after a failed dispatch, a retry sends every stored change (a98e4e0)
  • managed-charging: answer a Go boost over a ChargeFlow plan with a 400 (9490818), closes #25
  • managed-charging: count each moment of ChargeFlow's tariff windows once (83e4fa7), closes #19
  • managed-charging: encode chargepoint-api and tariff-api path segments (bef9c42), closes #24
  • managed-charging: end a Go boost to the status an accepted clear leaves (58d4a4c), closes #23
  • managed-charging: plan Octopus Go windows in time order, each moment once (1b0eacf), closes #20
  • managed-charging: read a clock-time ready-by as London time [needs product decision] (037567c), closes #15
  • managed-charging: refuse a charging rate that is not positive (cdf8705), closes #22
  • managed-charging: refuse a past departure for the full-service Go plan (71f982a), closes #16
  • managed-charging: refuse non-finite tariff rates and sort rates totally (58c0ae1), closes #21
  • managed-charging: track the clear a provider-managed apply withdraws a plan with (866a43b), closes #26
  • metrics: serve the service's own metrics at /metrics (8431d97)
  • mode: clear a boost on the EVSE it was installed on (44ced3c)
  • mode: expire only the profile rows a stack clear removes (4af34e5)
  • mode: re-send a plan a mode switch cleared from under a boost (e0ea7a0)
  • openapi: stop the server URL at /ocpp so paths resolve once (5f64535)
  • portal-requests: a request the broker refuses is an error, not "queued" (94db959)
  • profiles: refuse an update while the profile's removal is pending (b11ce93)
  • rabbitmq: bound the connect and every publish confirm, and answer health during a reconnect (58375ae)
  • rule-events: an undecodable outbox row no longer holds up every rule event (0921876)
  • rule-events: renew each event's lease before publishing it, so a stale upsert cannot follow its delete (43fb7a3)
  • schedules: key the customer-schedule record by tenant as well as serial (4679243)
  • schedules: record a retried workflow step as the command it sent (4a73846)
  • security-events: redact BasicAuthPassword and AuthorizationKey in techInfo (2fb4e61)
  • session-indicator: a descriptor the reconciler cannot clear goes to the back (b5d60cc)
  • session-indicator: the reconciler retries a clear it could not deliver (5981441)
  • smart-charging: refuse an optimisation no charger could satisfy (7b476df)
  • vehicle-sense: a charger unplug withdraws the vehicle plan while telemetry is stale (9abef75)
  • vehicle-sense: a trigger cannot postpone an overdue evaluation (8ec3f13)
  • vehicle-sense: announce a degradation once, not on every trigger (e20485f)
  • vehicle-sense: requeue a trigger the database could not record (de31105)
  • vehicle-sense: run the flag-off rollback, without consuming triggers (b99555c)

Performance & SLO

SLO Targets:
P95 < 200msP99 < 500msAvailability > 99.5%
Latest (Last 7 Days):
P95: 39.2ms ✅P99: 66.4ms ✅Availability: 100.00% ✅
Worst (Last 7 Days):
P95: 39.2ms ✅P99: 66.4ms ✅Availability: 100.00% ✅
Loading performance data...
Performance Tests:
Passedstaging test
10/30/2026
P95: 39.2msP99: 66.4msHTTP errors: 0.00%Availability: 100.00%100,395 requests
HTTP statuses: 200: 100,395
Passedstaging test
10/27/2026
P95: 19.7msP99: 48.7msHTTP errors: 0.00%Availability: 100.00%101,268 requests
HTTP statuses: 200: 101,268
Passedstaging test
10/23/2026
P95: 23.7msP99: 54.0msHTTP errors: 0.00%Availability: 100.00%100,776 requests
HTTP statuses: 200: 100,776