All notable changes to this project will be documented in this file.
- More ESPMemoryMonitor examples: manual sampling without the background task and a panic-hook sketch that captures a final snapshot.
MemoryMonitorConfig::usePSRAMBuffersto prefer PSRAM for monitor-owned long-lived containers viaESPBufferManagerwith automatic fallback to normal heap.- Routed additional hot-path transient monitor scratch containers (threshold/task events, task-status capture, scope/tag threshold staging, and window analytics scratch vectors) through the same
ESPBufferManagerpolicy. - Added internal/public model separation for history/scope/tag/task/leak state: monitor internals now use PSRAM-policy-aware storage models and convert to existing public API structs at return/callback boundaries.
- Switched sampler task lifecycle to native FreeRTOS task handling (
xTaskCreatePinnedToCore/vTaskDelete). - Added lifecycle teardown tests in
test/test_memory_monitor_lifecyclecovering pre-initdeinit(), idempotent teardown, re-init, and destructor behavior.
- Mark the failed-allocation hook instance pointer as static so Arduino builds compile the callback correctly.
deinit()now releases monitor-owned container capacity (not just entries), fully clears runtime state, and resets config/runtime flags for deterministic re-init.- CI now pins PIOArduino Core to
v6.1.19and installs the ESP32 platform viapio pkg install, restoring PlatformIO compatibility with the currentplatform-espressif32package.
1.0.0 - 2025-12-02
- Initial ESPMemoryMonitor library with snapshot API, background sampler task, and ring-buffer history for DRAM + PSRAM.
- Per-region warn/critical thresholds with hysteresis and callbacks.
- Optional fragmentation scores, min-ever-free tracking, per-task stack high-water marks, and failed-allocation event hook.
- Basic Arduino example sketch demonstrating sampling and alerts.