symfonic.agent.cutover.orchestrator_settings¶
orchestrator_settings ¶
The five nested orchestrator knobs replaced on 11.0, as data (TA8.37, C1-E).
Data only, and split from :mod:~symfonic.agent.cutover.orchestrator_policy
the way :mod:~symfonic.agent.cutover.pause_surfaces is split from
pause_policy: the rows here, the contract that explains them and the rule
that reads them next door. Read the contract module first -- it says why these
five are REPLACE rather than RETIRE, and why they refuse through their own
guard instead of through RETIRED_SETTINGS.
This file is one table and a row type, so adding or removing a row is a diff a
reviewer can check against
tests/agent/cutover/test_orchestrator_policy_lane.py's enumeration.
The stock baseline is derived, never stored. No row carries a default:
:func:~symfonic.agent.cutover.orchestrator_policy.replaced_orchestrator_setting_supplied
compares against a default-constructed instance of the live
OrchestratorConfig, so a row here can never drift from the model it
describes.
ReplacedOrchestratorSetting
dataclass
¶
One nested orchestrator knob replaced on the 11.0 line.
replaced_by names the live surface an adopter moves to and
adopter_break names what they lose moving there — both required, for
the reason TA8.42's :class:~symfonic.agent.cutover.pause_surfaces.
PauseSurface gives: a refusal that names the line and stops is a dead end,
and a replacement named without its break is a breaking change shipped as a
migration note.