AmpNexus

Changelog

What's new in AmpNexus

Release notes pulled straight from our delivery pipeline — every entry ships with verified quality and performance data.

255 releases

  1. stableFirmware

    PlugStream Firmware 1.69.1

    PlugStream 7PlugStream 22
    Qualitytests: 1013 passedcoverage: 73% line· 73% branch

    1.69.1 (2026-09-15)

    Bug Fixes

    • thermal: never build a readiness frame on the temp_case task (3c329aa)
  2. stableService

    Ocpp Core V1.6 – 2.26.3

    OCPP Core v1.6
    Qualitytests: 298 passed

    Bug Fixes

    • ocpp: stop platform outbox retry storm (d2b03e9)
    • ocppcore: answer OCPP calls before running reconcile follow-ups (4c0d43f)
    • ocppcore: align runtime overrides and apply message effects once (af0e0a6)

    Features

    • readiness: carry the die temperature, thermistor mV and current pair (02397ae)
    • hardware-telemetry: carry the payload opaquely so readings stay firmware-only (eeaaf85)
  3. stableService

    Ocpp Core V2.1 – 2.26.3

    OCPP Core v2.1
    Qualitytests: 298 passed

    Bug Fixes

    • ocpp: stop platform outbox retry storm (d2b03e9)
    • ocppcore: answer OCPP calls before running reconcile follow-ups (4c0d43f)
    • ocppcore: align runtime overrides and apply message effects once (af0e0a6)

    Features

    • readiness: carry the die temperature, thermistor mV and current pair (02397ae)
    • hardware-telemetry: carry the payload opaquely so readings stay firmware-only (eeaaf85)
  4. stableService

    Ocpp Core V2.0.1 – 2.26.3

    OCPP Core v2.0.1
    Qualitytests: 298 passed

    Bug Fixes

    • ocpp: stop platform outbox retry storm (d2b03e9)
    • ocppcore: answer OCPP calls before running reconcile follow-ups (4c0d43f)
    • ocppcore: align runtime overrides and apply message effects once (af0e0a6)

    Features

    • readiness: carry the die temperature, thermistor mV and current pair (02397ae)
    • hardware-telemetry: carry the payload opaquely so readings stay firmware-only (eeaaf85)
  5. stableFirmware

    PlugStream Firmware 1.69.0

    PlugStream 7PlugStream 22
    Qualitytests: 1013 passedcoverage: 73% line· 73% branch

    Features

    • telemetry: publish which slots of the CT window read at the midpoint (568ca40)
    • thermal: cap a unit with an unusable temperature sensor at 16 A, not 8 A (f598e61)
    • readiness: publish the ESP32 die temperature and raw thermistor mV (f03d2d6)
    • readiness: publish the line current both ways from one ADC window (2bb4863)
    • telemetry: publish the raw sensor evidence during a bounded capture (3936c93)
    • hal: per-unit calibration gain for the outlet CT (7e25220)
    • telemetry: publish the line CT's raw sample window (6eaa256)

    Bug Fixes

    • recovery: stamp a recovered Ended with the last journaled event's time, not boot time (24acdde)
    • meter: integrate the interval that actually elapsed, not a nominal second (b9fc323)
    • metering: timeSpentCharging counted milliseconds as seconds (488379e)
    • ocpp: defer client certificate alarms until clock readiness (eff317a)
    • adc: place each result in the sweep it belongs to, and publish the window's shape (33a4e20)
    • websocket: answer CSMS calls ahead of the station's in-flight call (6d088ea)
  6. stableService

    Chargepoint API – 1.58.1

    chargepoint-api
    Qualitytests: 372 passed
    Verified performance (7d)p95: 71msp99: 93msavailability: 99.92%errors: 0.08%

    Bug Fixes

    • mode-sync: send one effective value per runtime variable (d0e27b1)

    Features

    • thermal: store and serve the ESP32 die temperature and raw thermistor mV (177ea37)
    • hardware-telemetry: store the capture as jsonb and serve its history (76cfdd3)
  7. stableService

    Device API – 1.23.0

    device-api
    Qualitytests: 92 passed
    Verified performance (7d)p95: 41msp99: 70msavailability: 100.00%errors: 0.00%

    Features

    • catalog: seed the outlet CT calibration control (ce86a01)
    • controls: expose the hardware telemetry capture under Device Controls (3e3679d)
  8. stableService

    Service API – 1.14.0

    service-api
    Qualitytests: 101 passed
    Verified performance (7d)p95: 3msp99: 38msavailability: 100.00%errors: 0.00%

    Features

    • support unassigned worklists and live Resend attachment CDN (546f00b)
    • notifications: add fresh tenant-scoped message context (a947a5e)
    • notifications: project revisioned delivery results (5def0c7)
    • inbound: add bounded receiving and reply-token primitives (f58e551)
    • email: project reconciled outcomes and resolve tenant senders (9db973a)
    • inbound: add internal enquiry pilot and explicit email replies (7c4101d)
    • inbound: review all sender classes without granting customer access (be79cc1)
    • email: add tenant-bound CC contribution and reply threading (5637696)
    • sla: add versioned business clocks and scoped SLA search (dbda735)
    • attachments: expose tenant-scoped metadata for support UI (cbd7acc)
    • queues: add scoped member reads and verified self enrollment (ee9235d)
    • service: import inbound attachments and extend support context contracts (8c6cc5a)

    Bug Fixes

    • security: remove unused legacy S3 TLS dependencies (731cb6a)
    • security: upgrade Service Rust toolchain and patched S3 SDK (4c39808)
    • inbound: bound CID retrieval and clarify routing trust (b28747a)
    • inbound: qualify expired lease cleanup by tenant and provider (b6ff6b4)
    • email: exclude public support addresses from CC contributors (c9297c6)
    • email: fence stale CC drafts with private case revisions (8d99938)
    • inbound: normalize Resend reply references and forwarding hops (58575cc)
    • auth: require SLA read scope on search projections (38d47d3)
    • sla: bind item responses to the concrete route context (8d06157)
  9. stableService

    Ocpp Orchestrator – 1.20.0

    OCPP Orchestrator
    Qualitytests: 290 passed

    Features

    • hardware-telemetry: carry the payload opaquely so readings stay firmware-only (eeaaf85)
    • readiness: carry the die temperature, thermistor mV and current pair (02397ae)
  10. stableService

    Ocpp Gateway – 2.23.0

    OCPP Gateway
    Qualitytests: 290 passed

    Features

    • hardware-telemetry: carry the payload opaquely so readings stay firmware-only (eeaaf85)
    • readiness: carry the die temperature, thermistor mV and current pair (02397ae)
  11. stableService

    Tariff API – 1.9.0

    tariff-api
    Qualitytests: 129 passed
    Verified performance (7d)p95: 52msp99: 76msavailability: 100.00%errors: 0.00%

    1.9.0 (2026-09-09)

    Features

    • sync: fetch a month of rate history so past half-hourly sessions can be priced (4964d9c)
  12. stableService

    Reporting API – 1.18.6

    reporting-api
    Qualitytests: 126 passed
    Verified performance (7d)p95: 50msp99: 79msavailability: 100.00%errors: 0.00%

    Bug Fixes

    • cost-analysis: price Octopus tariffs, keep rate history, report unpriced energy (06f7e7b)
    • reporting: derive transaction energy from the row's meter delta, and repair stored values (09c80c1)
    • transactions: a session ends at its unplug, never after the next session starts (f6cf590)
    • cost-analysis: read a session's meter window to the first sample after its end (684b44c)
    • summary: return total session minutes and open sessions (b087dfe)
    • statistics: energy-weighted bucket power; success rate over settled sessions only (0a8a62c)
  13. stableService

    Notification Service API – 1.20.0

    notification-service-api
    Qualitytests: 95 passed
    Verified performance (7d)p95: 14msp99: 23msavailability: 100.00%errors: 0.00%

    Features

    • service: deliver frozen CC reply envelopes safely (13111c5)
    • service: expire private email copies after 30 days (d4ac554)
    • service: integrate authorized public reply delivery (9379556)
    • service: persist email intake with audited recovery (5b98490)
    • service-email: reconcile uncertain provider outcomes without resend (607a5f5)
    • service-email: authorize explicit agent-reviewed replies (3529f48)
  14. stableService

    Tenant API – 1.29.0

    tenant-api
    Qualitytests: 161 passed

    Features

    • internal: resolve active email subjects within one tenant (7ecd74a)
    • identity: add active tenant-scoped subject lookup (9b3f473)
  15. stableFirmware

    PlugStream Firmware 1.63.2

    PlugStream 7PlugStream 22
    Qualitytests: 967 passedcoverage: 73% line· 73% branch

    Bug Fixes

    • ci: consume host schema coverage without Python in Rust image (fc7bac1)
    • ci: initialize only declared firmware target submodules (ee0a76a)
    • ocpp: enforce schema coverage for every implemented message (2f9a872)
    • ocpp: exclude invalid TLS profiles from reconnect retries (7d2c7e9)
    • ocpp: preserve transaction delivery and negotiated payloads (10b1809)
    • ocpp: protect credentials and refresh secure reconnects (3d87225)
    • ocpp: reconcile password recovery with current firmware (08b9253)
    • ocpp: retry registration and report truthful command outcomes (3e96b11)
    • ocpp: scope dynamic schedules and send unconfirmed event streams (67ff50b)
    • reconnect after accepted OCPP password changes (da2a903)
    • ocpp: certificate inventory and install speak OCPP 2.0.1, not just 1.6 (e5ff33f)
    • ocpp: pre-deployment sweep of the certificate paths - four more 2.0.1 gaps (f2ca242)
    • security: remove the dead CpCertificates class and its hardcoded passphrase (40fe0b4)
    • firmware: OTA download trust must survive a CSMS root install (b5c3144)
    • network: a 4-way handshake timeout is not proof of a wrong password (841d9c8)
    • network: accept full-size (16KB) TLS records - restore spec-compliant RX buffer (52f2077)
    • network: stop dialing the CSMS with no uplink IP; give sys_evt headroom (bdbca4f)
    • security: one verified root bundle for every TLS client; BLE stays down during OTA (11f50f7)
    • system: sys_evt stack 6144 -> 8192 - observed peak now 4376 bytes (b50a76e)
    • network: dial the preferred-profile retry from an internal-stacked task (426ada4)
    • network: widen the WS RX frame pool 3 -> 6 slots (b4514a6)
    • ocpp: bound per-message response maps with FIFO eviction (90576ed)
    • ocpp: bound the remaining v201 per-message state maps (b26f5f7)
    • security: GetLog uploads trust the verified root bundle, not the counterfeit (8ffda32)
    • ocpp: SignCertificate CALL went out with an empty action - map + guard + test (64bbce5)
    • ocpp: keep the PSRAM-stacked monitor task out of NVS - first profile-3 connection boot-looped the unit (c05e711)
    • tasks: close the "PSRAM stack touches flash" class - static audit, runtime attribution, two more paths fixed (489b1ff)
    • websocket: run certificate CALLs on the flash worker, not ws_rx; give ws_rx its full 9K (2d70605)
    • config: stop sdkconfig.defaults contradicting the build (a4476ea)
    • ocpp: default MessageTimeout to 30 s, not 5 (11f1a4a)
    • ocpp: report the real meter cadence, and let the CSMS set it (962d0dd)
    • websocket: stop the TX path compounding its own pressure (3c67bbf)
    • journal: rebuild an oversized idle offline journal, as the sensor journal does (293426b)
    • journal: trim superseded acked rows at ack time, bounding an open session's file (65094a2)
    • ocpp21: actually wire the tariff store Authorize needs, and gate the class (461b255)
    • ocpp21: NotifyPeriodicEventStream was never actually sent (7cd1035)
    • ocpp: ChangeAvailability never worked - wrong fields, and it cut drivers off (2d22541)
    • ocpp: ChangeAvailability read the wrong field names and rejected everything (2e784c0)
    • ocpp: honour the Reset type and evseId instead of discarding them (eaa7099)
    • ocpp: negotiate the OCPP subprotocol instead of assuming it (39f2466)
    • ocpp: preserve native status snapshots and binary authorization (153e7bd)
    • ocpp: refresh live status after native transaction replay (fee8b93)
    • ocpp: retain log request context and gate journal readiness (93c6e88)
    • ocpp: stop emitting and reading keys the schemas do not define (2a6b55d)
    • preserve transaction event lifecycle and retry connector status (c1589e3)
    • websocket: send Basic authentication in the initial handshake (63ea921)

    Features

    • ocpp: make security profile 3 (mutual TLS) actually usable - cert-auth foundations (35f883b)
    • ocpp: move CSR generation to a dedicated PSRAM worker task (7f11ede)
    • ocpp: SessionIndicator.v1 - trusted session-completion progress on the LEDs (3b01bf6)
    • bluetooth: move BLE stack start/stop onto a dedicated worker task (4a707e7)
    • ocpp: retry the preferred certificate profile (2090dc4)
    • security: database becomes the single source of TLS trust (55198de)
    • security: seed only the Let's Encrypt roots (a6a23c5)
    • security: bundle the announced ISRG successor roots (YE/YR) (6fc95e1)
    • security: client-certificate renewal supervisor (cert-auth Phase 2) (8330efa)
    • security: EC P-256 client keys - the backend mandates it (closes G7) (465b6ad)
    • ocpp: report stored network profile slots via the device model (9913579)
    • ble: release the BLE controller memory when the CSMS disables Bluetooth - RebootRequired + idle reboot (92f48b5)
    • charging: CSMS-settable maximum charge current, and stop the pilot rounding up (d425147)
    • charging: name the binding ceiling in limitSource (3b5a164)
    • charging: report site load management separately from the power mode (2eedc81)
    • ocpp21: advertise the two 2.1 capabilities this station actually has (07a2021)
    • ocpp21: enforce the transaction limits this station can measure (5137608)
    • ocpp21: honour a charging profile's offline validity, and stamp dynUpdateTime (954928e)
    • ocpp21: honour ChargingScheduleType.useLocalTime, which costs nothing here (9643989)
    • ocpp21: honour SetVariableMonitoring.periodicEventStream (2f8ea9a)
    • ocpp21: honour the two fields AuthorizeResponse gained in 2.1 (a602bb2)
    • ocpp21: indicate web payment on the LEDs, and fix two message directions (df21355)
    • ocpp21: match a signed certificate to the CSR that asked for it (1dd6a9d)
    • ocpp21: name the signing root on SignCertificate, derived rather than guessed (158a473)
    • ocpp21: per-slot basic-auth credentials on SetNetworkProfile (7bf5205)
    • ocpp21: pull dynamic schedule updates instead of only receiving them (b1fb5d1)
    • ocpp21: report costDetails, and timeSpentCharging which was never filled in (ac66c99)
    • ocpp21: report eventNotificationType and maxElements (989afc7)
    • ocpp21: report the cost breakdown as chargingPeriods (5ba81cc)
    • ocpp21: stagger schedule period starts with randomizedDelay (7796ebf)
    • ocpp: implement GetCertificateChainStatus over CRL (a63f3e5)
    • ocpp: implement GetReport, and stop discarding CostUpdated (8960e8e)
    • ocpp: implement OCPP 2.1 dynamic schedules (6d1bb08)
    • ocpp: implement OCPP 2.1 periodic event streams (48b4b1a)
    • ocpp: implement OCPP 2.1 tariffs (5a4dd70)
    • ocpp: speak OCPP 2.1 alongside 2.0.1 (d2b764c)
    • ocpp: add native 1.6J adapter and durable transaction delivery (5dbab96)

    Performance Improvements

    • ram: turn the Wi-Fi IRAM speed optimisations off - ~32 KB of internal RAM back (44a1d61)
    • db: route SQLite's allocator to PSRAM (f8cef97)
  16. stableService

    Ocpp Core V1.6 – 2.24.0

    OCPP Core v1.6
    Qualitytests: 287 passed

    Bug Fixes

    • ci: compile all OCPP core variants on feature branches (5efe050)
    • ocpp: ingest OCPP 2.1 event streams without CALL responses (4374a15)
    • ocppcore: let forced full audits claim for stations parked in manual_attention (69b21c0)
    • ocpp: support one manual portal OTA from Pending recovery (f1dfc00)
    • ocpp: unblock native authentication and security builds (cd355e4)
    • admit credential-free connections into Pending review (a8ed5c4)
    • ocpp: avoid dead-lettering malformed v16 data transfers (6281547)

    Features

    • add manual OCPP Pending credential recovery (a0bdec9)
    • ci: version OCPP components independently (c5d3c55)
    • ocpp: preserve telemetry and security operations for native 1.6J (377e607)
  17. stableService

    Ocpp Core V2.1 – 2.24.0

    OCPP Core v2.1
    Qualitytests: 287 passed

    Bug Fixes

    • ci: compile all OCPP core variants on feature branches (5efe050)
    • ocpp: ingest OCPP 2.1 event streams without CALL responses (4374a15)
    • ocppcore: let forced full audits claim for stations parked in manual_attention (69b21c0)
    • ocpp: support one manual portal OTA from Pending recovery (f1dfc00)
    • ocpp: unblock native authentication and security builds (cd355e4)
    • admit credential-free connections into Pending review (a8ed5c4)

    Features

    • add manual OCPP Pending credential recovery (a0bdec9)
    • ci: version OCPP components independently (c5d3c55)
    • ocpp: preserve telemetry and security operations for native 1.6J (377e607)
  18. stableService

    Ocpp Gateway – 2.21.0

    OCPP Gateway
    Qualitytests: 287 passed

    Bug Fixes

    • ci: compile all OCPP core variants on feature branches (5efe050)
    • ocpp: ingest OCPP 2.1 event streams without CALL responses (4374a15)
    • gateway: prefer ocpp2.1 when a station offers more than one version (1492493)
    • ocpp: route Pending OTA through the shared platform queue (8f4e8fa)
    • ocpp: support one manual portal OTA from Pending recovery (f1dfc00)
    • ocpp: unblock native authentication and security builds (cd355e4)
    • admit credential-free connections into Pending review (a8ed5c4)
    • recognize trusted ingress TLS for Pending recovery (0a62518)
    • correct firmware update payloads and surface charger rejections (2c6b27d)

    Features

    • add manual OCPP Pending credential recovery (a0bdec9)
    • ci: version OCPP components independently (c5d3c55)
    • ocpp: preserve telemetry and security operations for native 1.6J (377e607)
  19. stableService

    Ocpp Core V2.0.1 – 2.24.0

    OCPP Core v2.0.1
    Qualitytests: 287 passed

    Bug Fixes

    • ci: compile all OCPP core variants on feature branches (5efe050)
    • ocpp: ingest OCPP 2.1 event streams without CALL responses (4374a15)
    • ocppcore: let forced full audits claim for stations parked in manual_attention (69b21c0)
    • ocpp: route Pending OTA through the shared platform queue (8f4e8fa)
    • ocpp: support one manual portal OTA from Pending recovery (f1dfc00)
    • ocpp: unblock native authentication and security builds (cd355e4)
    • admit credential-free connections into Pending review (a8ed5c4)
    • correct firmware update payloads and surface charger rejections (2c6b27d)

    Features

    • add manual OCPP Pending credential recovery (a0bdec9)
    • ci: version OCPP components independently (c5d3c55)
    • ocpp: preserve telemetry and security operations for native 1.6J (377e607)
  20. stableService

    Ocpp Orchestrator – 1.18.0

    OCPP Orchestrator
    Qualitytests: 287 passed

    Bug Fixes

    • ci: compile all OCPP core variants on feature branches (5efe050)
    • initialize recovery metadata in orchestrator commands (2f13eb8)
    • ocpp: ingest OCPP 2.1 event streams without CALL responses (4374a15)
    • ocpp: support one manual portal OTA from Pending recovery (f1dfc00)
    • admit credential-free connections into Pending review (a8ed5c4)

    Features

    • add manual OCPP Pending credential recovery (a0bdec9)
    • ci: version OCPP components independently (c5d3c55)
    • ocpp: preserve telemetry and security operations for native 1.6J (377e607)
  21. stableService

    Ocpp API – 2.15.0

    ocpp-api
    Qualitytests: 180 passed
    Verified performance (7d)p95: 58msp99: 81msavailability: 100.00%errors: 0.00%

    2.15.0 (2026-09-06)

    Features

    • ocpp: accept native 1.6J security commands (0083e8b)
    • route manual Pending recovery commands (c055871)
  22. stableService

    Service API – 1.5.0

    service-api
    Qualitytests: 67 passed

    Features

    • email: add signed Resend receipt quarantine (75120ee)
    • add core service persistence foundation (7130dca)
    • bootstrap service API repository (6bc5bbe)
    • auth: add signed tenant authorization foundation (0d17fc0)
    • work-items: add CRUD and workflow APIs (ebbe10a)
    • messages: add tenant-safe work-item timeline (e73a266)
    • queues: add tenant-safe assignment and collaboration (68106fb)
    • attachments: add tenant-safe quarantined upload pipeline (bc8e72a)
    • events: add confirmed outbox and transactional inbox delivery (0916349)
    • links: add validated relationships and references (0f24fc5)
    • search: add tenant-safe filters and SQL summaries (34b7f0e)
    • notifications: define tenant-safe customer audience policy (bf36491)

    Bug Fixes

    • ci: defer image automation until gitops delivery (eff9084)
    • ci: use mirrored database test image (d1c5515)
    • health: report readiness after database recovery (04a06dd)
    • events: accept existing external reference relation metadata (f29d8c3)
  23. stableService

    Chargepoint API – 1.56.3

    chargepoint-api
    Qualitytests: 368 passed

    Bug Fixes

    • status: preserve pending registration until an accepted boot (9f8cedf)
    • judge firmware readiness freshness on receive time, not device timestamp (353beb0)
    • ocpp: expose Pending recovery presence for manual OTA (eedc6c5)

    Features

    • persist charge point certificate inventory (5554a70)
    • enrich certificate inventory with well-known factory roots (63786c2)
    • device network profile management (slots, priority, verdicts) (4e5f2ee)
    • approved network endpoint allowlist for profile pushes (2b3a402)
    • populate network profiles from the device (GetVariables sync) (6b107d6)
  24. stableService

    Notification Service API – 1.15.0

    notification-service-api
    Qualitytests: 86 passed

    Bug Fixes

    • ci: use internal Rust mirror for notification image builds (8965771)

    Features

    • service: add inactive durable email delivery foundation (4ec2fd2)
    • link firmware update notifications to release notes (f5348a6)
  25. stableService

    Device API – 1.21.1

    device-api
    Qualitytests: 92 passed

    Bug Fixes

    • preserve device credentials during Pending review (9563435)

    Features

    • add Bluetooth device model control (b80a2d7)
    • add OCPP message timeout and attempts device model controls (11f0a1b)
    • add maximum charge current device model control (33c18a7)
    • add the meter reporting interval device model control (b1b6573)