CluPilotCloud/resources/views/livewire/admin
nexxo dc35e5310f
tests / pest (push) Failing after 9m23s Details
tests / assets (push) Successful in 28s Details
tests / release (push) Has been skipped Details
Release v1.3.93 — die Seite konnte den Host gar nicht fragen
Auf echter Hardware blieb jede Messkachel leer, während der Host sichtbar
online war und vor zwei Minuten geantwortet hatte. Kein Zufall und kein
Aussetzer: ein Entwurfsfehler.

Nur der queue-provisioning-Container hängt im WireGuard-Netz — NET_ADMIN,
/dev/net/tun, das wireguard-Volume. Der app-Container, der die Konsole rendert,
hat überhaupt keine Route zu 10.66.0.x. Ich hatte den Proxmox-Aufruf in
render() gelegt, also in den einen Container, der die Management-Adresse nicht
erreichen kann. Ein Aufruf von dort konnte nie etwas anderes sein als eine
Zeitüberschreitung.

PingHosts schreibt dieselbe Regel seit Langem in seinen Kopf: "runs on the
provisioning queue, which is where the Proxmox credentials are usable." Ich
habe sie gelesen und nicht angewendet.

Verschlimmert hat es mein eigenes catch (Throwable): der Grund wurde
verschluckt, und die Kachel sagte "keine Messwerte" — ununterscheidbar davon,
dass der Host schweigt. Auf dem Testhost fiel nichts auf, weil TEST-NET
ohnehin nie antwortet.

Jetzt zwei Hälften:

- HostLoadSeries::collect() holt und legt ab, aus Jobs\CollectHostLoad auf der
  provisioning-Warteschlange, minütlich — der Takt, in dem Proxmox einen
  frischen Messwert schreibt. Ein Fehlschlag wird protokolliert, mit Host,
  Node und Grund.
- HostLoadSeries::forHost() liest nur aus dem Zwischenspeicher und öffnet nie
  eine Verbindung. Ein Test hält das mit Http::assertNothingSent() fest.

Der Eintrag lebt fünf Minuten bei minütlichem Sammeln: länger als der Takt,
damit ein ausgefallener Lauf keine Seite leert, die eine Sekunde vorher in
Ordnung war — und kurz genug, dass ein stehengebliebener Sammler die Zahlen
mitnimmt, statt eine alte Stunde als aktuell stehenzulassen.

Der Sammler ist ShouldBeUnique (Codex-Befund, P1). Die provisioning-Warteschlange
ist DIESELBE, auf der Kunden-Bereitstellung läuft; ein stiller Host kostet den
vollen HTTP-Zeitablauf, und ohne diese Sperre stauten sich minütlich neue Läufe
hinter dem alten und verzögerten bezahlte Arbeit. Dasselbe Mittel, das
CollectInstanceTraffic nebenan schon benutzt.

Dazu: der Zustands-Punkt war mit 62 px so groß wie der Speicher-Ring nebenan.
Eine gefüllte Scheibe wiegt optisch weit mehr als ein dünner Ring und erschlug
die Kachel — jetzt 32 px.

Und ein Test, der aus Versehen recht behielt: die Kachel-Prüfung verglich mit
"50", was auch die 500 GB in der Instanzenliste darunter trifft. Sie prüft
jetzt Zahlen, die sonst nirgends auf der Seite vorkommen.

Noch offen, nicht hier angefasst: VmTemplateCheck fragt die Proxmox-API
ebenfalls aus dem app-Container heraus, von der Bereitschaftsseite aus. Selber
Fehler, Bestand, eigener Punkt.

Geprüft: 2299 Tests grün, Pint sauber, Codex ohne Befund. Im Browser mit
eingespielten Messwerten: sechs gefüllte Kacheln, Zustands-Scheibe in
Proportion.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 11:23:00 +02:00
..
capacity.blade.php Take the order, park it, and say when it will be delivered 2026-07-29 18:50:46 +02:00
check-result.blade.php Pruefergebnis als Modal statt am Seitenende 2026-07-31 21:36:43 +02:00
close-dunning-case.blade.php Mahnwesen: Einstellungen und die zwei Eingriffe von Hand 2026-07-31 22:43:52 +02:00
confirm-delete-datacenter.blade.php One definition of the navigation, and the country instead of the building 2026-07-27 16:09:39 +02:00
confirm-delete-incident.blade.php Let an incident be deleted, and start measuring whether the hosts answer 2026-07-29 15:16:48 +02:00
confirm-delete-plan-draft.blade.php feat(admin): a console for creating, pricing and scheduling plans 2026-07-26 12:41:51 +02:00
confirm-delete-vpn-peer.blade.php feat(admin): VPN access management with live peer state 2026-07-25 21:38:12 +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-forget-secret.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-generate-ssh-key.blade.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
confirm-publish-dpa.blade.php Deliver the processing agreement, and hold the proof it was accepted 2026-07-30 16:56:57 +02:00
confirm-reissue-vpn-peer.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-remove-host.blade.php One definition of the navigation, and the country instead of the building 2026-07-27 16:09:39 +02:00
confirm-restart-instance.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-save-env.blade.php Add a raw .env editor to the Integrations page, with a net under it 2026-07-29 01:51:27 +02:00
confirm-save-secret.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-switch-mode.blade.php Put the switch where it governs, and say when it is thrown 2026-07-30 15:09:38 +02:00
confirm-sync-catalogue.blade.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
customer-detail.blade.php Let an operator correct a customer's details 2026-07-29 23:18:46 +02:00
customers.blade.php Ask whether they are a consumer, and let one change their mind 2026-07-29 21:06:06 +02:00
datacenters.blade.php Let a datacenter code be corrected while nothing depends on it, and say which building 2026-07-28 22:25:21 +02:00
edit-customer.blade.php Take the address by field, fix the customer type, ask why they leave 2026-07-30 16:41:32 +02:00
edit-datacenter.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
edit-export-target.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
edit-invoice-series.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
edit-mail-template.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
edit-plan-family.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
extend-dunning-deadline.blade.php Mahnwesen: Einstellungen und die zwei Eingriffe von Hand 2026-07-31 22:43:52 +02:00
finance.blade.php Quote what a person pays, and tab the settings page 2026-07-29 19:18:10 +02:00
grant-plan.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
host-create.blade.php Rebuild Add host as a page with one job, and let downloads through the gate 2026-07-30 21:51:30 +02:00
host-detail.blade.php Release v1.3.93 — die Seite konnte den Host gar nicht fragen 2026-08-01 11:23:00 +02:00
hosts.blade.php Rebuild Add host as a page with one job, and let downloads through the gate 2026-07-30 21:51:30 +02:00
inbox.blade.php Read the mailbox password where it actually is, and let the console test it 2026-07-30 13:12:29 +02:00
incidents.blade.php Let an incident be deleted, and start measuring whether the hosts answer 2026-07-29 15:16:48 +02:00
instance-admin-access.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
instances.blade.php Restart a machine, enforce the quota that was sold, end a route that ended 2026-07-29 18:28:28 +02:00
integrations.blade.php Testergebnis erscheint am Feld statt am Seitenende; DNS-Token bekommt einen Testknopf 2026-07-31 21:26:14 +02:00
invoices.blade.php Write an invoice for work that came off no price list 2026-07-29 20:12:26 +02:00
mail-log.blade.php Keep a register of what was sent, and answer the customer from here 2026-07-29 21:02:36 +02:00
mail-preview.blade.php Accept terms instead of a start date, and fix the sender no server accepts 2026-07-30 15:22:35 +02:00
mail-templates.blade.php Say that a click landed, and make moving one actually move it 2026-07-29 23:06:30 +02:00
mail.blade.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
maintenance.blade.php Show times on the operator's clock, keep storing them in UTC 2026-07-27 17:32:21 +02:00
new-invoice.blade.php Write an invoice for work that came off no price list 2026-07-29 20:12:26 +02:00
overview.blade.php Keep a register of what was sent, and answer the customer from here 2026-07-29 21:02:36 +02:00
payment-problems.blade.php Mahnwesen: Einstellungen und die zwei Eingriffe von Hand 2026-07-31 22:43:52 +02:00
plan-versions.blade.php Sell the year as well as the month, and say what it saves 2026-07-30 15:44:35 +02:00
plans.blade.php Let the owner mark one plan as recommended, from the console 2026-07-29 14:22:22 +02:00
processing-agreements.blade.php Store the agreement where the web process can actually read it 2026-07-30 17:19:39 +02:00
provisioning.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
proxy-hosts.blade.php Fill the hostname page from the installation, not from a blank form 2026-07-31 00:53:12 +02:00
readiness.blade.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
record-withdrawal.blade.php Charge the price the website shows, and hand a withdrawal back in full 2026-07-29 22:42:02 +02:00
reissue-takeover.blade.php Release v1.3.82 — Übernahme-Befehlszeile neu ausstellen 2026-08-01 01:00:53 +02:00
resolve-failed-checkout.blade.php R20: Begruendung im Modal, und der Waechter sieht jetzt auch Listenzeilen 2026-07-31 22:09:05 +02:00
revenue.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
roles.blade.php Rollen: aufklappbare Karten, gruppierte Rechte, Knopf im Raster 2026-07-31 22:39:46 +02:00
settings.blade.php Passwortrichtlinie einstellbar, doppelte Anmelde-Mail behoben 2026-07-31 20:53:19 +02:00
two-factor-setup.blade.php Quote what a person pays, and tab the settings page 2026-07-29 19:18:10 +02:00
vpn-config-access.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
vpn.blade.php Release v1.3.84 — VPN-Zugänge nach Personen und Hosts getrennt 2026-08-01 02:34:15 +02:00