Stable domains
Published tunnels can now request a stable domain instead of relying only on a generated endpoint.
Each tunnel project owns a domain namespace under its engine host. A tunnel can request a hostname in that namespace, such as api-<project-endpoint>.t.<engine-host>, and the engine validates that the requested value belongs to the same project before accepting it.
This keeps public URLs stable across tunnel recreation when a service has a known identity. It also preserves the existing allocation model: if no hostname is provided, the engine still allocates a standard tunnel endpoint automatically.
The runtime protocol now returns hostname and port separately. The older host value remains available for compatibility, but new clients should use the explicit fields.
The CLI also keeps a generated stable domain during reconnect and reconcile loops when the user did not provide a hostname, reducing URL churn during short disconnects.
Stable domain support in rstream forward, rstream run, and WebTTY flows is available in rstream Go CLI 1.13.0 and later.
For setup details and validation rules, refer to the stable domains guide.