refactor: retire Python optimizer and separate updates - #1083
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7f8fbc3fa4
ℹ️ 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".
There was a problem hiding this comment.
Stale comment
Left a non-blocking comment; not approved. Cursor Bugbot was present but finished as skipped, so its review is not a usable approval signal. No reviewers were assigned because the matching CODEOWNERS path is the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
There was a problem hiding this comment.
Stale comment
Left a non-blocking comment; not approved. Cursor Bugbot was present but finished as skipped, so its review is not a usable approval signal. No reviewers were assigned because the matching CODEOWNERS path is the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fc25852. Configure here.



Core already runs the compiled Energyplan worker in beta, but each installation still starts the retired Python service and the updater refuses Core updates without it. This removes the Python package, container and release workflow, runtime settings, Python shadow, and separate optimizer update controls. Core updates carry Energyplan; Core DP remains the validated fallback and comparison shadow.
Older
planner.engine: pythonsettings migrate to Energyplan. New Compose installations start no Python service. An explicit updater-retire-pythoncommand checks that Energyplan is healthy, starts a helper from the exact installed updater image with a writable project mount, saves the old Compose files, removes the retired service and its FTW socket wiring, and keeps custom services, image pins and persistent data. Older updaters can install this pair before the old container is retired.Validation:
make verifypassed, including the bundled worker integration, and all 541 web tests passed. Browser checks covered the engine choices, removal of the optimizer row and Python controls, and the single Core update channel. Migration tests cover installations without Python, preservation of custom overrides, and Core/updater rollback. The new retirement tests cover both Compose environment formats, volume formats, idempotence, preservation of the data mount, writable helper mounts, and orphan removal within the existing project.This retires the Python code touched by #1036 and the Python portions of #963 and #971. Their separate Go planning and validation work remains outside this change.