Appolis directive · progress on every wait
Nobody waits without knowing they are waiting.
Every button on this page runs a genuinely slow fake job — two to six seconds — so you can watch what FLIP HQ actually does while a door is answering. The pop-ups are the app's own: same markup, same stylesheet, same palette. Nothing here is a picture of a pattern.
A centred pop-up that names the work — then becomes the result
This is what happens when you change your next order. It names the work in specific words, counts the seconds while Recharge answers, and then resolves in the same place into what happened, with Undo and Continue. It never just disappears.
Criteria 2, 6, 7 and 12. The failure case replaces the pop-up with the reason — a spinner that outlives its work is a lie that takes longer to notice.
A short job answers on the control you pressed
Not every wait deserves the middle of the screen. A quick action disables its own button, says what it is doing, and confirms there — so "did my tap land?" and "is the app busy?" get different answers, and a second click cannot fire.
Criteria 1 and 4. An indicator on work that finishes instantly is worse than none — it tells you you are waiting when you are not.
A screen already saying "loading" does not get a pop-up on top
When the wait is the page itself, FLIP HQ labels the place the content will appear and leaves it at that. Two indicators for one wait is noise, and noise is how people stop reading them.
Criterion 2's no-double-telling clause.
No percentage bar
FLIP HQ's longest waits are a single request to Recharge or Shopify. A single request has no honest fraction — it has not finished until it has — so the bar stays indeterminate and the words carry the information instead. Where a total IS known, it is named rather than faked: sending files with a message reads "Sending 2 files…", because the count is real and the completion percentage is not.
Criterion 5, stated honestly: never a fake percentage that does not track real work.
Nothing to reference-count
Two of these cannot be in flight at once. Every order change goes through one sheet, and the control that started it is disabled until the door answers, so there is never a second job to finish early and clear the first one's indicator. The counter that criterion 8 protects against is a bug FLIP HQ cannot have; if it ever gains parallel jobs, it gains the counter with them.
Criterion 8, by construction rather than by code.
Reduced motion stills the bar, it never removes the answer
With "reduce motion" on in your system settings, the sliding bar stops animating and becomes a steady one — the words, the elapsed time and the outcome are untouched. Feedback is never what gets dropped.
Criterion 9. Turn it on in your OS and press any button above to see it.
