← All frames
Flow 2 · Build session · Frame (c) · route /applications/build/:sessionId

Session in progress

One page per session, addressable and reload-safe. The stepper maps the four forward-only BuildStatus values a user can watch — launching → building → deploying → deployed — with requested folded into launching. The real work happens in FuzeAgent, so the primary action is the deep link there; the secondary is Cancel.

(c1) Building — agent link present, cancel available

Expense tracker

Building into Acme Corp · started 4 min ago

Building
  1. Launching
  2. Building
  3. Deploying
  4. Deployed
Where
Acme Corp (organization)
Session
front_abs_01j9z3m7q8c4v2k6t0r5x1n8ya
Brief

Let team members log expenses with a receipt photo, amount, currency and category. Managers approve or reject with a comment…

Back to Applications
(c2) Launching — agentSessionUrl not yet known: no link rendered (never a dead button)
  1. Launching
  2. Building
  3. Deploying
  4. Deployed
Starting a FuzeAgent session… the link to follow it appears here once the agent provides one.
(c3) Deploying — the agent registered the app and is rolling it out
  1. Launching
  2. Building
  3. Deploying
  4. Deployed

Deploying to Acme Corp. Cancelling now stops tracking here but can't undo a rollout already in progress.

(c4) Cancel confirm — POST /build-sessions/{id}/cancel
(c5) Loading — first GET /build-sessions/{id}

Updates. The contract has no push channel for sessions, so the flow polls GET /build-sessions/{id} while the status is in-flight (requested, launching, building, deploying): every 5 s for the first minute, then backing off to 30 s, paused while the tab is hidden, stopped on a terminal status. The status pill and stepper announce changes through aria-live="polite".
Agent deep link. Rendered only when agentSessionUrl is non-null and resolves to the shell's own origin (/app/fuzeagent/…); it navigates in-shell. A cross-origin or malformed URL is not rendered as a link — fail-closed against an open redirect.
Cancel. Shown to the requester and org managers while in-flight. A 409 on cancel means the session reached a terminal state first: refetch and render that state (frame d), no error toast.
Test hooks: [data-frame='03-build-progress'] · [data-panel='build-session'] · [data-panel='build-stepper'] · [data-session-status='building'] · [data-session-status='launching'] · [data-session-status='deploying'] · [data-step-state='current'] · [data-action='open-agent-session'] · [data-state='agent-link-pending'] · [data-action='cancel-build'] · [data-action='confirm-cancel-build'] · [data-state='loading'].

← Build formOutcomes & errors →
Review · app-builder approve or reject each flow ↓
build-entrypendingApproveReject
build-sessionpendingApproveReject
creator-ownershippendingApproveReject
marketplace-publishpendingApproveReject