Skip to content

chore: retro-review PR #88 — feat(providers): Dynamic Wholesale Tariff retailer wiring (Phase 7 PR-2b)#120

Closed
Artic0din wants to merge 2 commits into
claude-retro/pr-88-basefrom
claude-retro/pr-88-head
Closed

chore: retro-review PR #88 — feat(providers): Dynamic Wholesale Tariff retailer wiring (Phase 7 PR-2b)#120
Artic0din wants to merge 2 commits into
claude-retro/pr-88-basefrom
claude-retro/pr-88-head

Conversation

@Artic0din

Copy link
Copy Markdown
Owner

Synthetic retro-review of merged PR #88. Diff = original 20a79b9..a788aa3 (same as original PR). Do NOT merge; close after @claude review posts.

Artic0din and others added 2 commits May 21, 2026 22:12
…7 PR-2b)

PR-2b — Dynamic Wholesale Tariff is now a selectable retailer in PriceHawk's
config flow with TWO entries (OpenElectricity, AEMO Direct) backed by ONE
DynamicWholesaleTariffProvider class. Both implement the Provider Protocol
in the same slot as Amber/Flow Power/LocalVolts.

- DynamicWholesaleTariffProvider: self-priced; sync update(); public
  set_live_price(WholesalePrice) called by the coordinator's async refresh
  coroutine. 4-minute staleness guard dedups SDK calls against the 5-min
  dispatch cadence. Negative wholesale prices honoured (exporter pays
  during curtailment). State persistence honours AEGIS rules (version
  field + explicit HA-tz date, no date.today() fallback).
- coordinator.py: DWT branch in __init__ and rebuild_engine.
  _refresh_dwt_price coroutine hooked into _async_update_data before the
  tick loop. ConfigEntryNotReady on inconsistent config (DWT marker
  without enabled flag).
- config_flow.py: async_step_cdr_retailer prepends two synthetic DWT
  entries + dispatches to new dwt_credentials / dwt_aemo_setup steps.
  WEM excluded from AEMO Direct (NEMWeb is NEM-only per PR-3). API key
  validated live against OpenElectricity SDK before entry creation.
- strings.json + translations/en.json kept byte-identical (project
  invariant).
- 29 new tests; 868 total pass.

Decisions: DECISIONS.md > D-P7-10, D-P7-11.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Artic0din

Copy link
Copy Markdown
Owner Author

@claude review

@claude

claude Bot commented May 23, 2026

Copy link
Copy Markdown

Claude encountered an error after 19m 56s —— View job


PR #88 Retro-Review — Dynamic Wholesale Tariff Retailer Wiring (Phase 7 PR-2b)

Tasks

  • Gather context and understand request
  • Read diff (base → HEAD)
  • Review core provider logic (dynamic_wholesale_tariff.py)
  • Review coordinator changes (coordinator.py)
  • Review config flow changes (config_flow.py)
  • Review sensor, const, and supporting files
  • Review tests coverage
  • Review CI/workflow changes
  • Post findings

@claude

claude Bot commented May 23, 2026

Copy link
Copy Markdown

Claude encountered an error after 7m 6s —— View job


I'll analyze this and get back to you.

@Artic0din

Copy link
Copy Markdown
Owner Author

Retro-review complete. Findings (if any) tracked in fix/retro-review-batch (#143) or noted in .planning/retro-review-findings.md. Closing synthetic PR + cleaning branches.

@Artic0din Artic0din closed this May 23, 2026
@Artic0din Artic0din deleted the claude-retro/pr-88-head branch May 23, 2026 13:39
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