Router T241: the comments commit had put new rationale into
MAIN-orchestration.md and cut comment lines that the note at 56fc41f did not
hold.
- DECISIONS/MAIN-orchestration.md is the 56fc41f text plus the one sentence
that the Controller is split into app/main.py and app/ctl_*.py.
- Comments whose content is not in a DECISIONS note at 56fc41f are back in the
code verbatim: MAINT-05 one config, the SAFETY-02, SAFETY-42/34,
SAFETY-30 site half, SAFETY-31 and SAFETY-18 latch blocks in __init__, the
_grade_store_migration docstring and comment, the trade_power_w docstring,
the rows.py docstrings.
- Kept: cuts of text already in the note, the SMA-10 / SAFETY-137 / SMA-2
pointers, the SAFETY-32 line fix.
No code change: maint21_same_ast OK, maint20_same_code -OO same.
Co-Authored-By: Claude <noreply@anthropic.com>
No code change: tools/maint21_same_ast.py and tools/maint20_same_code.py HEAD~
both print OK, and the -OO code objects are the same.
- Trims 56 comment and docstring lines (2088 -> 2032) in app/main.py and the
new files that only restated their MAIN-orchestration.md bullet, each cut to
its first sentence and a pointer. What the cut comments said and the bullet
did not is now in the bullet: why a SAFETY-02 latch is restored, why the
SAFETY-30 site check is not armed at one inverter, the SAFETY-18 re-derive,
the MAINT-05 one-config rule, the OPT-09 sizing rules, the "no plan" row,
the 5 400 s age bound, and the guard being the only latch repair.
- Adds the missing DECISIONS pointers on the SMA-10, SAFETY-137 and SMA-2
comments (FALLBACK_BUDGET_S, write_setpoint, _await_inflight,
_release_last, the retry wait, the failed-release branch, release_zero_sent,
the in-flight write, the stop_event hand-back, the SMA-2 read and driver).
- DECISIONS/SAFETY-32: the stale `main.py:932-936` now names
Controller.pack_floor_soc.
- main.py's docstring and import block say where the Controller's parts are.
Co-Authored-By: Claude <noreply@anthropic.com>
- check_peak_floor_limited: restore the SAFETY-25 line (the reserve sentence is
in messages.peak_reserve() on every branch, unreadable SoC included).
- Three status-page comments that no longer said anything (SAFETY-20 row,
AC 5 delivery row, banner-vs-text) now say their rule in one line.
- tariff_refresh_wanted docstring: no orphan "TARIFF-24)" line.
- MAIN-orchestration.md: blank line before the first heading.
- MAIN-orchestration-archive.md: refilled intro; says how to find a section
from a main.py pointer.
No code change: maint20_same_code.py 16029d7 -> SAME CODE, -OO same.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>