Skip to content

Opting a board in

SuperDispatch places cards only on the boards the operator opts in. There are none until one is, and a production deploy opts none in.

Terminal window
curl -X PUT -H "authorization: Bearer $TOKEN" http://127.0.0.1:8796/v1/boards/brd_…

No body. The answer is the board: { "board": { boardId, enabled, createdAt, updatedAt } }.

Opting in:

  • adds the board to every sweep, and looks at it at once without waiting for the next one;
  • sets the board’s placement window on SuperPipeline (PUT /v1/boards/:id/scheduling, with SUPERDISPATCH_PLACEMENT_WINDOW_SECONDS, 10 by default), so a card that just became ready is held back from pull for that long and placed on delivery of its card.ready. See The placement window.

If SuperPipeline refuses the window, SuperDispatch tries again after five minutes, and the board is still swept meanwhile.

  • The roster for the board in AgentPod is what is placed (with SUPERDISPATCH_CANDIDATES=roster, the default). A board with fewer than two rostered agents for a capability has no choice to make: its cards are recorded as one-candidate and left to pull, and the lane is flagged as a roster suggestion.
  • The hub must list SuperDispatch in its ROSTER_READERS, and SuperDispatch’s credential must have cards:read, dispatch:read and dispatch:reserve. See Running it.
  • For the placement window to help, the event relay must deliver SuperPipeline’s events to SuperDispatch. Without it, the sweep alone places cards and most are lost to pull first.
Terminal window
curl -H "authorization: Bearer $TOKEN" "http://127.0.0.1:8796/v1/decisions?board=brd_…&limit=20"

Each placed card has a decision; each decision settles to an outcome on a later pass. The service log has a line per decision and per settlement:

loop: brd_… card_… pld_… settled claimed by agt_…
Terminal window
curl -X DELETE -H "authorization: Bearer $TOKEN" http://127.0.0.1:8796/v1/boards/brd_…

The board’s row stays, so it can be listed and enabled again with another PUT. Its decisions stay readable, holds already made lapse on their own, and its placement window goes back to none.

Terminal window
curl -H "authorization: Bearer $TOKEN" http://127.0.0.1:8796/v1/boards # every board, enabled or not
curl -H "authorization: Bearer $TOKEN" http://127.0.0.1:8796/v1/boards/brd_… # one board