Skip to content

Add TTY-aware progress feedback (status lines + spinner) during long acq run steps #287

Closed

Description

@mogul

Problem

A novice, non-technical user working through the README on first run experienced
long pauses with no output and could not tell whether acq was working or
stuck. The first acq run does substantial background work — booting a microVM,
installing the coding agent (npm), and fetching/applying the four kits — often
for a minute or more with little to no terminal output.

We mitigated this in docs (a "first run may pause quietly" note in
README.md Step 3 and docs/QUICKSTART.md), but the real fix is live progress
feedback in the CLI.

Ask

Add lightweight, TTY-aware progress feedback around the long provision steps:

  • Positive status lines as each phase starts/finishes (e.g. "Booting microVM…",
    "Installing opencode…", "Fetching kits…", "Ready — attaching.").
  • An optional spinner/heartbeat during the genuinely quiet waits (notably the
    exec-ready poll and the agent install).

Constraints

  • Must not break the offline test harness. scripts/test-acq asserts on
    output; any spinner/animation must be suppressed when not attached to an
    interactive TTY (and under the test harness) so stdout/stderr assertions are
    unaffected. Gate on [ -t 2 ] (and/or an explicit ACQ_NO_PROGRESS /
    test-mode flag).
  • Keep secret hygiene intact — status text must never echo secret values.
  • Progress goes to stderr so piped stdout stays clean.

Natural hook points (for whoever picks this up)

  • Provision orchestration: acq_backend_provision in acq.backends/msb.sh
    (the phase sequence: create → wait exec-ready → prereqs → agent user →
    agent install → kit apply) and the sbx equivalent in acq.backends/sbx.sh.
  • The quiet wait loop: _acq_msb_wait_for_exec_ready in acq.backends/msb.sh.
  • Existing timestamped breadcrumbs to model messaging on: acq_debug in
    acq.backends/common.sh (currently gated behind ACQ_DEBUG).

Acceptance criteria

  • Interactive acq run shows clear phase progress and a heartbeat during long
    waits.
  • Non-interactive / piped / test-harness runs produce no animation and
    scripts/test-acq still passes.
  • No secret values are ever printed.

Filed from novice-user onboarding observations; see the README/QUICKSTART
"first run may pause quietly" notes for the interim doc mitigation.

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