Skip to content
GitHub
Operations

States

Generated

This page is generated from qa/operations/specs/states.md — the source of truth. Edit the spec, not this page.

Last run: not yet recorded (run the replay suite to populate status).

Overview

Every operator surface should communicate its loading, empty, and error states rather than rendering a blank or broken page. This spec verifies those states across the cockpit so a slow or failing backend reads as an intentional state, not a dead end.

Preconditions

  • Signed in as the seeded operator.

Scenarios

1. Empty worlds list

  • Open the worlds list when no (non-retired) rulesets exist
  • Expected: An explicit empty state (“No rulesets found”) rather than a blank table.

2. Empty rules on a new world

  • Open the detail page of a world with no rules
  • Expected: An explicit empty-rules state.

3. Empty proposed-rules panel

  • Open the Assistant page for a ruleset before the agent has proposed anything
  • Expected: An explicit “no proposed rules yet” empty state in the right-rail proposed-rules list.

4. Empty review queue

  • Open the review queue for a world with no pending candidates
  • Expected: An explicit empty state.

5. Empty version history

  • Open version history for a world with no published versions (the legacy history deep link redirects into the Publish tab where the timeline renders inline)
  • Expected: The page lands on the Publish surface and shows an explicit “no versions published yet” state — not a blank or crashed page.

6. Loading state on a slow read

  • Open a surface whose data is still loading
  • Expected: A loading indicator is shown while the read is in flight.

7. Error state on a failed read

  • Open a surface whose backend read fails
  • Expected: An error message (role=alert) is shown rather than a blank or crashed page.

8. Empty source library on a new ruleset

  • Open the Sources tab of a ruleset with no sources ingested
  • Expected: An explicit empty source-library state (“No sources in this ruleset’s library yet”), and the “pull candidate rules from a source” band is present rather than a blank surface.

Test Data

LabelValueNotes
Fresh world(a world with no rules/candidates/versions)Drives the empty states