Skip to content

Default the Firmware Channel select to Beta on beta-channel builds#46

Closed
bharvey88 wants to merge 1 commit into
betafrom
beta-channel-default
Closed

Default the Firmware Channel select to Beta on beta-channel builds#46
bharvey88 wants to merge 1 commit into
betafrom
beta-channel-default

Conversation

@bharvey88

Copy link
Copy Markdown
Contributor

Version: 26.7.8.2

What does this implement/fix?

A fresh flash has no stored channel preference, so the Firmware Channel select fell back to "Stable" even on firmware obtained from the beta channel - and the update entity then offered the older stable build as a "downgrade".

  • initial_option becomes a substitution (firmware_channel_default, still "Stable" - stable/Pages builds are byte-identical to before).
  • New 8-line beta-channel/ wrapper yamls override it to "Beta", same override pattern the repos already use for variant wrappers; build-beta.yml now builds the wrappers.
  • Net effect: firmware downloaded from the beta channel (or flashed from the beta-fw release page) boots with the select on Beta and keeps tracking beta. restore_value semantics unchanged - the default only applies when no stored choice exists.

Wrapper renders verified locally: base CAST-1_W.yaml -> initial_option: Stable, beta-channel/CAST-1_W.yaml -> initial_option: Beta. All four configs validate on ESPHome 2026.6.4.

Same pattern as ApolloAutomation/MSR-1#92.

Types of changes

  • Bugfix (fixed change that fixes an issue)
  • New feature (thanks!)
  • Breaking change (repair/feature that breaks existing functionality)
  • Dependency Update - Does not publish
  • Other - Does not publish
  • Website of github readme file update - Does not publish
  • Github workflows - Does not publish

Checklist / Checklijst:

  • The code change has been tested and works locally
  • The code change has not yet been tested

If user-visible functionality or configuration variables are added/modified:

  • Added/updated documentation for the web page

🤖 Generated with Claude Code

@github-actions github-actions Bot added the bugfix Something isn't working label Jul 8, 2026
@coderabbitai

coderabbitai Bot commented Jul 8, 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: 56 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: a4e5a092-fd79-4d94-a91b-d7e66f91d9ad

📥 Commits

Reviewing files that changed from the base of the PR and between 18c1061 and ad7c126.

📒 Files selected for processing (4)
  • .github/workflows/build-beta.yml
  • 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 beta-channel-default

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.

A fresh flash has no stored channel preference, so the select fell back
to "Stable" even on firmware obtained from the beta channel - and the
update entity then offered the older stable build as a "downgrade".

Make initial_option a substitution (firmware_channel_default, still
"Stable") and add beta-channel/ wrapper yamls that override it to
"Beta"; build-beta.yml now builds those wrappers. Stable (Pages) builds
are unchanged. Same pattern as ApolloAutomation/MSR-1#92.

Version: 26.7.8.2

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@bharvey88
bharvey88 force-pushed the beta-channel-default branch from be5c330 to ad7c126 Compare July 8, 2026 17:01
@bharvey88

Copy link
Copy Markdown
Contributor Author

Superseded - the wrapper + firmware_channel_default work here is carried verbatim in the unified PR (see the new PR referencing this one), together with the boot-time apply_ota_source, the standard update-button flow, the 5120/2048 buffer bump, and the fleet-wide runtime Bluetooth Proxy switch.

@bharvey88 bharvey88 closed this Jul 12, 2026
bharvey88 added a commit that referenced this pull request Jul 12, 2026
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant