Default the Firmware Channel select to Beta on beta-channel builds#92
Conversation
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 8-line beta-channel/ wrapper yamls that override it to "Beta"; build-beta.yml now builds those wrappers. Stable (Pages) builds are unchanged. Same override pattern as variant wrappers. Version: 26.7.8.4 (26.7.8.3 is held by open PR #90) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
WalkthroughIntroduces a firmware_channel_default substitution in Core.yaml (default "Stable") driving the Firmware Channel select's initial option, adds beta-channel YAML wrappers (MSR-1.yaml, MSR-1_BLE.yaml) that set it to "Beta" while including base configs, and repoints build-beta.yml to build from those beta-channel files. Also bumps the device version substitution. ChangesBeta Firmware Channel Default
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
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. MSR-1 hardware. Version: 26.7.8.2 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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)
Version: 26.7.8.4
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_optionbecomes a substitution (firmware_channel_default, still"Stable"- stable/Pages builds are byte-identical to before).beta-channel/wrapper yamls override it to"Beta", same override pattern the repos already use for variant wrappers;build-beta.ymlnow builds the wrappers.beta-fwrelease page) boots with the select on Beta and keeps tracking beta.restore_valuesemantics unchanged - the default only applies when no stored choice exists.Wrapper renders verified locally: base
MSR-1.yaml->initial_option: Stable,beta-channel/MSR-1.yaml->initial_option: Beta. All five configs validate on ESPHome 2026.6.4.(26.7.8.3 is held by open PR #90; whichever merges second takes a trivial version rebase.)
Types of changes
Checklist / Checklijst:
If user-visible functionality or configuration variables are added/modified:
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes