Implementation: ENABLED (manual, timer gates) · DESIGN (dependency and event gates as nodes) · Exposure: INTERNAL. See status labels. A wait gate holds a node out of the ready set until a condition is met. Nothing runs while it waits, and no process has to stay alive.

Architecture contract

  • A gated node is not ready and is not leased.
  • A run whose active nodes are all gated reports waiting. Nothing is asked of you. If a person is needed, the run raises an attention request and reports needs_attention instead.
  • Wait gates become graph nodes, so they are validated, receipted and replayed like any other step.
Why: agents often have to wait for hours or days. Keeping a model loop or a process alive to do that is expensive and fragile. A durable gate costs nothing while it waits and survives restarts.

Current implementation

The work runtime on main has manual and timer wait gates attached to graph nodes. A manual gate puts the node in the needs-you list until a person resolves it with their identity recorded. Timer gates are driven by the keyed wake queue. Dependency and event gates, and gates as first-class graph nodes, are designed but not built.

Availability

Developer relevance

If your step has to wait, declare a gate instead of sleeping or polling inside an executor. The executor can exit and the work resumes when the gate opens.