fix(ci): cache uv and raise its HTTP timeout, so PyPI egress stops flaking #1161
No reviewers
Labels
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1161
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/ci-uv-cache"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ci / aos-eval-testsand both gates have been flapping red with no code change behind it. Run 3629 green, 3631 red, 3632 green, all on unrelated commits, and PR #1156 caught a red purely by timing.The job log names the cause exactly:
Why it happens
Both local packages build through PEP 517 with a setuptools backend. A build requirement never lands in
uv.lock, so uv resolvessetuptools>=68.1.2from PyPI in an isolated build env on every cold cache, and every CI container starts cold. The runner's egress to PyPI is intermittent, so the job passes or fails on whether that single fetch lands.Both lockfiles are already committed, so this is not a resolution gap. It is one unlockable fetch on a flaky path.
Shape
~/.cache/uv, keyed on both lockfiles, beside the pre-commit cache they already keep. A warm cache never reaches the network for the build backend at all.UV_HTTP_TIMEOUT: "180"lifts uv's 30s default for the cold-cache case that still must fetch.Coverage is symmetric across
ci.ymlaos-eval-tests,ci.ymlgate, andpromote.ymlgate. The cache steps useuses:rather thanrun:, sotest_pull_request_ci_workflow.pystill sees the two workflows in step, and that test passes.aos-eval-tests and both gates have been flapping red with no code change behind it. The log names the cause exactly: Failed to resolve requirements from `build-system.requires` No solution found when resolving: `setuptools>=68.1.2` Request failed after 3 retries in 45.3s Failed to fetch: https://pypi.org/simple/setuptools/ operation timed out Both local packages build through PEP 517 with a setuptools backend. A build requirement is not in uv.lock, so uv resolves it from PyPI in an isolated build env on every cold cache, which every CI container is. The runner's egress to PyPI is intermittent, so the job passes or fails on whether that one fetch lands. Nothing about it was specific to a change under review: run 3629 was green, 3631 red, 3632 green, all on unrelated commits. The jobs that run uv now cache ~/.cache/uv keyed on both lockfiles, beside the pre-commit cache they already keep, so a warm cache never reaches the network for the build backend at all. UV_HTTP_TIMEOUT lifts uv's 30s default for the cold-cache case that still must. Coverage is symmetric across ci.yml aos-eval-tests, ci.yml gate, and promote.yml gate. The cache steps use `uses:` rather than `run:`, so the promote/ci parity test still sees the two workflows in step. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>