Skip to content

chore(optimizer): bundle Energyplan 0.7.0 - #1979

Merged
frahlg merged 1 commit into
masterfrom
energyplan-0.7.0
Nov 6, 2026
Merged

frahlg merged 1 commit into
masterfrom
energyplan-0.7.0

Conversation

@frahlg

@frahlg frahlg commented Nov 6, 2026

Copy link
Copy Markdown
Member

Problem and result

Moves optimizer/native/bundle to Energyplan 0.7.0 (srcfl/energyplan 847936a, tag v0.7.0-beta.1).

  • What changes for households.

    • With a peak-power tariff, the worker now takes the demand hour in progress and the day's completed peak in that day's group. fix(mpc): price the clock hour in progress for planners that announce demand_elapsed_hours #1966 already sends that shape to a worker that lists demand_elapsed_hours, so each local day counts as one sample.
    • A new plan is never worse for the car goals or the bill than the plan the worker already holds.
    • Limits that cannot all be met get a clear infeasible reply.
    • The worker needs less memory.
  • Bundle.

    • It now carries linux-arm64 and linux-amd64 only. fix(native): verify a bundle that has no worker for this host #1977 lets verify.py check such a bundle on a Mac and skip execution there. A Mac keeps Core's own planner.
    • The manifest, the two version pins in the tests and the README version change.
    • The README's budget sentence now points to the contract.
    • Licenses and forecast schemas are unchanged. The notices list two more vendored microlp modifications.
  • Contract. docs/energyplan-contract.md gets the text that becomes true with this worker:

    Energyplan's copy is byte-identical (sha256 d2b24ad9…).

  • Tests. TestNativeEnergyplanTakesElapsedDemandHours now requires the feature from the bundled worker instead of skipping.

Scope and safety

Verification

  • Bundle files are byte-identical to the bytes Energyplan's release gate ran:
    • ftw-solver-linux-arm64 sha256 a6f1609d…;
    • ftw-solver-linux-amd64 sha256 67ff308a….
  • python3 optimizer/native/verify.py: Verified Energyplan 0.7.0, 2 platforms, linux-arm64 handshake passed.
  • Native suite with the bundled worker, -count=5 (go test ./internal/mpc ./internal/energyforecast ./cmd/ftw -run 'Native|RustForecastHost'): 360 passed, 0 failed. The 5 skips are TestNativeCapturedSiteReplay, which needs a captured request. The elapsed-demand test runs and passes.
  • make native-solver-test and make verify: pass.

Checklist

  • The change follows VISION.md and one selected scope.
  • I checked overlapping PRs and coordinated shared files/contracts.
  • Relevant checks cover the changed behaviour and failure paths.
  • A human reviewed changed UI in a browser, or no UI changed.
  • A Changeset is included, or the change is exempt.
  • Every commit has a DCO sign-off.

🤖 Generated with Claude Code

Bundle the worker from srcfl/energyplan 847936a (0.7.0) for linux-arm64
and linux-amd64. The macOS worker is no longer bundled; the parent commit
lets verify.py check such a bundle and skip execution on a Mac. The
worker lists demand_elapsed_hours, so Core (#1966) sends it the demand
hour in progress and the day's completed peak in that day's group, and
the native demand test now requires the feature.

The contract describes the feature and the demand-charge fields, each
call's time limit since #1968, the batteries' total recovery rule and
optional reply diagnostics, and it stays identical to Energyplan's copy.
The worker version pins and the README follow. Licenses and forecast
schemas are unchanged; the notices list two more microlp modifications.
Protocol v1 is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-06T20:26:31.088180Z 079d691 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.

@frahlg
frahlg merged commit fd3349a into master Nov 6, 2026
24 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