Skip to content

Bottom dock

The bottom dock sits under the workflow canvas. Collapse or expand it with the chevron; when open you can drag the top edge to resize.

TabWhat it shows
Run logLive stream of the current (or last) run
✗ IssuesHard readiness problems that block ▶ / ≫
⌀ Loose endsSoft hygiene — things you probably didn’t mean

When an in-tab run parks at a gate, an approval or live handoff panel appears above the tabs (not a separate tab).

Click a row in Issues or Loose ends to select that node and pan to it (without slamming the zoom).


While a graph runs (in-tab or a server job you’re watching), the log streams:

  • node starts and finishes, with durations
  • token / spend lines from agents
  • tripwire evaluations
  • custom-node stderr (even on success)
  • a summary line when the run is refused before start

Clear empties the buffer for this editor session. Reopening a graph mid–server-job re-attaches and keeps appending.


✗ Issues is the always-on view of the same readiness check that runs before ▶ and ≫. The count badge turns red when anything is listed.

KindTypical cause
wiringRequired input has no inbound wire
customA required named port is empty
modelAn agent node with no model picked
contextContext node with no payload and no session source
artifactSkill / rules node with nothing selected
live-handoffLive handoff with no agent on the node and no inbound session
frameA linked frame wired in a way that can’t resolve

If you press ▶ while issues remain, the run is refused, offending nodes flash, the dock opens on this tab, and a modal lists the same rows.

Issues are gates. Fix them (or mute the node) before a run can start. Soft problems stay in Loose ends.


Advisory lint that never blocks a run by itself: dangling outputs, unreachable nodes, unused params, muted nodes, plus wiring rows that also appear under Issues.

Full table: Loose ends.


In-tab runs that hit an approval gate, a tripwire set to park, or a live handoff pause here:

PanelWhat you do
Approval / parkEdit the text (a splice), then approve or abort
Live handoffChat until Ready; distill or excerpt continues the run

Server jobs ( without interactive gates, , threadle run --detach) cannot park for a human — use approve-all, or keep those gates out of the graph.