BOLT-1217 PR #11955: refactor to reuse dischargeStrategy + fix usedDefault detection
blockedBOLT-1217 PR #11955 rework based on reviewer feedback (2026-06-12 Slack thread).
Two fixes:
(1) Charge-side assumed-SoC constant fix. Add new config key smoothAssumedStartingSocForCharge (env DEVICE_SMOOTH_ASSUMED_STARTING_SOC_FOR_CHARGE), default 0.20. Charge calc must NOT reuse the discharge 0.85 — that produces 0W on charge-to-≤85% and trickle on charge-to-100%. Update calculateOptimalChargePower JSDoc to explain WHY the charge prior is opposite (over-shooting ceiling is clamped device-side, under-charging is the real risk → assume low starting SoC for big headroom).
(2) Drop resolved.chargePowerRate / resolved.chargePowerPercent fork. Reuse dischargePowerRate / dischargePowerPercent end-to-end as positive magnitudes for both modes. Remove the charge-mode short-circuit in mappers.ts. Loud JSDoc on dischargePowerRate field re: positive magnitude, operatingMode disambiguates direction, consumer responsible for negation when mapping to signed power axis.
Audit results 2026-06-12: all 5 charge-capable OEM adapters (EG4, FranklinWH, TGS, SolarEdge, Enphase) already branch on operatingMode before reading dischargePowerRate — Choice A is safe.
Branch winston/bolt-1217-docs-discharge-power-interpretation. PR #11955.
Event Timeline
created
subagent_spawned
spawn claim: PR#11955 reuse-dischargeStrategy refactor
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
subagent_completed
subagent done: refactor complete @ 72d31f26fc; CI green
status_change
queued → blocked
status_change
blocked → in_progress
subagent_spawned
spawn claim: bolt-1217-pr11955-rework
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
subagent_completed
subagent done: rework pushed @ 7bedb806d0 — 117/117 tests passing, CI running
subagent_spawned
spawn claim: bolt-1217-pr11955-drop-deprecated-aliases
subagent_completed
subagent done: deprecated aliases removed @ bf5f810ad7 — 156 tests pass
subagent_spawned
spawn claim: bolt-1217-phase2-linear+pr-summary
subagent_completed
subagent done: BOLT-1274 filed, PR #11955 summary comment posted