CluPilotCloud/app
nexxo 35324b986a
tests / pest (push) Successful in 6m48s Details
tests / assets (push) Successful in 19s Details
tests / release (push) Has been skipped Details
fix(billing): no free upgrade in the last hours of a term
Flooring the remaining time made an upgrade with under a day left cost nothing,
and an upgrade requested after the period had ended cost nothing while being
applied immediately — the bigger plan for free. Remaining time now rounds up
while any service is left, and an expired period defers the change to the next
term instead of pricing it at zero.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-26 09:55:53 +02:00
..
Actions fix(auth/admin): atomic user+customer signup; Rule::in for country validation (comma-safe) 2026-07-25 18:33:09 +02:00
Console feat(deploy): installer and updater for a fresh server 2026-07-25 23:13:24 +02:00
Http fix(traffic): release the throttle at month end; close the Livewire bypass 2026-07-25 23:36:38 +02:00
Livewire fix(billing): VAT follows the customer, not a global setting 2026-07-26 09:30:17 +02:00
Mail fix(admin): confirm maintenance delivery via MessageSent (retryable until sent); guard resend/cancel on derived state; fix flaky non-unique host wg_ip 2026-07-25 16:14:01 +02:00
Models fix(billing): upgrade or downgrade is decided by rank, not by price 2026-07-26 09:52:28 +02:00
Notifications fix(engine-b): default-deny firewall, disk-based capacity, synchronous credential mail 2026-07-25 12:39:15 +02:00
Policies fix(vpn): losing the operator roles closes the owner doors by itself 2026-07-25 22:50:13 +02:00
Providers fix(security): close the Livewire bypass of the admin host restriction 2026-07-25 20:50:22 +02:00
Provisioning fix(admin): never reset a stranger's VM, never leave the console spinning 2026-07-26 05:32:53 +02:00
Services fix(billing): no free upgrade in the last hours of a term 2026-07-26 09:55:53 +02:00
Support feat(traffic): meter the monthly allowance, show it, throttle instead of blocking 2026-07-25 23:33:47 +02:00