Python CLI tool

Bad input hardening

Migrate to uv-based build and packaging

The Treachery of Development

Add end to end tests

Diagnose end to end test failure

Fix end to end test CI job

Optimize end to end tests

Migrate to modern linting tools

Abstract the provider interfaces

Implement support for the Vultr hosting platform

Allow separate DNS zone config per hosting provider

Fix Vultr end to end test failure

Diagnose and fix the open Vultr issues

Address dependabot security alerts

Finish updating outdated GitHub Actions

Fix stale session ID reads in the browser context

Move the default config directory to ~/.config/machine

Add a check subcommand to validate configuration

Modernize the build tooling for the cluster utility

Add support for the GCP hosting provider

Support provisioning multiple ssh keys

Add a backup feature for docker deployments to the stack tool

Improve API auth failure handling in machine

Add wrappers abstraction to stack

Add comments to the machine provisioning scripts