CluPilotCloud/resources/views/livewire
nexxo d321719180 Only a real zones array counts as an answer
Measured on the live server: a token with read AND write, the zone
clupilot.cloud present with fifteen records — and the console insisting the
account held no zones at all. Both screenshots contradict the message, so the
message was wrong, and the previous fix did not go far enough.

successful() is not enough. Something in the middle — a portal, a filter, a
proxy — answers with 200 and an HTML page. That body has no `zones` key, `??
[]` turned it into no zones, and the display concluded the Hetzner account was
empty. A 200 is not a promise about who answered.

So the body has to answer the question, not merely arrive: `{"zones": [...]}`
with an actual array, or it is reported as something else having spoken, with
the status and the first 120 characters of what came back. That last part is
what turns it from a verdict into a diagnosis — an operator who sees "Blocked by
policy" knows in one line what nothing else here could have told them.

A genuine `{"zones": []}` still means what it always meant.

2053 tests pass, assets build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:42:31 +02:00
..
admin Only a real zones array counts as an answer 2026-07-31 15:42:31 +02:00
auth Accept terms instead of a start date, and fix the sender no server accepts 2026-07-30 15:22:35 +02:00
backups.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
billing.blade.php Merge main into the operating-mode branch 2026-07-30 17:53:20 +02:00
checkout.blade.php Give the order a checkout page, and stop hiding what a year costs 2026-07-30 16:00:08 +02:00
cloud.blade.php Restart a machine, enforce the quota that was sold, end a route that ended 2026-07-29 18:28:28 +02:00
confirm-book-storage.blade.php Deliver the storage a customer actually buys 2026-07-29 19:13:10 +02:00
confirm-cancel-addon.blade.php Ask whether they are a consumer, and let one change their mind 2026-07-29 21:06:06 +02:00
confirm-cancel-package.blade.php Take the address by field, fix the customer type, ask why they leave 2026-07-30 16:41:32 +02:00
confirm-close-account.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
confirm-delete-own-account.blade.php Discard an unconfirmed registration, and sweep the abandoned ones 2026-07-30 14:08:02 +02:00
confirm-disable-two-factor.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-end-other-sessions.blade.php Show where an account is signed in, and let it sign the other places out 2026-07-28 23:38:17 +02:00
confirm-remove-order.blade.php feat(billing): a cart you can actually read and change 2026-07-26 05:26:49 +02:00
confirm-restart-cloud.blade.php Restart a machine, enforce the quota that was sold, end a route that ended 2026-07-29 18:28:28 +02:00
confirm-revoke-seat.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-withdraw.blade.php Charge the price the website shows, and hand a withdrawal back in full 2026-07-29 22:42:02 +02:00
custom-domain.blade.php Serve the custom domain, not just announce it 2026-07-29 16:44:52 +02:00
customer-provisioning.blade.php Take the order, park it, and say when it will be delivered 2026-07-29 18:50:46 +02:00
dashboard.blade.php Let the customer buy it themselves, and tab the integrations page 2026-07-29 19:42:28 +02:00
edit-mailbox.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
edit-seat.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
invoices.blade.php Say the same thing to the customer, the register and the bank 2026-07-30 01:30:24 +02:00
new-support-request.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
order.blade.php Fix the checkout link, and stop the switch moving under the cursor 2026-07-30 16:05:56 +02:00
sessions.blade.php Show where an account is signed in, and let it sign the other places out 2026-07-28 23:38:17 +02:00
settings.blade.php Give settings the shape a settings page actually has 2026-07-30 17:59:16 +02:00
support.blade.php Editing in modals, an update button that is not gated on a stale reading, and a support page that is real 2026-07-27 17:55:49 +02:00
users.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00