2.7.0 — Trial provisioning and platform hardening
- A trial instance is now reachable at its own custom hostname in addition to the shared default hostname.
- Every TLS-terminated response now sends a Strict-Transport-Security header to harden browser connections.
- Every served page now has a real title tag and meta description so browser tabs and search engines display the correct information.
- Only one trial per account is allowed; a second trial request from the same account returns HTTP 409.
- Creating an instance with a slug that is on the reserved list now returns HTTP 409 with the offending slug.
- Creating an instance with a slug that is already in use returns HTTP 409 with the offending slug.
- When a node is at capacity, new VM creation requests receive HTTP 503 with retry guidance instead of being queued indefinitely.
- Trial slugs over 26 characters are rejected at the API with a clear error message and HTTP 422.
- API slug rules tightened: slugs must be 3-26 lowercase letters, digits, or dashes; requests that violate this return HTTP 422.
- PATCH /env requests now reject quoted integer or boolean values instead of accepting them.
- Trial demo servers now run under Docker instead of the previous container runtime.
- A failed panel container upgrade now restores the previous version automatically.
- A failed platform recipe deployment rolls back to the prior release tree.
- Disk validation surfaces the underlying error message instead of a generic failure when something goes wrong.
- VM disk validation now creates any missing mount points automatically instead of failing.
- The container detail page now shows the image the container was started from.
- Placeholder copy on the public website has been replaced with real product copy.
- Fixed broken links and missing assets across the public website.