The company picker refuses an untick it cannot honour

At Every company, with more than nine companies, unticking one is refused with a reason instead of silently keeping eight.

28 Sept 2026 · branch org-cap-fleet-minus-one · captured against propflow-stage · at 2e1fcce0cd

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 · 1 · Every company, 23 companies on stage: every untick is refused, and the panel says why

Staff at Every company on stage (23 companies). Every row is ticked and greyed, and the line above the footer says why and what to do instead.

Why this is right

Unticking one company would propose a list of 22. A list is capped at eight, so before this change the picker kept eight and named the other fourteen under Not selectable together: companies the viewer never unticked. The selection has no every company but one, so the honest answer is to refuse the tick and name the way out. Each row also carries the same sentence as its hover title.

Asserted in the captured DOM — Every company · Up to 8 companies at a time. Deselect all, then pick the ones you want. · Deselect all · Done

1 · Every company, 23 companies on stage: every untick is refused, and the panel says why

2 · 2 · The way out: Deselect all, then tick the companies you want

After Deselect all, the rows are live again and nothing is refused.

Why this is right

The refusal only applies to a tick that would turn Every company into a list longer than eight. After Deselect all the first tick proposes one company, which is allowed, so the refusal never wedges the picker.

Asserted in the captured DOM — None selected · Done

2 · The way out: Deselect all, then tick the companies you want

3 · 3 · Deselect all, then pick one company: the pick is taken, and Done is live

After Deselect all, ticking one company works. The row ticks, both bulk actions are offered, and Done is enabled.

Why this is right

The refusal applies only to a tick that would turn Every company into a list longer than eight. A pick from the cleared state proposes one company, well under the cap, so it goes through, and Done commits exactly that company (pinned by the unit case with 10 companies, the way to a short list is Deselect all, then tick).

Asserted in the captured DOM — Select all · Deselect all · Done

3 · Deselect all, then pick one company: the pick is taken, and Done is live

What changed, and what did not

Scope and provenance

Changed: ScopePicker gains an optional caller refusal that rides the never-empty refusal's own path; OrgScopeSwitcher uses it only at Every company and only when unticking one would leave more than eight. Not changed: production today (9 companies: unticking one leaves 8, which fits), customers' pickers, the building picker, and the existing cap notice for an already-narrowed list. Captured from this branch's own dev server bound to propflow-stage, signed in as the smoke account (platform staff).

PropFlow Docs