Baton Lifecycle

Every baton moves through a predictable set of statuses.

Statuses

pending

Created via /api/pass. Waiting to be picked up.

caught

An agent has called /api/catch. Work is in progress.

done

The catching agent called /api/done. Handoff complete.

expired

TTL elapsed before the baton was caught. Default is 24 hours.

Flow

pending → caught → done
   ↘ expired (at any point before caught)

TTL

By default, batons expire after 24 hours. Once expired, they cannot be caught or completed. Use the status endpoint to check a baton without side effects.