fix(#6828): add retry with backoff for openshell install - #6832
fix(#6828): add retry with backoff for openshell install#6832fullsend-ai-coder[bot] wants to merge 1 commit into
Conversation
The install-openshell.sh script had no retry logic for the curl | sh pipeline that downloads and runs the upstream OpenShell installer. The upstream install.sh internally downloads the .deb from GitHub Releases, which can fail on transient CDN errors (as observed in E2E run 33432918746). Retrying only the outer curl would not cover that inner download. Wrap the entire install pipeline in a retry loop with exponential backoff (3 attempts, 5s/15s delays), matching the retry_curl() pattern already used in action.yml. Also add curl --retry 3 --retry-delay 5 to the outer download for additional resilience on the install.sh fetch from raw.githubusercontent.com. Diagnostic output uses stderr per shell-scripting.md to avoid stdout contamination if the script is ever called inside command substitution. Note: pre-commit hooks could not run in sandbox (network restriction blocked git fetch for hook repos). shellcheck was run directly and passed. The post-script runs an authoritative pre-commit check. Closes #6828
|
🤖 Finished Review · ✅ Success · Started 9:25 PM UTC · Completed 9:39 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.01 |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Risk Assessment: low (1/5) DetailsMinimal-risk, single-file change adding retry logic to a shell script for transient download failures; small scope, bot author, low churn, stable file, and well-aligned with the linked issue. |
ReviewFindingsMedium
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 9:41 PM UTC · Completed 9:47 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.09 |
🔧 Fix agent — iteration 1 (bot-triggered)Both review findings are valid but neither requires code changes. Finding 1 (commit-type-mismatch) correctly identifies that the PR title should use ci(#6828) instead of fix(#6828) per COMMITS.md — the sandbox policy prevents direct title modification so this must be applied by a human. Finding 2 (protected-path) is an informational note that human approval is required for .github/ changes, which is repository policy and not addressable by code. Fixed (1):
Disagreed (1):
Tests: passed Decision points
Next steps:
|
Summary
Adds retry with exponential backoff to the openshell binary download in
install-openshell.sh. The upstreaminstall.shinternally downloads the.debfrom GitHub Releases, which can fail on transient CDN errors — as observed in E2E run 33432918746 where the sandbox failed withopenshell: error: failed to download ... openshell_0.0.116-1_amd64.deb.Related Issue
Closes #6828
Changes
curl | shinstall pipeline in a retry loop (3 attempts, exponential backoff: 5s/15s delays), matching theretry_curl()pattern inaction.yml--retry 3 --retry-delay 5to the outercurlfor additional resilience on theinstall.shfetch fromraw.githubusercontent.comdocs/contributing/shell-scripting.mdto avoid stdout contaminationTesting
shellcheckpasses on the modified scriptgitlintpasses on the commit messageagent-settings.featurepass (verified by CI)Checklist
!for breaking changes)Closes #6828
Post-script verification
agent/6828-retry-openshell-download)e3620470427aa7c3bab339aef65cd1ca7552818c..HEAD)