Skip to content

fix(install): show download progress (60MB binary looked stuck)#37

Merged
tonychang04 merged 1 commit into
mainfrom
fix/install-progress
Jul 15, 2026
Merged

fix(install): show download progress (60MB binary looked stuck)#37
tonychang04 merged 1 commit into
mainfrom
fix/install-progress

Conversation

@tonychang04

@tonychang04 tonychang04 commented Jul 15, 2026

Copy link
Copy Markdown
Member

User report: curl … | sh printed 'Installing insta…' then appeared to hang. Not hung — install.sh downloaded the ~60MB Bun binary with curl -fsSL (silent, no progress bar), so the biggest step showed zero output for 15-40s. Now uses --progress-bar when stderr is a TTY (stays silent when piped headless), and the message states the ~60MB size. install.sh is served from main (raw/CloudFront), so this is live on merge — no CLI release needed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GMbAe5K1RfwaAcge5inX7P


Summary by cubic

Show a progress bar during the ~60MB binary download in install.sh so the install doesn’t look stuck. Use curl --progress-bar only when stderr is a TTY; keep non-interactive runs quiet with curl -fsSL, and keep the SHA256SUMS fetch silent.

Written for commit b759ba4. Summary will update on new commits.

Review in cubic

install.sh downloaded the ~60MB Bun binary with 'curl -fsSL' (silent), so
after 'Installing insta…' it showed nothing for the whole download and read
as a hang (user report). Now --progress-bar to a TTY (quiet when piped
without one), and the message states the size.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GMbAe5K1RfwaAcge5inX7P
@cursor

cursor Bot commented Jul 15, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@jwfing jwfing left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - approved.

@jwfing jwfing left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: fix(install): show download progress

Summary: A tightly-scoped, correct fix that shows a curl progress bar for the ~60MB binary download when stderr is a TTY and stays silent when piped headless — exactly matching the reported "looked stuck" scenario.

Requirements context: No matching spec/plan found — this repo has no docs/superpowers/ or docs/specs/ directory, so I assessed against the PR description and the surrounding install.sh logic alone.

Findings

Critical

(none)

Suggestion

  • Functionalityinstall.sh:88-89: in the TTY branch -s is dropped (correctly, so --progress-bar isn't suppressed), but this also un-silences curl's own error output. On a failed download the user now sees curl's native error and then the script's error: download failed (...) line — a minor double message. Purely cosmetic; if you want a single clean error you could keep -S alongside --progress-bar. Non-blocking.

Information

  • Functionalityinstall.sh:88: the [ -t 2 ] gate is the right test. In curl … | sh, sh's stdin is the pipe but fd 2 stays the inherited terminal, so the progress bar shows in the exact interactive case that motivated this PR, while genuinely headless runs (CI, no TTY on stderr) fall through to -fsSL and stay quiet. -L is retained on both paths (needed for the GitHub→S3 redirect). Verified correct.
  • Software engineeringinstall.sh:89: $dl is expanded unquoted to intentionally word-split the flags into the command (SC2086). This is the idiomatic approach in POSIX sh (no arrays) and is safe here since dl is built from string literals only. CI runs typecheck + vitest with no shellcheck, so this won't trip a gate; noting for awareness.
  • Software engineeringinstall.sh has no automated test coverage in this repo (the vitest suite exercises the TS CLI, not the installer). This is pre-existing and not a regression from this PR; a quick manual smoke of both the piped (curl | sh) and fully-redirected (… 2>/dev/null) paths is worth doing before merge.
  • Security / Performance — no security-relevant changes (no new user input, no secrets, checksum verification untouched) and no performance considerations (one-time installer).

Verdict

approved — no Critical findings; the two notes above are non-blocking. (Informational verdict for the review bot; the GitHub green-check approval remains a separate human action.)

@jwfing jwfing left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - approved.

@tonychang04 tonychang04 merged commit c9abc40 into main Jul 15, 2026
2 checks passed
@jwfing jwfing mentioned this pull request Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants