refactor(ota): split OTA into Manager, Client, and FirmwareCDN#316
refactor(ota): split OTA into Manager, Client, and FirmwareCDN#316hhvrc wants to merge 15 commits into
Conversation
Separate OTA update system into three concerns: - OtaUpdateManager: watcher task, lifecycle, WiFi events, periodic checks - OtaUpdateClient: single update execution (fetch, flash, reboot) - FirmwareCDN: HTTP calls to firmware CDN (already existed, now wired in) Fix OtaUpdateClient to be a clean one-shot task instead of containing the watcher loop. Use FirmwareCDN::GetFirmwareReleaseInfo instead of inline HTTP. Fix FnProxy usage, wrong serialization namespaces, stale API calls, and missing includes. Remove _ prefix from all statics. Update FirmwareCDN to current HTTP API (tcb::span, ContentType constants). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: af0df40 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Cpp-Linter Report
|
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…e-manager # Conflicts: # .github/actions/cdn-bump-version/action.yml # .github/actions/cdn-upload-firmware/action.yml # .github/actions/cdn-upload-version-info/action.yml # .github/workflows/ci-build.yml
|
Ready to review this PR? Stage has broken it down into 11 individual chapters for you: Chapters generated by Stage for commit 97ccd43 on Jun 29, 2026 10:41am UTC. |
Change file check
If this change should show up in the release notes, add one with |
The OTA config was renamed to repoDomain in source, but the shared HubConfig schema still defines the slot as cdn_domain. Read/write that existing field so the config (de)serializes against the current schema.
Summary
OtaUpdateManager.cpp(780 lines) into three focused modulestcb::span,ContentTypeconstants,StringRemovePrefix)_prefix from all static functions and variablesTest plan
OpenShock-Core-V2(ESP32-S3)Wemos-D1-Mini-ESP32(ESP32)🤖 Generated with Claude Code