Skip to content

symfonic.agent.cutover.default_admission

default_admission

The stock configuration capabilities that still need explicit composition.

FrameworkConfig enables these capabilities by default, while the kernel may serve each only when the composition root supplied its operative ports. Keeping the rows here makes the retirement question executable: a default is not "migrated" because it has a flag or a compatibility fallback, but only when its bundle predicate is true and its listed kernel behaviour is tested.

DefaultAdmissionRow dataclass

DefaultAdmissionRow(field: str, capability: str, bundle_predicate: str, kernel_effect: str, evidence: str, fallback_metric: str = 'kernel_fallback.v1')

One stock-on capability and the evidence needed to admit its turn.

is_served_by

is_served_by(bundle: Any) -> bool

Return whether this exact composition can serve the stock capability.

Source code in src/symfonic/agent/cutover/default_admission.py
def is_served_by(self, bundle: Any) -> bool:
    """Return whether this exact composition can serve the stock capability."""
    predicate = getattr(bundle, self.bundle_predicate, None)
    return callable(predicate) and bool(predicate())

unmet_default_admission_rows

unmet_default_admission_rows(config: Any, bundle: Any) -> tuple[DefaultAdmissionRow, ...]

List every enabled stock capability this composition cannot serve.

The live envelope returns its first refusal. This inventory evaluates each independent default row, so a hydration refusal cannot hide missing consolidation or routing evidence in a stock deployment.

Source code in src/symfonic/agent/cutover/default_admission.py
def unmet_default_admission_rows(
    config: Any, bundle: Any
) -> tuple[DefaultAdmissionRow, ...]:
    """List every enabled stock capability this composition cannot serve.

    The live envelope returns its first refusal. This inventory evaluates each
    independent default row, so a hydration refusal cannot hide missing
    consolidation or routing evidence in a stock deployment.
    """
    return tuple(
        row
        for row in DEFAULT_ADMISSION_ROWS
        if getattr(config, row.field) is True and not row.is_served_by(bundle)
    )