Runs, services, and output
What happens after you press Run: statuses, readiness, stopping and restarting, the output view, failure hand-off to a session, and offline behavior.
On this page
Starting a task creates a run — a tab in the dock with a live status dot, streamed output, and actions that match its state. One-shots can run concurrently, even several instances of the same task. Services are different: each service has at most one running instance per worktree, and trying to start it again just focuses the one that’s running.
Statuses
| Status | Meaning |
|---|---|
| Pending | Accepted, process starting (“Starting…” in the summary row) |
| Running | Alive; for one-shots, still working (pulsing teal dot) |
| Ready | A service that passed its readiness checks (violet dot) |
| Passed | One-shot exited 0 |
| Failed / Crashed | One-shot exited nonzero / a service died unexpectedly |
| Stopped | You stopped it (services show SIGINT in the exit column) |
| Connection lost | The host went offline mid-run; final state unknown until it returns |
The summary row under the status tells the truth about what happened: a passed run with lint warnings says “22 warnings”, a failed one says “3 errors” or “Exited with code 1” — counts come from the same problem matchers that feed the Problems panel.
Controlling runs
- Stop sends a graceful terminate and force-kills the process tree a couple of seconds later if it ignores the request. Services are tied to the Glueprint app on their host — quitting the app stops them.
- Run again (one-shots) and Restart (services) start a fresh run and replace the tab you clicked from, so rerunning doesn’t pile up dead tabs.
- Closing runs — finished runs have a close button on their tab, and the tab-overflow menu has Clear finished runs. The dock also keeps only the 12 most recent finished runs per worktree on its own. Runs are live host state: they don’t survive an app restart, and closing a run’s tab never touches the process on the host.
The output view
Output streams live, keeps the last 10,000 lines per run (older lines are dropped with a visible notice), and stays readable:
- test/check markers colorize (passes teal, failures red, service notices violet),
http(s)://URLs are clickable — on desktop they open in your default browser,- text is selectable, and Copy grabs the whole run (command line included),
- when a run produces file diagnostics, the first one becomes a link that opens the file at the exact line in the IDE, and all of them land in the Problems panel.
Sending a failure to an agent
Send failure on a failed run opens the session send menu with a prepared prompt: the task, command, working directory, host, exit code, and the last lines of output in a code fence. Pick a session and the prompt lands in its composer — prefilled, never auto-sent, so you can add context before committing an agent to the investigation.
Offline and reconnect
If the run’s host drops offline, the dock shows an amber “cached tasks and output” banner, disables anything that would need the host, and marks in-flight runs Connection lost. When the host returns, Glueprint re-fetches the host’s run list and reconciles: every run resolves to its true state, and output that streamed while you were disconnected is backfilled in order.
Runs as workspace tabs
A run doesn’t have to stay in the dock. Drag its tab into the workspace tab strip (desktop), or use Move to main workspace from its menu (desktop and portal), and the run becomes a full workspace tab with the same status, output, and actions. Closing that tab just sends the run back to the dock — it never stops the process. Restarting or re-running keeps the run where you put it.
Terminals in the dock
The dock is also a terminal surface. + > New terminal opens one directly in the dock; Move to side panel on any workspace terminal tab (or dragging the tab onto the dock on desktop) relocates it, and Move to main workspace or a drag the other way brings it back. The terminal keeps its buffer and scrollback through every move — it’s the same live terminal, just docked somewhere else.