crabbox/internal/cli
Jonathan Moss 00725544c7
feat(azure): support linux and native windows leases
Add Azure as a managed provider for direct and brokered Crabbox leases.

- provision Azure Linux VMs with cloud-init, spot fallback, shared network adoption, and per-lease cleanup
- provision native Azure Windows VMs with VM Agent bootstrap and SSH/sync/run support
- add Azure broker support in the Cloudflare Worker, provider config, docs, and tests
- fix async Azure delete handling so successful 202 delete LROs do not refetch deleted resources
- keep Go core coverage above the CI threshold

Verified with CI plus live Azure Linux and native Windows leases.

Co-authored-by: Jonathan Moss <2729151+jwmoss@users.noreply.github.com>
2026-05-08 08:23:38 +01:00
..
actions_test.go feat(actions): support configured hydrate fields 2026-05-02 14:49:48 -07:00
actions.go Merge pull request #34 from openclaw/feat/portal-run-detail 2026-05-05 23:58:39 -07:00
admin.go refactor: route cli commands through kong 2026-05-04 22:45:43 +01:00
app.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
artifacts_publish.go feat: improve desktop reliability artifacts 2026-05-08 04:52:51 +01:00
artifacts_test.go feat: add collaborative webvnc observer mode 2026-05-08 06:25:10 +01:00
artifacts.go feat: add collaborative webvnc observer mode 2026-05-08 06:25:10 +01:00
auth_test.go fix: canonicalize portal login origin 2026-05-03 23:27:39 -07:00
auth.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
aws_ssh_cidr.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
aws_test.go feat: support managed AWS Windows WSL2 (#23) 2026-05-04 02:06:49 -07:00
aws_windows_bootstrap.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
aws.go feat(aws): route capacity across regions 2026-05-06 15:00:49 -07:00
azure_test.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
azure.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
bootstrap_test.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
bootstrap.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
cache_test.go fix: harden cache and result handling 2026-05-01 06:13:33 +01:00
cache.go refactor: add provider backend registry 2026-05-06 05:23:07 +01:00
capabilities.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
claim_test.go feat: add blacksmith provider and harden broker auth 2026-05-01 11:12:23 +01:00
claim.go ci: restore provider coverage gate 2026-05-06 09:11:17 +01:00
cli_kong.go feat: improve desktop reliability artifacts 2026-05-08 04:52:51 +01:00
code_test.go fix: keep bridge tickets out of websocket urls 2026-05-06 20:29:06 -07:00
code.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
compat.go feat: add direct Hetzner testbox runner 2026-04-30 17:28:34 +01:00
config_cmd.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
config_test.go feat(capacity): return broker routing hints 2026-05-06 15:44:43 -07:00
config.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
coordinator_capabilities_test.go feat(cli): add code lease bridge command 2026-05-05 02:31:47 -07:00
coordinator_test.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
coordinator.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
daemon_unix_test.go fix(webvnc): stop daemon child bridge 2026-05-05 21:10:01 -07:00
daemon_unix.go fix: stabilize webvnc reconnects 2026-05-06 07:40:01 +01:00
daemon_windows.go fix: stabilize webvnc reconnects 2026-05-06 07:40:01 +01:00
desktop_input.go feat: add collaborative webvnc observer mode 2026-05-08 06:25:10 +01:00
desktop_test.go feat: improve desktop reliability artifacts 2026-05-08 04:52:51 +01:00
desktop.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
doctor.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
egress_test.go fix: allow public coordinator egress starts 2026-05-07 06:16:26 +01:00
egress.go fix: allow public coordinator egress starts 2026-05-07 06:16:26 +01:00
errors.go ci: restore provider coverage gate 2026-05-06 09:11:17 +01:00
flags_test.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
flags.go refactor: add provider backend registry 2026-05-06 05:23:07 +01:00
fmt.go feat: add direct Hetzner testbox runner 2026-04-30 17:28:34 +01:00
hcloud.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
history_test.go feat: add run attach and event pagination 2026-05-02 08:38:56 +01:00
history.go feat(history): summarize run telemetry 2026-05-05 22:40:01 -07:00
image.go refactor: route cli commands through kong 2026-05-04 22:45:43 +01:00
init_test.go fix: keep passthrough help local 2026-05-04 23:32:22 +01:00
init.go fix(ssh): configure fallback ports 2026-05-01 04:51:15 -07:00
inspect.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
lease_flags.go fix: retry ssh fallback ports for desktop paths 2026-05-07 14:52:21 +01:00
lease.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
media_test.go feat: add motion-trimmed media previews 2026-05-05 07:52:02 +01:00
media.go feat: improve desktop reliability artifacts 2026-05-08 04:52:51 +01:00
network_test.go fix: harden 0.6.1 runtime checks 2026-05-07 01:14:26 +01:00
network.go fix: harden 0.6.1 runtime checks 2026-05-07 01:14:26 +01:00
pool_test.go fix(cli): infer mirrored testbox repos 2026-05-06 03:33:42 -07:00
pool.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
provider_backend_test.go fix: harden daytona auth and resource flags 2026-05-06 23:17:45 +01:00
provider_backend.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
provider_coordinator_test.go fix: fall back from coordinator pool list 2026-05-07 14:52:15 +01:00
provider_coordinator.go fix: fall back from coordinator pool list 2026-05-07 14:52:15 +01:00
provider_exports.go ci: restore provider coverage gate 2026-05-06 09:11:17 +01:00
provider_labels_test.go feat: support tailscale exit nodes 2026-05-06 09:47:42 +01:00
provider_labels.go feat: support tailscale exit nodes 2026-05-06 09:47:42 +01:00
providers_builtin_test.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
providers_common.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
repo_test.go Reapply "feat: add crabboxignore sync excludes" 2026-05-05 02:29:06 -07:00
repo.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
rescue_test.go feat: add desktop WebVNC rescue output 2026-05-07 14:13:23 +01:00
rescue.go feat: add collaborative webvnc observer mode 2026-05-08 06:25:10 +01:00
results_parse_test.go fix: handle empty junit failure lists 2026-05-04 21:51:30 +01:00
results_parse.go fix: handle empty junit failure lists 2026-05-04 21:51:30 +01:00
results_remote.go feat: add macOS and Windows SSH targets 2026-05-03 19:44:16 +01:00
results.go feat: add test results and cache controls 2026-05-01 04:31:19 +01:00
run_output_events.go fix(cli): suppress legacy run event warnings 2026-05-02 15:51:26 -07:00
run_recorder_test.go feat(history): summarize run telemetry 2026-05-05 22:40:01 -07:00
run_recorder.go feat(telemetry): record run samples 2026-05-06 02:25:56 -07:00
run_test.go fix: repair managed macos desktop readiness 2026-05-07 12:45:27 +01:00
run.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
runlog_test.go fix: retain chunked run logs 2026-05-02 12:06:59 +01:00
runlog.go fix: retain chunked run logs 2026-05-02 12:06:59 +01:00
screenshot_test.go feat: launch apps on crabbox desktops 2026-05-04 07:19:21 +01:00
screenshot.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
share.go feat: add lease sharing 2026-05-07 13:39:07 +01:00
slug_test.go fix: make Crabbox provider names lease-unique 2026-05-05 10:36:24 +01:00
slug.go ci: restore provider coverage gate 2026-05-06 09:11:17 +01:00
ssh_cmd.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
ssh_test.go fix: retry ssh fallback ports for desktop paths 2026-05-07 14:52:21 +01:00
ssh.go fix: retry ssh fallback ports for desktop paths 2026-05-07 14:52:21 +01:00
static.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
status_test.go fix: require active coordinator lease for status readiness 2026-05-06 05:27:10 +01:00
status.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
sync_plan_test.go feat: improve crabbox run diagnostics 2026-05-01 06:43:25 +01:00
sync_plan.go Reapply "feat: add crabboxignore sync excludes" 2026-05-05 02:29:06 -07:00
sync_windows_target.go Reapply "fix: keep WSL2 sync on fast rsync path" 2026-05-05 02:28:07 -07:00
target_test.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
target.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
telemetry_test.go feat(portal): record lease telemetry snapshots 2026-05-05 22:17:23 -07:00
telemetry.go feat(telemetry): record run samples 2026-05-06 02:25:56 -07:00
timing.go refactor: split provider backends 2026-05-06 09:03:19 +01:00
usage.go feat: add orchestrator usage and cost controls 2026-05-01 01:53:13 +01:00
version.go chore: bump version to 0.7.0 2026-05-07 06:25:03 +01:00
vnc_test.go fix: repair managed macos desktop readiness 2026-05-07 12:45:27 +01:00
vnc.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00
webvnc_test.go feat: add collaborative webvnc observer mode 2026-05-08 06:25:10 +01:00
webvnc.go feat(azure): support linux and native windows leases 2026-05-08 08:23:38 +01:00