Skip to content

Unified firmware: runtime Bluetooth Proxy switch + channel fix set#48

Merged
bharvey88 merged 1 commit into
betafrom
unified/firmware-channel
Jul 14, 2026
Merged

Unified firmware: runtime Bluetooth Proxy switch + channel fix set#48
bharvey88 merged 1 commit into
betafrom
unified/firmware-channel

Conversation

@bharvey88

Copy link
Copy Markdown
Contributor

Version: 26.7.12.1

Adds:

  • New: runtime "Bluetooth Proxy" support. bluetooth_proxy + esp32_ble_tracker compile into both images with a "Bluetooth Proxy" switch (default off, persisted, re-applied at boot). The existing CONFIG_BT_* sdkconfig options (previously unused) now do real work — BT allocations go to PSRAM first, keeping internal RAM free for the audio pipelines. Worth a listen-test with the proxy ON during Music Assistant playback before release, given the group-sync tuning work in flight.
  • Boot-time apply_ota_source (on_boot -100): previously a reboot left the update entity on its compile-time default source until a select fired; now the persisted Type/Channel choice is re-applied every boot.
  • The beta-channel-default wrapper work, folded in: beta-channel/ wrappers default the Firmware Channel select to "Beta" on beta builds, so beta-flashed devices keep tracking beta.
  • Manifest-base substitutions (stable_manifest_base / beta_manifest_base) replace the four hardcoded URLs in apply_ota_source; the Type (WiFi/Ethernet) × Channel (Stable/Beta) cross is unchanged. This matches the pattern MSR-1 shipped as 26.7.9.1 (Unify BLE into one firmware: runtime Bluetooth Proxy switch + channel-only OTA MSR-1#100, Remove unneeded pre-OTA BLE disable from Firmware Update MSR-1#103, Drop redundant bluetooth_proxy active: true (now the default) MSR-1#104).

Fixes:

  • "Firmware Update" button upgraded from a bare perform(true) to the standard flow: apply_ota_source + a fixed manifest-fetch window before perform (same-version switches never flip update.is_available).
  • http_request consolidated into Core.yaml and buffers raised from 4096/1024 to the fleet-proven 5120/2048 (GitHub's CSP header line measures 3585 bytes; the signed-redirect request line needs the tx headroom).

Breaks:

  • Nothing: the Type select keeps its cross-flash behavior; the proxy switch defaults off.

Supersedes #46 (its wrapper content is carried here).

Checks:

  • Documentation Updated
  • Build Number Incremented In Core.yaml

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@bharvey88, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 52 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4046e5e9-ad45-479c-9c2c-858c48b4def5

📥 Commits

Reviewing files that changed from the base of the PR and between c3610d1 and c881f6e.

📒 Files selected for processing (6)
  • .github/workflows/build-beta.yml
  • Integrations/ESPHome/CAST-1_ETH.yaml
  • Integrations/ESPHome/CAST-1_W.yaml
  • Integrations/ESPHome/Core.yaml
  • Integrations/ESPHome/beta-channel/CAST-1_ETH.yaml
  • Integrations/ESPHome/beta-channel/CAST-1_W.yaml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch unified/firmware-channel

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Aligns the live CAST-1 channel implementation with the pattern MSR-1
shipped as 26.7.9.1 (ApolloAutomation/MSR-1 #100/#103/#104), folding in
the beta-channel-default wrapper work:

- NEW: bluetooth_proxy + esp32_ble_tracker compile into both images; a
  "Bluetooth Proxy" switch (default off, persisted, re-applied at boot)
  starts/stops scanning at runtime. The existing CONFIG_BT_* sdkconfig
  options put BT allocations in PSRAM, keeping internal RAM free for the
  audio pipelines.
- apply_ota_source is now re-applied at boot (on_boot -100) - previously
  a reboot left the update entity on its compile-time default source.
  URLs come from stable/beta manifest-base substitutions; the Type
  (WiFi/Ethernet) x Channel (Stable/Beta) cross is unchanged.
- Firmware Update button upgraded from bare perform(true) to the standard
  flow (apply_ota_source + fetch window before perform)
- http_request consolidated into Core.yaml and buffers raised to the
  proven sizes (rx 4096->5120 for GitHub's ~3.6KB CSP header line,
  tx 1024->2048 for the ~850-char signed-redirect query)
- beta-channel/ wrappers default the select to Beta on beta builds
  (from the beta-channel-default branch); build-beta.yml builds them
- version 26.7.12.1

Supersedes #46.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@bharvey88
bharvey88 force-pushed the unified/firmware-channel branch from a3707d3 to c881f6e Compare July 12, 2026 22:55
@bharvey88 bharvey88 mentioned this pull request Jul 14, 2026
@bharvey88
bharvey88 merged commit 3e805d0 into beta Jul 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant