v0.68.0
What's Changed
New APIs
- feat: bb_power_tps546 — CLEAR_FAULTS re-arm of VIN-UV sag latch (B1-308) by @jgangemi in #485
- feat: expose ota_ready heap-readiness signal on /api/info (B1-300) by @jgangemi in #486
- feat: expose hardcoded constants as Kconfig knobs by @jgangemi in #495
- feat: make httpd task stack size Kconfig-configurable (B1-273) by @jgangemi in #525
- feat: add AUTOREGISTER opt-in path for bb_temp, bb_mqtt_info, bb_led_info satellites (B1-347) by @jgangemi in #526
- feat: close telemetry/API parity gaps for recent metrics (#82) by @jgangemi in #528
- feat: add min_free + largest_block to /api/info heap_internal (B1-310 prep) by @jgangemi in #531
Fixes
- fix: bb_ota_push — return clear errors on validation/boot-partition failure (B1-307) by @jgangemi in #482
- fix: add 422 Unprocessable Entity to bb_http_resp_set_status by @jgangemi in #483
- fix: gate bb_pub buffer metrics behind CONFIG_BB_PUB_BUFFER_ENABLE (B1-293) by @jgangemi in #484
- fix: bb_pub_pause bounded-wait — release tick lock before blocking publish (B1-292) by @jgangemi in #487
- fix: wire Kconfig CONFIG_BB_NET_HEALTH_* into public knobs by @jgangemi in #488
- fix: bb_mqtt_subscribe UAF — apply lock+destroyed-check+local-capture pattern from publish by @jgangemi in #489
- fix: add esp_event to bb_http PRIV_REQUIRES by @jgangemi in #490
- fix: bb_pub status-read locking and buffer_replay non-reentrancy (B1-292 follow-up) by @jgangemi in #491
- fix: abort OTA handle on esp_ota_end failure and malloc failure in ota_push_handler by @jgangemi in #492
- fix: absorb self-induced disconnect in connect-timeout re-attempt path by @jgangemi in #493
- fix: alias BB_PUB_WORKER_PRIORITY with consistent Kconfig bridge (B1-333) by @jgangemi in #497
- fix: lock bb_net_health s_cache against torn read between evaluator and httpd (B1-311) by @jgangemi in #511
- fix: make bb_mqtt s_pending_start access safe across tasks (B1-312) by @jgangemi in #512
- fix: resolve bb_power_tps546 last_status_word lock-documentation inconsistency (B1-313) by @jgangemi in #513
- fix: make bb_log s_tap atomic for cross-core tap visibility (B1-323) by @jgangemi in #514
- fix: destroy bb_power_tps546 status_lock on open() error paths (B1-317) by @jgangemi in #515
- fix: progressive backoff for wifi connect-timeout retries (B1-328) by @jgangemi in #517
- fix: pin bb_ota_boot status_check_task with core affinity like ota_worker_task (B1-329) by @jgangemi in #518
- fix: raise wifi reconn task stack to 6144 for NVS safeguard-reboot write (B1-330) by @jgangemi in #519
- fix: track MQTT disconnect age separately in bb_net_health early-warning (B1-319) by @jgangemi in #516
- fix: correct IOUT_OC bit (b4→b7) and clear burst tracking on hold-clear by @jgangemi in #520
- fix: wire CONFIG_BB_VCORE_WD_* knobs — inert-knob bridge (B1-332) by @jgangemi in #521
- fix: re-check heap immediately before OTA TLS handshake (B1-314) by @jgangemi in #522
- fix: guard tps546 last_status_word compare-and-update with status_lock (B1-313) by @jgangemi in #523
- fix: poll for wifi/DNS settle before first OTA attempt (B1-256) by @jgangemi in #524
- fix: size bb_pub worker stack for the serialize path + move buffer entry off-stack (B1-349) by @jgangemi in #527
- fix: don't force bb_ota_pull/bb_net_health deps for parity fields (#82 follow-up) by @jgangemi in #529
Other Changes
- chore: correct REQUIRES/PRIV_REQUIRES for bb_power_tps546 and bb_net_health by @jgangemi in #494
- refactor: single descriptor table for publisher-health gauges (B1-326) by @jgangemi in #499
- refactor: share st77xx forward declarations in a private header (B1-322) by @jgangemi in #498
- refactor: add bb_mem SPIRAM-preferred alloc helper (bb_core); migrate 4 sites + ssd1306 (B1-334, B1-321) by @jgangemi in #500
- refactor: route bb_ota_{boot,pull} heap queries through bb_board wrappers (B1-336) by @jgangemi in #501
- refactor: single source of truth for HTTP status-code reason phrases (B1-337) by @jgangemi in #502
- refactor: extract bb_http_query_token_present shared query-scan helper (B1-338) by @jgangemi in #503
- refactor: add bb_section_freeze_and_assemble; migrate 7 section-init sites (B1-339) by @jgangemi in #504
- refactor: collapse tps546 slinear11 mv/ma/c_int into tps546_slinear11_scaled (B1-342) by @jgangemi in #505
- refactor: extract bb_http_req_recv_body_alloc; migrate 3 POST handlers (B1-335) by @jgangemi in #506
- docs: add audit-class regression guards + idiom-sweep runbook by @jgangemi in #507
- refactor: BB_LOCKED_COPY macro for bb_power/bb_fan snapshot lock-copy sites (B1-341) by @jgangemi in #508
- refactor: extract mdns_lifecycle_lock/unlock nullable guards (B1-342) by @jgangemi in #509
- refactor: extract mqtt_acquire_client B1-296 guard; share between publish/subscribe (B1-340) by @jgangemi in #510
- refactor: extract bb_sse_writer shared SSE loop from bb_log_routes + bb_event_routes (B1-221) by @jgangemi in #530
- feat!: remove flat heap fields from /api/info, structured heap_internal only (B1-310) by @jgangemi in #532
Full Changelog: v0.67.0...v0.68.0