symfonic.agent.cutover.continuation_window_line¶
continuation_window_line ¶
The line that deletes the continuation migration window (TA8.59).
TA8.48 wrote this as a free constant -- 11.1 -- beside a retirement that
removes the legacy continuation body on 11.0. TA8.57 rehearsed that deletion
and TA8.58 measured what the pair produced: a window still open on 11.0,
announcing admissions into a body that release had already removed. Neither edit
was wrong where it was written, which is why no reviewer of either file caught
it, and which is why this is a module rather than a comment.
The window's release line is not free, because the window's life is not its
own. Its compensation is the fall-through to the legacy continuation body:
the window engages only when a configuration guard refuses, the migrated
envelope refuses those same fields, so _cutover_verdict cannot admit and
_continuation_route answers legacy for every redemption the window
admits. A window whose only destination is that body cannot outlive it.
So the line is derived, the one condition that would release it is encoded
below rather than remembered, and
tests/retirement/test_window_line_derivation.py re-drives the routing that
the derivation rests on instead of comparing two constants.
It lives here, apart from
:mod:~symfonic.agent.cutover.continuation_window, for that module's own
stated reason: one question each. continuation_window owns when a pause is
eligible; this file owns how long the window itself lasts, and a reader
looking for either should not have to read the other.