MAINT-28: reset the hold every cycle, test it; digests vs 1b5f7c9; DECISIONS numbers and mutants
checks / unit (pull_request) Failing after 36m49s
infra-pin / fresh (pull_request) Successful in 2s

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
glenn schrooyen
2026-11-12 22:44:32 +01:00
co-authored by Claude
parent 4f9aa5223f
commit 92f0387415
3 changed files with 74 additions and 19 deletions
+3 -1
View File
@@ -537,6 +537,8 @@ class CycleMixin:
# maintenance ⚠️ ONE PASS PER PACK, AND `arbitrate()` IS WHY THE LIST
# STAYS SHORT. (DECISIONS/MAIN-orchestration-archive.md)
# MAINT-28: the hold lives only while the charge-only branch is taken.
_peak_held, self._maint_peak_hold = self._maint_peak_hold, False
for inv, result in zip(self.inverters, maint_results):
if result.owns_setpoint:
# PER-INVERTER: §12's recalibration is a PACK procedure, filed
@@ -569,7 +571,7 @@ class CycleMixin:
house = (None if self.grid is None or self.site_batt_w is None
else float(self.grid) + float(self.site_batt_w))
self._maint_peak_hold = peakguard.shaping_held(
self._maint_peak_hold and len(self.inverters) > 1,
_peak_held and len(self.inverters) > 1,
self.peak_guard, self.peak_fc,
maint_aim, house)
if self._maint_peak_hold: