Skip to content

symfonic.agent.cutover.admission_row

admission_row

The shape of one admission row.

Split from admission_surfaces.py when the seventh row arrived. That module holds the lane's argument and its rows; this holds the type they are instances of. A file that carries both grows by whichever is easier to append to, and a row is always easier to append than a reason to add one.

AdmissionSurface dataclass

AdmissionSurface(path: str, subgroup: str, owner: str, admitted: bool, disposition: str, served_by: tuple[str, ...], refused_by: tuple[str, ...], inert_on: tuple[str, ...], consumer: str, observable: str, off_turn_surface: str | None = None, inert_because: str | None = None, override_argument: str | None = None)

One TA8.44 row, and the surface that actually honours it.

served_by / refused_by / inert_on partition :data:PUBLIC_ENTRY_POINTS exactly, for the reason :class:~symfonic.agent.cutover.lifecycle_contract.LifecycleRow gives: an unmeasured third entry point is the gap that made two thirds of this programme's earlier evidence unusable, and a row with a hole in its surface would reintroduce it as a data structure.

admitted is a separate field from all of that, and it is separate deliberately. A row can be refused-to-legacy by the default-deny envelope while its consumers are perfectly real -- that is what every MISSING CONTRACT row in the inventory is -- and recording it here with admitted=False keeps the argument next to the field instead of in a document nothing checks.