Skip to content

feat(planner): default stable releases to Energyplan - #1529

Merged
frahlg merged 3 commits into
masterfrom
stable-energyplan-default
Oct 7, 2026
Merged

frahlg merged 3 commits into
masterfrom
stable-energyplan-default

Conversation

@frahlg

@frahlg frahlg commented Oct 7, 2026

Copy link
Copy Markdown
Member

Problem

config.Planner.EngineForBuild chose Energyplan only when the version matched vX.Y.Z-beta.N. A stable build (vX.Y.Z) with no planner.engine fell back to Core DP. Every beta tester runs Energyplan by default, so promoting a beta to the first native stable would switch each of them to another planner without notice. The home box has no explicit engine and would have switched.

Decision

The owner chose on 2026-10-07: stable uses Energyplan by default, the same as beta. Core DP still runs as the bounded shadow and fallback, Core still validates every plan, and planner.engine: core still selects Core DP.

Change

  • planner_engine.go: match release tags with or without -beta.N. Development builds (v0.X.Y-dev.<hash>, dev), release candidates and non-Linux or 32-bit hosts keep Core.
  • Tests: stable on linux/arm64 and amd64 gives Energyplan, stable on darwin gives Core, an explicit core on stable gives Core, and a dev-hash build gives Core. The batteryless admission test now expects Energyplan for the stable default on supported hosts.
  • The help text in Settings → Planner, config.example.yaml and docs/architecture.md now say beta and stable.

The forecast pipeline was already the same for every channel (energyplanSupported only), so nothing else needed to change.

Tests

go test ./internal/config -run TestPlannerEngineForBuild, and go test ./cmd/ftw -run 'TestEnergyplanReleaseSelection|TestBuildMPC…' pass on macOS. The bundled-worker wiring test skips on macOS and runs in Linux CI. go vet is clean.

Open PRs #1051 and #1292 touch other sections of docs/architecture.md, and #1003 touches another section of config.example.yaml. This PR edits only the planner lines.

Release

This goes in the same beta as #1528, and that beta is the stable candidate.

🤖 Generated with Claude Code

EngineForBuild picked Energyplan only for vX.Y.Z-beta.N. A stable vX.Y.Z
build fell back to Core DP when planner.engine was unset, so a beta box
moving to the first native stable would switch planner without notice.
Match both beta and stable release tags; development builds and
unsupported hosts keep Core.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T11:35:29.049497Z 9be07c3 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9be07c3330

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +12 to +13
// Beta and stable releases default to the bundled Energyplan worker on a
// supported host; development builds default to Core.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the remaining docs for the stable default

This stable-default change leaves go/internal/config/config.go:693 saying an unset engine uses Energyplan only in betas, while optimizer/native/README.md:53-56 still explicitly says stable builds default to Core. Maintainers following either description can unintentionally select Energyplan on a stable Linux installation, so both references should be updated with the other documentation in this commit.

AGENTS.md reference: AGENTS.md:L274-L275

Useful? React with 👍 / 👎.

@frahlg
frahlg merged commit 7dd652b into master Oct 7, 2026
14 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