Skip to content

fleet: require Daytona provider sandbox IDs for exact inspection and cleanup #1732

Description

@khaliqgant

Problem

Relay 11.11.0 replaced Fleet snapshot-selector flags with caller-declared Cloud identities (--sandbox-id and --workspace-id). The resulting client contract requires the Cloud cleanup identity sandboxId, but providerSandboxId remains optional even when providerId is daytona.

Daytona CLI inspection and deletion operate on the provider UUID, not the Cloud sbx_... identity. If Cloud omits providerSandboxId, callers cannot bind Cloud to the exact Daytona sandbox, independently attest its snapshot, or perform ID-scoped cleanup after a cutoff. Falling back to name discovery weakens identity and cleanup guarantees.

This blocks the exhaustive clean-Daytona Fleet qualification in #1665 after #1705.

Expected contract

  • Successful or timeout Daytona provisioning requires a valid providerSandboxId.
  • Relay rejects a Daytona response that omits or malforms the provider ID.
  • fleet spawn --sandbox --sandbox-provider daytona --sandbox-id ... --workspace-id ... exposes both the Cloud sandbox ID and Daytona provider UUID in its machine-readable result/evidence.
  • Cleanup/recovery remains bounded and keyed to checkpointed identities.
  • Other providers retain their explicitly supported identity semantics.

Acceptance

  • Focused response-normalization, CLI, timeout, mismatch, and cleanup regressions.
  • Exact-head CI and Veto diff review green.
  • test(cleanroom): add exhaustive Relay and Fleet qualification #1665 harness uses the returned provider UUID for post-provision snapshot attestation and proves cleanup without ambient scanning.
  • Full multi-node Daytona qualification passes before merge of the qualification flow.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions