← All frames
Flow 2 · Build session · Frame (b) · route /applications/build

Describe the app

Three inputs, nothing else: where the app will live, its name, and a plain-language brief (≤ 4000 characters) handed to FuzeAgent. Submitting calls POST /api/v1/app-registry/build-sessions and moves to progress (frame c).

(b1) Default — active org context “Acme Corp”, so org is preselected

Build your application

FuzeAgent develops the app and deploys it here. You'll follow along in FuzeAgent.

Where should it live?

Defaults to your current context. The org option appears only when you're an active member of it.

Shown in the menu. You can rename it later; the slug is chosen at deploy and never changes.

412 / 4000

Plain language is fine. Mention who uses it, what they do, and any rules.

Cancel
(b2) Personal context, or no active org membership — org option absent

Building into an organization needs an active membership there. Switch context from the top bar to choose one.

(b3) Client validation — empty name, brief over 4000 (submit disabled; 400 VALIDATION renders the same, inline)

Give the app a name.

4,127 / 4000

The brief is 127 characters over the 4000 limit. Trim it before starting.

(b4) Submitting — inputs locked, one request in flight (no double-submit)
Starting a FuzeAgent session for “Expense tracker” in Acme Corp…

Request. CreateBuildSessionRequest = { context, organizationId?, name, brief }. context=organization sends the active org's org_… id; context=personal sends no organizationId (the server resolves the personal org and rejects one if sent). No id is ever sent — the session id is server-minted. name 1–120, brief 1–4000, both trimmed client-side.
Response. 201 BuildSession → navigate to /applications/build/:id (frame c). Every non-2xx — 503 builder_unavailable, 403, 502, 409 no_personal_org, 429 — is rendered by frame (d), with the form's values kept.
Test hooks: [data-frame='02-build-form'] · [data-panel='build-form'] · [data-input='target'] · [data-target='personal'] · [data-target='organization'] · [data-input='name'] · [data-input='brief'] · [data-counter='brief'] · [data-action='start-build'] · [data-state='invalid'] · [data-state='submitting'].

← Entry cardSession progress →
Review · app-builder approve or reject each flow ↓
build-entrypendingApproveReject
build-sessionpendingApproveReject
creator-ownershippendingApproveReject
marketplace-publishpendingApproveReject