Problem
flows status --cloud and flows logs are the user-facing way to inspect a hosted run, but they are built for finished runs.
Proposal
flows status --cloud: render running, backoff, waiting and needs_human steps from Cloud's live snapshot, in the same grammar as the local flows status (↻ agent-5 (agent) running attempt 1/1 6m50s).
flows status --cloud --watch: redraw on an interval until the run is terminal, then print the final page once.
flows logs <run> --follow: poll and append new runner-output lines until the run is terminal. Since cloud#3918, runner output includes one line per step transition ([relayflow] ▶ agent-5 (agent) started, ✓ agent-1 … done in 5m16s · claude-opus-5 · 37 turns · $2.26 · wrote plan.md), so following it is useful even before live snapshots exist.
Acceptance
--follow and --watch exit 0 when the run ends in success, and non-zero otherwise, using the same exit mapping as flows run.
- Both handle Ctrl-C cleanly and never print a partial frame.
- Tests use fake Cloud responses for a run that transitions
running → completed.
Problem
flows status --cloudandflows logsare the user-facing way to inspect a hosted run, but they are built for finished runs.status --cloudshowssteps 0. That part depends on Cloud serving live step snapshots; see https://github.com/AgentWorkforce/cloud/issues/3921.flows logs <run>prints the runner output once and exits. There is no way to follow a run.Proposal
flows status --cloud: renderrunning,backoff,waitingandneeds_humansteps from Cloud's live snapshot, in the same grammar as the localflows status(↻ agent-5 (agent) running attempt 1/1 6m50s).flows status --cloud --watch: redraw on an interval until the run is terminal, then print the final page once.flows logs <run> --follow: poll and append new runner-output lines until the run is terminal. Since cloud#3918, runner output includes one line per step transition ([relayflow] ▶ agent-5 (agent) started,✓ agent-1 … done in 5m16s · claude-opus-5 · 37 turns · $2.26 · wrote plan.md), so following it is useful even before live snapshots exist.Acceptance
--followand--watchexit 0 when the run ends in success, and non-zero otherwise, using the same exit mapping asflows run.running→completed.