OptionalactionThe MJ: Action Execution Logs row this pass produced, when the loop body is an ACTION.
Without it an action-bodied pass recorded no pointer at all, so it had no cost, no timing and nothing to open — and the tree, having neither a prompt run nor an agent run to go on, fell to its last branch and labelled the pass a Sub-Agent. A loop over a web search then presented five sub-agent runs that never happened.
OptionalagentThe MJ: AI Agent Runs row this pass started, when the loop body is a sub-agent.
OptionalerrorWhy the pass failed, when it did.
Zero-based pass number, so iterations render in the order they ran.
OptionalpayloadWhat this pass gave back — the body's own output, on the same basis as payloadAtStart, and subject to the same budget marker.
OptionalpayloadWhat THIS pass was handed — the body's resolved input, not the loop's running payload.
A pass is the ONLY unit of work in a graph with no row of its own, so there is nowhere else
for its input and output to live. Without them every pass presented null on both sides and
the run view could say nothing about any individual iteration — which for a loop is the only
interesting question, since the step's own payload shows just the final accumulated state.
Deliberately the pass's own input rather than "the running payload before this pass". The latter is the obvious reading of a before/after pair and is quadratic: every pass would carry a full copy of everything the earlier passes accumulated. A five-iteration demo produced a 121KB configuration that way, and the same loop over fifty items would produce megabytes — in a column that the run tree, the timeline, the canvas and the run list all load.
May instead hold { __omitted, __bytes, __limit } when a size budget was exceeded. Stated
rather than left empty, because a pass showing nothing is otherwise indistinguishable from a
pass that produced nothing.
OptionalpromptThe MJ: AI Prompt Runs row this pass produced, when the loop body is a prompt.
OptionalsuccessWhether the pass succeeded. A loop with continueOnError can have failed passes and still finish.
What one pass of a loop produced.
Deliberately just pointers plus outcome: the
AIPromptRun/AIAgentRunrows are the durable record of what happened, and copying their cost here would create a second number to disagree with the first — the exact failure this whole area has been fixing.