symfonic.agent.cutover.dispatch_outcomes¶
dispatch_outcomes ¶
Opt-in observations of real invocation dispatch, never turn payloads.
This is not a population certificate. A host must explicitly install a sink; an absent sink records nothing and changes no route. The observer counts sink failures so an instrumented host can detect capture loss without failing turns.
DispatchOutcomeEvent
dataclass
¶
DispatchOutcomeEvent(entrypoint: str, outcome: str, capability: str, reason_code: str = 'none', selected_route: str = 'none')
Closed, metadata-only result of one actual dispatch attempt.
DispatchOutcomeObserver ¶
Observe each selected body or approved preflight refusal once.
Source code in src/symfonic/agent/cutover/dispatch_outcomes.py
capture_counts
property
¶
Return health and successful sink calls from one atomic reading.
capture_snapshot
property
¶
Return measured health only when a dispatch sink is installed.
direct_legacy ¶
Classify an existing legacy route without reading free-text reasons.
Source code in src/symfonic/agent/cutover/dispatch_outcomes.py
guard ¶
Observe a known pre-dispatch refusal without changing its exception.
Source code in src/symfonic/agent/cutover/dispatch_outcomes.py
pre_body ¶
Account for preparation failing after a route is selected.
Source code in src/symfonic/agent/cutover/dispatch_outcomes.py
preflight ¶
Only the known cutover-refusal family is an approved rejection.