chore(release): version packages - #371
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/master
branch
2 times, most recently
from
May 27, 2026 17:08
4413573 to
5bdeb18
Compare
github-actions
Bot
force-pushed
the
changeset-release/master
branch
from
May 27, 2026 17:08
5bdeb18 to
dec9d04
Compare
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.
Releases
forty-two-watts@0.106.0
Minor Changes
9638c78: Ferroamp self-healing watchdog for the sticky-pplim trap. When the
SSO reports the post-incident signature — DC bus voltage > 200 V, zero
PV current, no fault, relay closed — continuously for ten minutes, the
driver now auto-publishes
pplim arg=<pplim_release_w>to releasethe lock. Operator opts in by setting
config.pplim_release_w > 0;without it, the watchdog logs a per-incident warning but does not
publish (we have no safe release value to send).
A five-minute cooldown between successive recoveries prevents command-
spam if the release doesn't take. A new
stuck_pv_recovery_countmetric tracks lifetime recovery count so operators can alert on a
chronic condition.
Reuses the existing
pplim_release_wfield — same value, dualpurpose (dispatcher
curtail_disablerelease AND watchdogself-recovery).
Layered with #367
(driver hard-fail on
pplim arg=0) and the dispatcher fix in theparallel PR (
fix(curtail): no spurious release ...) this is thethird and final layer of defense against the 2026-05-27 brick.
Patch Changes
312e9ba: Defense-in-depth against the 2026-05-27 Ferroamp brick. Two
independent changes that, combined with PR fix(ferroamp): refuse pplim arg=0 — sticky-lock trap on extapi #367's driver-side hard
fail on
pplim arg=0, eliminate every known trigger path:Dispatcher:
ComputePVCurtailno longer emits acurtail_disablerelease simply because a previously-curtailed driver dropped out of
the proportional allocation due to its own
|PV|crashing to ~0(often a direct consequence of OUR curtail throttling that driver
down). The release is now only sent when the curtail directive
truly clears, or the driver is removed from
SupportsPVCurtail, orthe driver goes offline. Also: per-driver allocations rounding to
≤ 1 Ware suppressed entirely — never publish a near-zeropplimthat some inverters treat as a hard "limit to 0 W" lock.Ferroamp driver: subscribes to
extapi/control/response(was:
extapi/result— wrong topic, never received anything),parses
{"status":"ack|nak", ...}responses, and exposescumulative
extapi_nak_count+extapi_ack_countmetrics. NAKresponses are also logged as warnings with
transId+msgfields. The 2026-05-27 brick was preceded by minutes of
nak: no available ESOs detected in systemthat we couldn't seethrough ftw telemetry — now the operator can alert on any non-zero
NAK rate.
Tests added:
control/pv_curtail_test.goguarding the suppression / release semantics.
drivers/lua_ferroamp_curtail_test.goasserting NAK + ACK counter advancement.
322ffe2: Ferroamp safety fix: the Lua driver now refuses to publish
pplim arg=0from anycurtail/curtail_disablepath.Ferroamp's extapi treats
{"cmd":{"name":"pplim","arg":0}}as"limit PV output to 0 W" — same wire bytes as a naive release would
have, opposite semantics. The inverter sticks at 0 W PV until the
operator clears pplim from the Ferroamp portal or power-cycles the
EnergyHub. On 2026-05-27 this fired against a live SE4 site after the
dispatcher's proportional curtail allocation gave a 0-share to
Ferroamp; recovery required a 30+ minute outage and a portal-side
reset.
Changes:
curtailwithpower_w <= 0is now a logged no-op (was: publishedpplim arg=0).curtail_disableis a logged no-op by default (was: publishedpplim arg=0). To restore automatic release, setconfig.pplim_release_won the driver to the inverter's nominalmax (e.g.
15000for a 15 kW SSO). The driver then publishespplim arg=<release_w>which Ferroamp accepts as "raise the limit".reintroduces
pplim arg=0.docs/configuration.mddescribe the trap and the newconfig field.
Operators with
supports_pv_curtail: trueon Ferroamp should addconfig.pplim_release_w: <SSO-rated-watts>to keep curtailmentauto-releasing. Without it, curtail still engages correctly, but
release becomes a portal action.