cadrumo.entrypoints.tui.modelo.view.verification module

The modelo.workspace.verification read destination.

Shows the canonical verification findings, the readiness axes, and the verification capability’s own disposition. It derives NO second readiness verdict: ModeloWorkspaceReadinessV1.ready is the answer, produced by the one canonical readiness producer and passed through unmodified, and this screen renders the axes beside it rather than recomputing agreement between them. A screen that recombined the axes could disagree with ready and would then be asserting a verdict no producer reached.

Every value leads with the operator’s words: the disposition, each finding’s severity, kind and message, and the readiness answers are named rather than shown as transport tokens or True/False. The producer attribution and each finding’s legal references stay reachable in a collapsed technical-details group.

Evidence and recovery actions are STATED AS NOT CARRIED – in one plain sentence – rather than shown as empty columns. ModeloWorkspaceCapabilityV1 and the refusal types declare evidence, facts and recovery_action, and no producer populates them on those types – while the surrounding application layer attaches ActionReference to comparable verdicts routinely. So the emptiness is an upstream omission, not a finding that no evidence exists, and two empty columns would quietly convert the first into the second.

Only the VERIFICATION_READINESS capability is shown here. The complete denominator belongs to the overview destination; repeating it would put the same closed set at two addresses, and the row that matters on this screen is the one naming this screen’s own subject.

class ModeloWorkspaceVerificationScreen(session, *, id=None)[source]

Bases: TypedAppAccess, AccountChromeScreen

Findings, readiness axes, and this screen’s own capability disposition.

Parameters:
BINDINGS: ClassVar

A list of key bindings.

compose()[source]

Called by Textual to create child widgets.

This method is called when a widget is mounted or by setting recompose=True when calling [refresh()][textual.widget.Widget.refresh].

Note that you don’t typically need to explicitly call this method.

Return type:

Iterable[Widget]

Example

def compose(self) -> ComposeResult:
    yield Header()
    yield Label("Press the button below:")
    yield Button()
    yield Footer()
on_mount()[source]

Populate the header, the capability line, and each axis or its disposition.

Return type:

None

action_quit_verification()[source]

Leave the destination without returning a value; this screen decides nothing.

Return type:

None

action_toggle_appearance()[source]

Switch between the two shipped appearances.

Return type:

None

can_focus: bool

Widget may receive focus.

can_focus_children: bool

Widget’s children may receive focus.