Six merges accumulated behind an unbumped 0.7.0. PKG-06 recorded this exact failure three days ago: the Supervisor keys the built image by version:, so ha apps update against an unchanged version is a silent no-op.
Why minor, not patch
⚠️0.7.0's own shipped default is now a refused config. Rule 10 (SAFETY-39) refuses an explicit slew_w above SLEW_RAIL_FRAC x the site rail = 555.6 W on a 5000 W rail. slew_w defaulted to 1000 under schema int(50,5000). An install that never touched the key is refused on 0.8.0. Refusal is SystemExit(78) - the add-on does not start.
⚠️ A false claim in the first draft, removed
The first draft justified the bump by saying slew_w: 0 used to mean no limit and now means follow the rail. That was invented. The schema was int(50,5000) from the repo's first commit through 0.7.0, so 0 was never legal; and the old control.py had no zero case - at slew_w=0 it pinned the command to its previous value, freezing it, the opposite of "no limit". The widening to int(0,5000) is a new capability, not a changed meaning.
The bump was right; the story told for it was fabricated - PROC-01's defect appearing in the very commit that complains about process. Caught in review, corrected here.
⚠️ The pre-deploy check is NOT done and cannot be done from here
Whether the live options survive rule 10 depends on the live slew_w, reachable only through the Supervisor API - which needs a token this session does not have. The HA REST API does not expose it and no entity carries it.
On record: slew_w was set to 400 during the SAFETY-39 interim fix, below the 555.6 ceiling. That is a written record, not a reading, and the value has been hand-edited since.
Read the options and check them before ha apps update. Exit 78 also takes the ingress panel down, because the add-on serving it is not running.
Contents table now carries the unflattering halves
Two rows had been trimmed: SAFETY-39's "gain is the constant that is still wrong" and SAFETY-42's "the discriminator the card asked for does not exist". Both restored.
## Unreleased was a lie, twice
Two headings by that name - one spanning ~3000 lines across three releases, one from the 0.4.x era - everything under both shipped and running. Retitled, not re-sorted; the split is PKG-08.
Six merges accumulated behind an unbumped `0.7.0`. PKG-06 recorded this exact failure three days ago: the Supervisor keys the built image by `version:`, so `ha apps update` against an unchanged version is a **silent no-op**.
## Why minor, not patch
⚠️ **0.7.0's own shipped default is now a refused config.** Rule 10 (SAFETY-39) refuses an explicit `slew_w` above `SLEW_RAIL_FRAC` x the site rail = **555.6 W** on a 5000 W rail. `slew_w` defaulted to **1000** under schema `int(50,5000)`. An install that never touched the key is refused on 0.8.0. Refusal is `SystemExit(78)` - the add-on does not start.
## ⚠️ A false claim in the first draft, removed
The first draft justified the bump by saying `slew_w: 0` used to mean *no limit* and now means *follow the rail*. **That was invented.** The schema was `int(50,5000)` from the repo's first commit through 0.7.0, so `0` was never legal; and the old `control.py` had no zero case - at `slew_w=0` it pinned the command to its previous value, *freezing* it, the opposite of "no limit". The widening to `int(0,5000)` is a **new capability**, not a changed meaning.
The bump was right; the story told for it was fabricated - PROC-01's defect appearing in the very commit that complains about process. Caught in review, corrected here.
## ⚠️ The pre-deploy check is NOT done and cannot be done from here
Whether the **live** options survive rule 10 depends on the live `slew_w`, reachable only through the Supervisor API - which needs a token this session does not have. The HA REST API does not expose it and no entity carries it.
On record: `slew_w` was set to **400** during the SAFETY-39 interim fix, below the 555.6 ceiling. **That is a written record, not a reading**, and the value has been hand-edited since.
**Read the options and check them before `ha apps update`.** Exit 78 also takes the ingress panel down, because the add-on serving it is not running.
## Contents table now carries the unflattering halves
Two rows had been trimmed: SAFETY-39's *"`gain` is the constant that is still wrong"* and SAFETY-42's *"the discriminator the card asked for does not exist"*. Both restored.
## `## Unreleased` was a lie, twice
Two headings by that name - one spanning ~3000 lines across three releases, one from the 0.4.x era - everything under both shipped and running. Retitled, not re-sorted; the split is PKG-08.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU
Six merges landed behind an unbumped 0.7.0 - CI-06, SAFETY-38, SAFETY-39,
SAFETY-37, SAFETY-13, SAFETY-42. PKG-06 recorded this exact failure YESTERDAY
(bbc903b, 2026-09-05 19:23): the Supervisor keys the built image by `version:`,
so `ha apps update` against an unchanged version is a silent no-op and the box
keeps running the old tree. Catching it by hand a second time is the argument
for the automated check PKG-06's follow-up still owes.
MINOR rather than patch, and the reason is sharper than a semantic change:
SAFETY-39's validator rule 10 refuses an explicit `slew_w` above
SLEW_RAIL_FRAC x the site rail - 555.6 W on a 5000 W rail - and 0.7.0's own
SHIPPED DEFAULT was `slew_w: 1000` under schema `int(50,5000)`. An install that
never touched the key is refused on 0.8.0. Refusal is SystemExit(78); the
add-on does not start.
⚠️ AN EARLIER DRAFT OF THIS COMMIT JUSTIFIED THE BUMP BY CLAIMING `slew_w: 0`
USED TO MEAN "no limit" AND NOW MEANS "follow the rail". THAT WAS FALSE AND IS
REMOVED. The schema was `int(50,5000)` from the repo's first commit through
0.7.0, so 0 was never a legal value and never meant anything; and the old
`control.py` had no zero case - at slew_w=0 it pinned the command to its
previous value, freezing it, which is the opposite of "no limit". The widening
to `int(0,5000)` is a NEW capability, not a changed meaning. The bump is right;
the story told for it was invented - PROC-01's defect appearing in the very
commit that complains about process.
⚠️ AND THEN A SECOND ONE, IN THE SAME COMMIT: the text said PKG-06 was "three
days ago" when the two commits are about a day apart (2026-09-05 19:23 ->
2026-09-06 20:03). Caught in round 2 and corrected. Two invented facts in one
documentation-only change is the measurement PROC-01 wants, not an anecdote:
both were plausible, neither was load-bearing, and both would have shipped.
⚠️ THE PRE-DEPLOY CHECK THIS IMPLIES IS NOT DONE AND CANNOT BE DONE FROM HERE.
Whether the LIVE options survive rule 10 depends on the live `slew_w`, and the
options blob is only reachable through the Supervisor API, which needs a token
this session does not have; the HA REST API does not expose it and no entity
carries it. On record `slew_w` was set to 400 during the SAFETY-39 interim fix,
and 400 is below 555.6 - but that is a written record, not a reading, and the
value has been hand-edited since. Read the options and check them BEFORE
`ha apps update`. Exit 78 also takes the ingress panel down, because the add-on
serving it is not running.
The contents table now carries each merge subject's WHOLE claim. Two rows had
been trimmed to their flattering halves - SAFETY-39's "`gain` is the constant
that is still wrong" and SAFETY-42's "the discriminator the card asked for does
not exist" - and both are restored.
Separately, `## Unreleased` was a lie twice over: two headings by that name, one
spanning ~3000 lines across three releases, one from the 0.4.x era, and every
word under both is shipped and running. Retitled, not re-sorted; the split is
PKG-08.
Reviewed twice. Round 1 REJECTED for an empty PR - built in a clone a concurrent
agent was using, and "pushed" reported from the command's echo rather than from
the remote ref - and for the fabricated slew_w story. Round 2 APPROVED with the
date as a non-blocking finding, fixed here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Six merges accumulated behind an unbumped
0.7.0. PKG-06 recorded this exact failure three days ago: the Supervisor keys the built image byversion:, soha apps updateagainst an unchanged version is a silent no-op.Why minor, not patch
⚠️ 0.7.0's own shipped default is now a refused config. Rule 10 (SAFETY-39) refuses an explicit
slew_waboveSLEW_RAIL_FRACx the site rail = 555.6 W on a 5000 W rail.slew_wdefaulted to 1000 under schemaint(50,5000). An install that never touched the key is refused on 0.8.0. Refusal isSystemExit(78)- the add-on does not start.⚠️ A false claim in the first draft, removed
The first draft justified the bump by saying
slew_w: 0used to mean no limit and now means follow the rail. That was invented. The schema wasint(50,5000)from the repo's first commit through 0.7.0, so0was never legal; and the oldcontrol.pyhad no zero case - atslew_w=0it pinned the command to its previous value, freezing it, the opposite of "no limit". The widening toint(0,5000)is a new capability, not a changed meaning.The bump was right; the story told for it was fabricated - PROC-01's defect appearing in the very commit that complains about process. Caught in review, corrected here.
⚠️ The pre-deploy check is NOT done and cannot be done from here
Whether the live options survive rule 10 depends on the live
slew_w, reachable only through the Supervisor API - which needs a token this session does not have. The HA REST API does not expose it and no entity carries it.On record:
slew_wwas set to 400 during the SAFETY-39 interim fix, below the 555.6 ceiling. That is a written record, not a reading, and the value has been hand-edited since.Read the options and check them before
ha apps update. Exit 78 also takes the ingress panel down, because the add-on serving it is not running.Contents table now carries the unflattering halves
Two rows had been trimmed: SAFETY-39's "
gainis the constant that is still wrong" and SAFETY-42's "the discriminator the card asked for does not exist". Both restored.## Unreleasedwas a lie, twiceTwo headings by that name - one spanning ~3000 lines across three releases, one from the 0.4.x era - everything under both shipped and running. Retitled, not re-sorted; the split is PKG-08.
🤖 Generated with Claude Code
https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU
53e71fd286to06661c5e17