Acceptance: Main

A browser walk of Main, the operator console, on the offline local stack: the operator sees operations runs, the volume apps, templates and the database, and a non-operator does not.

Prerequisites

Steps

  1. Operator signs in. Open http://127.0.0.1:4319/sign-in?seat=soter-admin&app=main. Expected: signed in as Ada Admin on the Main home page. Screenshot main-01-home.png.
  2. Operations runs. Open /processes. Expected: the list includes one running process per seeded operations template (NFAT Setup Facility, NFAT Enable Facility for Prime, NFAT Subscribe to Facility, Integrator Onboarding, Agent spell review, Verify Solana bridge frozen, Enqueue Solana freeze tx, Agent Onboarding), each at its first step. Screenshot main-02-processes.png.
  3. Open a run. Open "Integrator Onboarding". Expected: the run page with its first step form; its Audit button shows "Run started" by Ada Admin. Do not submit. Screenshot main-03-run.png.
  4. Volume apps. Open /apps/volume-a, then /apps/volume-b and /apps/volume-c. Expected: 30, 18 and 12 synthetic processes respectively (with the default --volume 60); the list loads without a visible stall. Screenshot main-04-volume-a.png.
  5. Templates. Open /templates. Expected: the repository templates, including the spell, allocation risk and operations templates and volume-a to volume-c. Open one; expected: the read-only template view. Screenshot main-05-templates.png.
  6. Database. Open /database. Expected: the collections page loads for the operator. Screenshot main-06-database.png.
  7. A non-operator is refused. Open http://127.0.0.1:4319/sign-in?seat=sff-board&app=main&returnUrl=/database. Expected: a redirect to /processes with no Database navigation, no collections and no write controls; only the allocation-risk deals that seat can read. Screenshot main-07-non-operator.png.

Save every screenshot under .qa-local/screenshots/.

What counts as a failure

  • A sign-in link that does not land in Main signed in as the named seat.
  • A server error, or a blank page after the first compile.
  • A missing operations run or volume app for soter-admin, or a volume count that differs from the seed.
  • sff-board seeing database collections or operations runs.

Known gaps

  • Operations runs whose first step is automated are not seeded, so not every template has a run.
  • Impersonation is available to soter-admin but is not walked here.
  • The operator's process list (GET /api/process) took about 25 s per load on the first walk, under next dev with the #83 volume's large embedded programs; it is the list cost #83 targets.