Changelog
What's new in AmpNexus
Release notes pulled straight from our delivery pipeline — every entry ships with verified quality and performance data.
179 releases
- stableService
Device API – 1.1.1
device-apiQualitytests: 19 passedcoverage: 5% line1.1.1 (2026-03-06)
Bug Fixes
- rabbitmq: recover publisher channel and fail health on broker loss (8054f48)
- stableService
Ocpp API – 2.2.1
ocpp-apiQualitytests: 140 passedcoverage: 7% line2.2.1 (2026-03-06)
Bug Fixes
- rabbitmq: reconnect and retry on broker connectivity loss (952cb23)
- stableService
Meter API – 1.4.1
meter-apiQualitytests: 59 passedcoverage: 15% line1.4.1 (2026-03-06)
Bug Fixes
- rabbitmq: add reconnect and retry for publisher failures (354d67e)
- stableService
Reporting API – 1.4.1
reporting-apiQualitytests: 6 passedcoverage: 2% line1.4.1 (2026-03-06)
Bug Fixes
- health: verify rabbitmq connectivity in readiness check (53198b7)
- stableService
Chargepoint API – 1.4.0
chargepoint-apiQualitytests: 50 passedcoverage: 16% line1.4.0 (2026-03-06)
Bug Fixes
- ci: trigger builds when release and ci configs change (d1389c8)
- dedupe security event ingest (56291d1)
- expose performance test endpoint under v1 (837e4ea)
- health: validate rabbitmq publish channel readiness (078a92f)
- include websocket.event in default AMQP bindings (bb5c463)
Features
- add security event severity mapping (8c30e6f)
- amqp: handle platform ocpp events (373d95a)
- ingest and expose security events (8240464)
- ingest canonical websocket events (e795b64)
- status: persist derived device status (466122f)
Performance Improvements
- optimize API latency by fixing N+1 queries and adding tenant API caching (da7f0d4)
- stableService
Ocpp API – 2.2.0
ocpp-apiQualitytests: 140 passedcoverage: 7% line2.2.0 (2026-02-25)
Bug Fixes
- add portal requests endpoint (86af008)
- allow platform admin command dispatch (84b144e)
- ci: auth for git deps in docker build (dee5e6d)
- ci: bash for docker build auth (e53d371)
- ci: ensure cargo path in docker build (00042bd)
- ci: use git-patched rust-ocpp for shared (11abe6c)
- ci: use job token for deps (02f6809)
- models: update SecurityEventFilter tests for offset (a8743de)
- paginate security events (3da2329)
- use composite primary key for rules migration (a56e93f)
- use https for jolt-ocpp deps (a751d37)
Features
- add rules support (c908ac2)
- ocpp: publish version-aware platform commands (1d2c003)
Reverts
- ci: require gitlab token (6619ac0)
- stableService
Reporting API – 1.4.0
reporting-apiQualitytests: 6 passedcoverage: 2% line1.4.0 (2026-02-25)
Bug Fixes
- avoid moving env in amqp tests (0265a8d)
- move TransactionUpdate enum and remove unnecessary clones (769f6aa)
- remove legacy amqp handlers (d695335)
Features
- reporting-api: consume platform.ocpp.events transactions (025c834)
Performance Improvements
- add Redis connection pooling and optimize performance handler (4e52d89)
- increase db connection pool for load test performance (dd7f69c)
- stableService
Firmware API – 1.4.1
firmware-apiQualitytests: 173 passedcoverage: 7% line1.4.1 (2026-02-25)
Bug Fixes
- rabbitmq: recover closed AMQP channel and retry operations (04babef)
- stableService
Meter API – 1.4.0
meter-apiQualitytests: 59 passedcoverage: 15% line1.4.0 (2026-02-25)
Bug Fixes
- allow platform admin meter SSE (a1cca9f)
- allow tenant_global meter sse (5ff4f11)
Features
- meter-api: consume platform.ocpp.events meter values (c60d3d8)
- stableService
Device API – 1.1.0
device-apiQualitytests: 19 passedcoverage: 5% line1.1.0 (2026-02-25)
Features
- add setup-existing endpoint for field device imports (8a42dde)
- stableService
Firmware Orchestrator – 1.1.0
firmware-orchestratorQualitytests: 12 passedcoverage: 4% lineBug Fixes
- ci: inline orchestrator changes rules for valid gitlab config (266c0b2)
- ci: remove skip-ci release message from semantic-release commits (35e711d)
- ci: trigger orchestrator image builds for release and build config changes (646d560)
- db: correct postgres placeholders for enum casts (06fdc0d)
- db: tolerate idempotent ingest inserts (b83c169)
- events: consume fw.device.status telemetry (e073886)
- rabbitmq: auto-reconnect consumer on stream drop (ac271c4)
- rollouts: cast status enums in db updates (af0c1fc)
Features
- rollouts: ingest approval snapshot and allow via rabbitmq (ee52735)
- stableService
Release API – 1.4.2
release-apiQualitytests: 95 passedcoverage: 7% line1.4.2 (2026-02-24)
Bug Fixes
- ci: trigger builds when release and ci configs change (593102f)
- performance overview now includes releases with recent tests regardless of release date (7a9bec3)
Performance Improvements
- add index and concurrent queries for lower list_releases latency (b7c93b6)
- add slow request logging middleware for latency debugging (49e731a)
- optimize db connection pool for lower latency (c89b330)
- stableFirmware
PlugStream Firmware 1.10.2
PlugStream 7PlugStream 22Qualitytests: 127 passedcoverage: 93% line· 93% branchBug Fixes
- evse: move meter reads off esp_timer task (56eddf7)
- ota: clear pending state immediately after boot validation (ac8c194)
- ota: harden boot partition persistence (b59a47a)
- ota: harden resume flow after reboot (3a5008a)
- ci: run staging publish on develop->staging MRs (edd69e3)
- correct SecurityEvent timestamps and quote transaction column (9373bbe)
- defer security events until boot accepted (6cccf4f)
- evse: gate charging start on profile/random delay (4e416f0)
- improve GetTransactionStatus ongoingIndicator (dffea8e)
- network: add connectivity watchdog for WS DNS failures (79c8fa2)
- network: delay captive portal on outages and keep STA reconnecting (eb5365a)
- ocpp: accept DateTime fractional seconds (2ed09f7)
- ocpp: add missing enum string helpers (fedab93)
- ocpp: harden inbound CSMS CALL handling (3bf0a94)
- ocpp: harden SetChargingProfile validation (e5a3f5b)
- ocpp: prune expired profiles and enforce storage cap (595b1e7)
- ocpp: remove duplicate ChargingStateHelper definition (3e37f49)
- ocpp: wire ChangeAvailability, CertificateSigned, GetTransactionStatus (bcfcbf3)
- prevent security_evt stack overflow (6056e45)
- reduce heap churn in VariableRegistry persistence (877deea)
- tests: remove gtest dependency for host tests (94da004)
- websocket: prevent reconnect lockout and keep retrying (a783c09)
- wolfssl: enable OpenSSL-compat APIs for cert utilities (a9acc2d)
- ws: validate inbound OCPP frames (b70c5a6)
- ocpp: encode metering sampled values as numbers (1bd4981)
Features
- add DataTransfer and local auth list support (de1f9dc)
- add handlers for all missing OCPP actions (d6ed9dd)
- enrich security event tech info (91e26af)
- implement CertificateSigned certificate persistence (687df3f)
- implement SetNetworkProfile with NVS persistence (93287fd)
- implement SignCertificate CSR generation (83f92c4)
- led: add connectivity override LED when websocket offline (cc350d7)
- metering: add snapshot + ms timestamps for MeterValues (40fbebd)
- ocpp: add v201 variable monitoring service (675d814)
- ocpp: enrich GetCompositeSchedule response (7662280)
- ocpp: enrich GetTransactionStatus and telemetry (9466195)
- ocpp: enrich NotifyChargingLimit schedule preview (3e2a317)
- ocpp: enrich TransactionEvent metering + cost (397342b)
- ocpp: implement certificate management messages (27cb32c)
- ocpp: implement CertificateSigned message - Phase 1 Complete (v1.3.0) (c66e1b5)
- ocpp: implement ChangeAvailability message (Phase 1 critical stub) (f1f3ada)
- ocpp: implement ClearedChargingLimit message (Phase 1 critical stub) (86199bd)
- ocpp: implement GetTransactionStatus message (v1.2.0) (9595076)
- ocpp: implement OCPP 2.0.1 reservation system (37f2712)
- ocpp: implement v201 Variables schema + validation (89dbd9d)
- ocpp: persist variable monitoring across reboot (10f6fdc)
- ocpp: validate charging profiles before install (afe8cfb)
- ocpp: wire v201 variable monitoring and events (692bb5b)
- ota: preflight reboot, resume pending update, and clean firmware.bin (bb9af83)
- ota: send SecurityEvent before preflight reboot (a6424ee)
- persist auto token and send SecurityEventNotification (f63a7a6)
- scripts: add automatic serial logging to monitor scripts (c7eb8ba)
- security: persist CP cert and enable mutual TLS (880dbff)
- stableFirmware
PlugStream Firmware 1.9.0
PlugStream 7PlugStream 22Qualitytests: 39 passedcoverage: 89% line· 89% branchBug Fixes
- firmware: harden OTA validation and rollback handling (7b65d37)
- prevent LED standby light spam when override is active (df4ba4e)
- websocket: ignore late CALLRESULTs (80c3bdc)
- add BLE notification failure diagnostics and tracking (13abc23), closes #10
- add stabilization delay for socket lock state feedback (4354c1e)
- Added esp-idf selection in ci pipelines (35671a8)
- address ArduinoJson deprecations and cleanup includes (8ef1175)
- allocate StaticTask_t in internal RAM for PSRAM tasks (55a9573)
- avoid abort on bt controller mem release (7908234)
- avoid aborts on ledc duty updates (154aeca)
- avoid printf formatting for ocpp payload logs (041ecde)
- bluetooth,wifi: WiFi scan on-demand + DNS graceful shutdown (ada1d92)
- bluetooth: avoid NimBLE stop crash (1fa9f29)
- bluetooth: avoid nimble_port_deinit crash during OTA (c75a65c)
- bluetooth: prevent os_mbuf memory leak on notification failures (709f129), closes #2
- bluetooth: prevent WiFi scan task memory leak and dangling pointer (4b045d3), closes #3 #4 #3 #4
- bluetooth: stop leaking WiFi scan tasks and avoid NimBLE double-init (f31730b)
- ci: change releases MR target from master to staging (3cf6352)
- ci: correct firmware binary filename in GitLab releases (6578ffb)
- ci: remove redundant changes rule to prevent pipeline skipping (109cff6)
- ci: send portal-friendly release notes to API (e6610da)
- clear default netif when Ethernet loses IP (55be7ca)
- correct firmware download log format (e087b88)
- correct firmware download task stack sizing (0f7614c)
- correct firmware stack watermark logging (5d3c4a3)
- correct inverted socket lock state GPIO polarity (ba8c7aa)
- correct JSON field parsing and persist provisioning data to NVS (cc3ce6f)
- correct ota task stack sizes (idf bytes) and reduce hash stack usage (161f4ae)
- correct socket lock timing to match PCB design requirements (be40eb5)
- correct stack sizing for ws/adc tasks (e4052a5)
- correct task stack size units for firmware tasks (a29b21d)
- correct task stack sizing and reduce monitor heap churn (9a6af00)
- correct voltage measurement using peak-to-RMS method (8066d80)
- defer ota install task to ensure internal stack (2b7be2e)
- disable network stats due to RAM constraints (e7c583d)
- downgrade socket lock state feedback mismatch to warning (a8b1da9)
- Eliminate database memory leaks and prevent SQLITE_BUSY errors (e4ca9a9)
- emit cp healthy event after evse health check (30d3498)
- enlarge ocpp_monitor stack to 12kb (45fe171)
- enlarge ws_rx internal stack to avoid overflow (32d9d01)
- ensure installed status emitted by auto-marking validation (652a991)
- free RAM before download task and retry with smaller stack (a784952)
- guard bluetooth stop against double calls (db0c8de)
- hal: resolve critical HAL safety and logic issues (2761737)
- handle empty result from database integrity check (a46c9a1)
- handle ESP_ERR_NOT_SUPPORTED in OTA partition state check (e97c488)
- handle WiFi state properly when starting captive AP (20094f1)
- harden captive portal wifi transitions (df0bcae)
- harden ethernet init and default netif set (c2b510d)
- harden led driver and smooth boot rainbow (fed226d)
- harden websocket/logging and PEN fault persistence (7ad3ec3)
- improve low-memory resilience and non-critical init (1f91a06)
- increase DNS catchall task stack from 4KB to 8KB (4f42851)
- increase NTP task stack to 6KB to prevent overflow (aca6956)
- Increase stack size for CP Activation task via Bluetooth (8fdbd86)
- increase task stack sizes to prevent overflows (a1b6cce)
- increase task stacks for large OCPP message safety (e5d2e98)
- increase WebSocket buffer size for large OCPP messages (0fc665d)
- install immediately when installDate not provided (c2db347)
- install immediately when schedule time is past (ce79778)
- keep websocket running during ota (92ad191)
- led: keep firmware update override active (63e95ad)
- make adc continuous isr cache safe (9cfd8d1)
- make coverage script compatible with CI lcov (21c1b5b)
- make sntp init idempotent (ffac48c)
- miscellaneous improvements and stack optimizations (e2c1a35)
- move stacks to PSRAM and reduce internal heap pressure (7e8144e)
- ocpp,websocket: harden rx and remote stop handling (4265798)
- ocpp: critical OCPP message handling improvements (3d7e7f1), closes #2 #3 #4
- ocpp: implement CALLERROR processing and message ID validation (cca0d51), closes #1 #5
- only set Ethernet as default interface when it has IP (49f513e)
- optimize processedMessages with deque+set hybrid for O(1) lookup (825e21a), closes #9
- ota: add robust download validation and error handling (2266778)
- ota: prevent timer memory leaks and improve resource management (d314a51)
- ota: replace statvfs with ESP-IDF littlefs API for filesystem space check (92dd99f)
- pause ble during ota to free ram (80627f2)
- pause websocket during OTA and shrink download buffers (419f14e)
- prevent download task stack overflow (663bc9b)
- prevent duplicate BootNotification on reconnect and fix LED state (0dadebb)
- prevent duplicate BootNotification on WebSocket reconnect (9821f75)
- prevent PSRAM task from accessing flash/NVS (crash fix) (090b631)
- properly allocate task stacks in PSRAM instead of internal RAM (bb195f6)
- reduce LogWorker stack usage by removing std::regex (34c4141)
- rely on evse health event for ota validation (3de20f8)
- remove blocking wait for Ethernet IP and set priority (bdb94c9)
- remove coverage flags from firmware build (43e8cdd)
- remove deadlock in MeterManager saveToNvs (a577b2c)
- remove nested mutex locks causing TLS memory exhaustion (cd0ae49)
- remove redundant esp_wifi_connect() call causing race condition (6e49b45)
- remove stray escape sequences in LED control (118e864)
- resolve critical meter accuracy issues (adf224b)
- resolve EVSE control loop bugs and improve code quality (ca79184)
- Resolved stack overflow on Bluetooth WiFi Network scan with large amount of Access Points. (aae93f5)
- Resolved web socket failure on Activation Task processing (2ec7205)
- Resolved websocket reconnect on Bluetooth CP Activation (17564c4)
- reuse persistent NVS handle to reduce flash overhead (aef1a80), closes #8
- revert flash I/O tasks to internal RAM (9aaef4c)
- revert NTP task to internal RAM - stack overflow on cleanup (608a051)
- route EVSE and meter NVS writes through main loop queue (67baf92)
- run install on separate high-stack task (921b86d)
- run websocket RX task on internal stack to avoid flash cache assert (9f65e84)
- start mdns only with softap clients (b42685c)
- update firmware root CA for api.s3.ampnexus.net (1b3d287)
- use iram tx stack and rfc3339 firmware times (5ff67c3)
- use PSRAM for NTP task stack to preserve internal RAM (c9acc13)
- WebSocket race condition in message processing (3be366c)
- websocket: add mutex protection for wsclient to prevent race conditions (5392152), closes #6
- websocket: connect CSMS after network up (87094f2)
- websocket: harden tx queue under stalled CSMS (5b036b6)
- websocket: prevent processedMessages memory leak (48ae5c8), closes #1
- websocket: resolve critical safety and threading issues (b68183a)
- ci: Trigger CI Build (1ec1744)
- ci: Trigger CI Build (13c6e6f)
- ci: Trigger CI Pipeline (b805338)
- release: Trigger CI Build (f414203)
- release: Trigger CI Build (3134d9e)
- release: Trigger CI Build (a0dbffa)
- release: Trigger CI Build (d8cd5bc)
- Trigger CI Build (b8e3c69)
- Trigger CI Build (3d884f1)
- Trigger CI Build (b354592)
- Trigger CI Build (8668559)
- Updated CI Dispatcher to remove reference to branch for templates (6f05af0)
- Updated CI Pipeline template name to use correct version (655ab84)
- Updated CI Pipelines to use jolt-builder image (e1783d9)
- Updated image url (6202868)
Features
- ocpp: implement GetLog upload + LogStatusNotification (1432df5)
- ocpp: implement TriggerMessage + harden stub responses (38bc156)
- ocpp: phase 1 charging profiles and limit notifications (b016774)
- account ota traffic in system monitor (c78cbdb)
- add boot reason watchdog for accurate OCPP 2.0.1 BootNotification (4785dce)
- add DEBUG_SYSTEM_MONITOR flag and network stats display (05513b2)
- add environment-based URL configuration for builds (a775f2d)
- add network statistics tracking to SystemMonitor (6f5d462)
- add OCPP monitoring task for CPU optimization (4e1b1b6)
- add SystemMonitor for CPU/RAM/task statistics (9b8100e)
- add WebSocket TX task for event-driven processing (58e8594)
- Added additional network tracking to support Onboarding wizard via Bluetooth (8d29b7a)
- Added additional WiFi event handling (d0d2508)
- Added catch2 test support with coverage calculations (871de5f)
- buffer firmware download in psram before writing (eec8beb)
- ci: add staging branch with RC releases (a97edec)
- firmware update LED override and install gating (01ed1bd)
- implement event-based OTA validation system (15659de)
- implement NVS write queue for PSRAM task safety (32e8f89)
- Implement OCPP 2.0.1 registration status handling (Pending/Rejected) (a067d4c)
- implement real power metering with power factor correction (c3936cc)
- improve WiFi connection reliability with reconnection logic (2dbfb17)
- integrate OCPP and WebSocket tasks into main loop (abede10)
- keep Bluetooth running during OTA updates (1d4d687)
- load firmware TLS CAs dynamically from CA store (e1d16ad)
- load websocket TLS CAs dynamically from CA store (29e368b)
- make NTP sync non-blocking with automatic periodic updates (f43aa5d)
- move 5 major tasks to PSRAM freeing 20KB internal RAM (6a1f220)
- ocpp: improve charging profile support (gating + throttling) (2a5790f)
- Phase 1 PSRAM task optimization - security events and monitoring (457bfad)
- Reworked checkCpProvisioned into a single timeout-governed loop that continues retrying provisioning while the device remains unprovisioned (b06da83)
- Updated Bluetooth Manager to support Mobile App Adoption (dfbddd4)
- Updated PEN fault detection and alerting (a031a94)
- Updated PEN fault to use Voltage RMS to avoid [secure] positives. Changed NTP to only block when network connection available (ae70de4)
- wifi: Persist long WiFi creds correctly, dedupe scan results in HAL, drop forced reboots on WiFi connect. (8c1197c)
Performance Improvements
- add thread-local JsonDocument pooling to OCPP handlers (1d551c2)
- enable BSS segment external memory (PSRAM) (f700a98)
- increase NimBLE stack to 8KB for better BLE throughput (2e1e2bc)
- move ADC and DNS tasks to PSRAM (0a0bc1a)
- move OCPP task to PSRAM with security profile caching (e56ae60)
- move WebSocket RX task to PSRAM with increased stack (1b19c91)
- optimize NTP task memory usage (edc551c)
- optimize WebSocket header caching and DNS polling (01a0386), closes #11 #12 #11 #12
- reduce TLS buffer sizes to free internal RAM (c5927a4)
- websocket: optimize string allocation in OCPP message hot path (b834c61), closes #5
- wifi: reduce DNS task stack size from 16KB to 8KB (ef6fe8b), closes #7
- stableService
Device API – 1.0.1
device-apiQualitytests: 17 passedcoverage: 5% line1.0.1 (2026-01-07)
Bug Fixes
- expose performance test under /device/v1 (7cf8193)
- stableService
Ocpp API – 2.1.1
ocpp-apiQualitytests: 138 passedcoverage: 8% line2.1.1 (2026-01-07)
Bug Fixes
- add v1 performance test alias (8a266be)
- expose versioned performance-test endpoint (5d52d3a)
- make performance test endpoint resilient to missing tables (66acd32)
- stableService
Firmware API – 1.4.0
firmware-apiQualitytests: 173 passedcoverage: 7% line1.4.0 (2026-01-07)
Bug Fixes
- add v1 alias for performance test (1ce56f2)
- align device.tags with postgres json column (7fc8e1f)
- allow platform global to query tenant_global devices (3402557)
- allow platform/global device validation for tenant_global devices (7df4a23)
- cast rollout device status enum for fw.device.status (f8778f4)
- enable distribute preview + sync tenant changes (0e25617)
- events: consume fw.device.status from ocpp core (bab1af5)
- handle duplicate model mappings in firmware uploads (7626af1)
- prevent allow request from downgrading rollout status (6134b8e)
- releases: persist groups_any as json (817c98d)
- return device_count in groups list (edc48f6)
- rollouts: make rollout device index unique (de12cbc)
Features
- add cohort preview endpoint (e4db7c1)
- add delete cancelled rollout endpoint (9f42460)
- Add endpoint to list devices for tenant (6c88ee5)
- allow SKU-based model mapping for compatibility (63b6d12)
- enrich rollout responses with product and version labels (77218ae)
- firmware: add rollouts list endpoint (1c49515)
- populate rollout cohort totals and canary (a1a18ef)
- retention: delete withdrawn firmware objects after 7d (e26594f)
- rollouts: add stats REST and SSE endpoints (da0b082)
- rollouts: enroll devices and execute via rabbitmq (2f2fae0)
- stableService
Meter API – 1.3.1
meter-apiQualitytests: 56 passedcoverage: 14% line1.3.1 (2026-01-04)
Bug Fixes
- expose performance test under meter v1 (0b76c92)
- stableService
Tenant API – 1.4.1
tenant-apiQualitytests: 174 passedcoverage: 5% line1.4.1 (2025-12-29)
Bug Fixes
- add v1 performance test alias (cc0a464)
- stableService
Ocpp Integration – 1.1.1
ocpp-integrationQualitytests: 5 passedcoverage: 1% lineOcpp Integration – 1.1.1 (2025-12-29)
Release notes not available.
- stableService
Tariff API – 1.2.2
tariff-apiQualitytests: 92 passedcoverage: 11% line1.2.2 (2025-12-29)
Bug Fixes
- expose performance test under tariff v1 (d4dbe33)
- stableService
Reporting API – 1.3.1
reporting-apiQualitytests: 1 passedcoverage: 0% line1.3.1 (2025-12-29)
Bug Fixes
- add v1 alias for performance test (64699ab)
- stableService
Release API – 1.4.1
release-apiQualitytests: 95 passedcoverage: 7% line1.4.1 (2025-12-29)
Bug Fixes
- expose performance test under releases v1 (7b09aed)
- stableService
Device API – 1.0.0
device-apiQualitytests: 16 passedcoverage: 5% line1.0.0 (2025-12-29)
Bug Fixes
- add semantic-release configuration for GitLab (3ddfb02)
- device-api: accept legacy mac_address on setup (c96476b)
- update route path syntax for Axum 0.7+ compatibility (fd34e69)
Features
- add version endpoint and Dockerfile metadata (10e3de8)
- Move health endpoints under /device/v1 (8440c51)
- stableService
Auth API – 1.5.0
auth-apiQualitytests: 85 passedcoverage: 34% line1.5.0 (2025-12-29)
Features
- Added chargepoint setup endpoint to public exclusion (5073ee3)
- auth-api: add /v1/health alias (7bcae86)