Skip to main content

Module eligibility

Module eligibility 

Source
Expand description

Why a ticket is not being dispatched right now: the reporting decision, built only by the daemon’s show/list handlers. The dispatcher does not call this module — scheduler::reconcile checks its own gates inline — so the global gates here mirror the dispatcher’s by construction and must be kept in step with them by hand.

The two paths are not unifiable: the dispatcher asks “given this trigger, which ticket does it select?” while the report asks “given this ticket, is there a trigger that could select it?”. Those are inverse questions, and no single function answers both.

Structs§

Gates
The gates behind a report. All but has_queued_trigger are global; that one is answered per ticket, since a queued trigger may be pinned to a ticket other than the one being described.

Enums§

Ineligible

Functions§

display_state
Blocked is derived from dependency state rather than persisted on the ticket, so display state changes as soon as the last blocker merges.
ticket_ineligibility
Ticket-level reasons win over global gates: a failed ticket is failed whether or not the scheduler is paused.