Repository navigation
fix(installer): retry the network check before cancelling the install - #287
Conversation
The pre-flight check made one 5 s request to github.com. With no terminal, one dropped request answered its Continue? prompt with no and cancelled the whole install; CI's installer test hit this on 2026-11-11 (job 130418062294, the stranded case). network_reachable now asks up to three times, 2 s apart (GRAPHDONE_NETWORK_TRIES / GRAPHDONE_NETWORK_PAUSE). installer-contract runs the real functions against a fake curl: two failures then success continues, three failures cancel, and TRIES=1 asks once. It fails on the previous install.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Independent review (72c44db)
The test harness is sound. The fake curl comes first on Findings
🤖 Generated with Claude Code |
…e retry input Review of #287: - The Continue? prompt ran inside the background check_network job, whose stdin is empty, so it could never be answered. Only network_reachable runs in the background now; the prompt runs after it, in the foreground. - Prompts read the terminal (ask_continue), not stdin: under curl | sh stdin is the script itself. With no terminal the answer is no. The disk-space and macOS prompts use it too. - wget gets --tries=1 (its default of 20 tries could hold the install for minutes on a silently dropped route). - A non-number GRAPHDONE_NETWORK_TRIES/PAUSE falls back to the default instead of looping forever. - The dots keep moving while retries run, and a continued install says GitHub was not reachable instead of Connected. The contract now runs the functions under sh with only fakes on PATH: curl and wget paths, bad input, and the terminal-vs-stdin answer. 3 of its 8 tests fail on the previous commit and on dev. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks. All five findings are addressed in d4235e8:
🤖 Generated with Claude Code |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Merge verification for d4235e8:
Merging to dev. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No conflicts: dev changed only the installer and its contract test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes the red in the Comprehensive suite's "Installer & Deploy Config" job on #281 (job 130418062294). The "stranded" installer case ended with:
Cause: the pre-flight check made one 5-second request to github.com. With no terminal attached, the
Continue?prompt reads "no", so one dropped request cancelled the whole install. Anyone running the one-line installer on a shaky connection would see the same thing.Fix: the new
network_reachableasks up to 3 times, 2 seconds apart, before calling the network unreachable.GRAPHDONE_NETWORK_TRIESandGRAPHDONE_NETWORK_PAUSEoverride the count and the pause. Nothing else in the check changes:wgetis still used when there is nocurl;Test:
installer-contract.mjsnow runs the realnetwork_reachableandcheck_networkagainst a fakecurl:TRIES=1: it asks once.The new test fails on the previous
install.sh.node --test tests/toolchain/installer-contract.mjspasses 6/6.🤖 Generated with Claude Code