Skip to content

Intermittent macOS CLI snapshot failures caused by leftover download progress output #3415

Open

Description

@chbaefront

Describe the bug

macOS arm64 CLI snapshot jobs intermittently capture leftover package-manager download progress, causing otherwise unrelated snapshots to fail.

While working on #3413 (vp check --fix-dangerously), failures appeared in different package-manager fixtures across CI runs: first Yarn, then Bun and pnpm. The captured text includes a spinner/control-sequence artifact such as:

⠿m Downloading yarn <version>... <size> B (<size> B/s)

Sometimes this remains on its own line; sometimes it is concatenated with the next warning or command output after a long run of spaces. These progress fragments are not present in the stored snapshots.

This appears to involve download progress rendering/cleanup or PTY capture, but the root cause has not been established.

Expected behavior: Transient download progress should be cleared before subsequent command output is captured. The snapshot should retain warnings and actual command results without leftover progress text.

Temporarily adding a non-snapshotted yarn --version setup step before the Yarn install assertion avoided the download in the assertion step. This was a fixture-level workaround, not a root-cause fix, and was subsequently removed from #3413 to keep that PR scoped.

Potentially related: #2565, which describes intermittent macOS PTY failures across varying fixtures. It is not yet clear whether the underlying cause is the same.

Reproduction

Existing repository fixtures and CI evidence, rather than a separate application reproduction:

Steps to reproduce

  1. Set up and build the repository following CONTRIBUTING.md.
  2. Run the CLI PTY snapshot suite on macOS arm64, using the normal isolated package-manager installations.
  3. Inspect failures involving the first package-manager download in a case.

The affected fixtures can also be selected individually:

just snapshot-test yarn_berry_lockfile_only
just snapshot-test command_update_bun_with_workspace
just snapshot-test command_outdated_pnpm10_with_workspace

The failures are intermittent; these commands are investigation entry points, not a deterministic reproduction. A later CI run passed the Yarn case while failing different cases with the same kind of download-progress artifact.

System Info

  • Environment observed: GitHub Actions, macOS arm64 (aarch64-apple-darwin).
  • Affected source commits: 0cf992489eee849ffdb164a9b05a09569dbbc46f and 81ee5c75d97605bd10bf93f9f3d94b6acc2519dc from feat(check): support --fix-dangerously #3413.
  • Test infrastructure: crates/vp_cli_snapshots/tests/cli_snapshots/, running commands under a PTY.
  • Package managers involved: Yarn, Bun and pnpm.
  • Full vp env current / vp --version output from the affected CI processes was not collected.

Used Package Manager

pnpm (repository setup). The affected fixtures exercise Yarn, Bun and pnpm.

Logs

Package manager Failing case CI evidence
Yarn install_package_options::yarn_berry_lockfile_only macOS shard 3/3
Bun command_update_bun_with_workspace::command_update_bun_with_workspace macOS shard 1/3
pnpm command_outdated_pnpm10_with_workspace::command_outdated_pnpm10_with_workspace macOS shard 2/3

Representative diffs, with excessive spaces shortened:

Yarn

-warn: yarn@2+ --mode can only be specified once; --lockfile-only takes priority over --ignore-scripts
+⠿m Downloading yarn <version>... <size> B (<size> B/s)    warn: yarn@2+ --mode can only be specified once; --lockfile-only takes priority over --ignore-scripts

Bun

 VITE+ - The Unified Toolchain for the Web
+
+⠿m Downloading bun <version>... <size> B (<size> B/s)

pnpm

-Scope: all 3 workspace projects
+⠿m Downloading pnpm <version>... <size> B (<size> B/s)    Scope: all 3 workspace projects

The first run reported 446 passed / 1 failed in the affected shard. In the later run, macOS shard 1 reported 447 passed / 1 failed, shard 2 reported 446 passed / 1 failed, and shard 3 passed.

Validations

This report uses existing repository fixtures and three CI failure logs. A standalone, deterministic minimal reproduction has not been established.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Target date

    None yet

    Start date

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions