You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(launcher): commit a prebuilt binary via LFS to close the cold-start race
docs/cloud-environment-setup.md documents that on Claude Code on the web,
the MCP client dials configured servers concurrently with (not after)
SessionStart hooks, so a cold `cargo build -p ci-cli` (~59s) easily
outlasts the client's ~7s retry budget — the server gets marked failed for
the rest of the session. The only structural fix was previously a Cloud
environment Setup Script, which is external config (not stored in this
repo) that every user has to paste in manually.
This adds a stronger layer that needs no manual setup at all: a prebuilt
`ci` binary committed to .ci-bin/x86_64-unknown-linux-musl/ci via Git LFS
(already used in this repo for the embedding model weights), rebuilt on
every push to main by .github/workflows/prebuild-mcp-binary.yml. Since a
git checkout necessarily completes before Claude Code can even read
.mcp.json, a binary already present in the checkout has no race to lose.
mcp-launcher.sh gets a new Tier 1.5 trying this path (Linux x86_64 only
for now), subject to the same is_binary_fresh staleness check as a local
target/debug build. Also adds is_lfs_pointer: exec-ing an unresolved LFS
pointer stub (git-lfs not installed, smudge filter skipped) does not fail
gracefully — bash's ENOEXEC fallback interprets the pointer's text content
as a new shell script instead of returning control to the launcher,
verified directly against a synthetic stub. Without the check, a missing
git-lfs would crash the launcher instead of falling through to the
existing tiers.
Kept the Setup Script recommendation in the docs as defense-in-depth: this
depends on the cloud checkout actually resolving the LFS pointer, which
isn't independently verifiable from here, and only covers one platform.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0 commit comments