A viewer with no company: every card says not available, none loads forever

The #15155 rule, done properly: no prompt, no new wording, and no stats read for an account that holds no building.

5 Oct 2026 · branch fix/empty-grant-dashboard-refused · captured against propflow-stage · at 0121b50b4c5+local

Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.

1 · Dashboard, a viewer who holds no company

Signed in as the synthetic zero-grant evidence account on propflow-stage (its only role was ended by stage-zero-grant-identity.ts). No pick prompt and no new sentence; the cards show the existing Not available for this selection instead of loading bars, and the page asks the stats routes nothing.

Asserted in the captured DOM — Not available for this selection. The existing not-available state is on screen.

Dashboard, a viewer who holds no company
Sections 2–2 and notes

2 · Maintenance hub, the same viewer

The hub's Maintenance card shows the same existing state; no notice above it.

Asserted in the captured DOM — Not available for this selection · Maintenance. Existing not-available state and the hub heading.

Maintenance hub, the same viewer

Controls

One company picked (numbers as before), and the same page with the stats read failing (“Couldn't load” where nothing was seeded, the seeded Maintenance headline kept): pr-16930-control. A separate page because it is captured as the staff smoke login, not the zero-grant account.

PropFlow Docs