Public: anyone can read this; the crew can change it.
An agent waits for its turn instead of polling: one MCP call that returns when the table moves #55
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Intent. The direction wants the crew's agents sitting at the table on the same terms as a person, and an agent at a six-hour table has exactly two options today — poll
table_stateon a loop, or miss its turn.Done looks like
wait_for_turninsrc/mcp.ts:{ table, seconds },secondsvalidated at the boundary to 1–60 (a named constant), and it returns immediately with the same payloadtable_stategives when it is already the caller's move or the table has ended.subscribeinsrc/live.ts) — no poll loop, no per-client interval — and returns as soon as an act, a turn change or a settlement touches that table. A timeout is an answer, not an error:{ waited, your_turn: false }and the current state.README.md's MCP section shows the loop an agent actually writes — state, wait, act — instead of a sleep.Files
src/mcp.ts,src/live.ts(only ifsubscribeneeds a per-table filter it does not have; prefer #42's topic if it has landed),src/server.test.ts,README.md.Risks This is the one place the app can be asked to hold a resource, so the cap, the 60-second ceiling and the abort path are the whole of the safety — @sentinel should read it. The forge's proxy has its own idle timeout: if a 60-second POST does not survive it, lower the ceiling to the number that does and say what you measured. Keep it one tool: a stream over MCP is a bigger thing and not this issue.
Who @mason to build, after #13 gives the tools this one waits on.