Skip to content

Improve sandbox provisioning status messages and UX #174

Description

@drew

Problem

The current sandbox provisioning UX during nemoclaw sandbox create has several issues:

  1. Raw Kubernetes events flash by on a single spinner line — events like Scheduled, Pulling, Pulled, Created, Started are shown as EVENT Reason Message text that replaces each other on the spinner. Users can't see the progression of steps.

  2. No step-by-step checklist — unlike the cluster bootstrap flow (which has a nice checklist), sandbox provisioning is just a single Phase: Provisioning spinner.

  3. No elapsed time — users have no indication of how long each step takes or whether things are stuck.

  4. File upload after Ready is silent — when --upload is used, files are synced with no progress feedback.

  5. "Connecting..." message is bare — no context about what kind of connection is being established.

  6. Non-interactive mode is minimal — pipes/CI just see Phase: Provisioning / Phase: Ready with no step detail.

  7. Timeout error lacks context — doesn't tell the user which step was stuck.

Proposed Solution

  • Replace the single-line spinner with a step-based provisioning checklist that shows completed steps as ✓ Step (elapsed) lines
  • Map K8s events to human-readable provisioning steps: Scheduled, Pulling image, Image pulled, Container created, Container started, Gateway ready, Sandbox ready
  • Show elapsed time on the spinner and completed steps
  • Add upload progress messages
  • Improve non-interactive mode with timestamped step lines
  • Include the stuck step name in timeout errors

Acceptance Criteria

  • Interactive terminal shows a step-by-step checklist with marks and elapsed times
  • K8s events are mapped to human-readable step names
  • Image pull shows the image name as detail text
  • File upload shows progress/completion messages
  • Non-interactive mode prints timestamped step lines
  • Timeout error includes the last known step
  • All existing tests pass

Metadata

Metadata

Assignees

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