feat(task): harden remote cache requests - #11626
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThe PR hardens remote task-cache operations against transient network failures and redundant concurrent reads.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (12): Last reviewed commit: "feat(task): harden remote cache requests" | Re-trigger Greptile |
5230fc9 to
256ca9e
Compare
256ca9e to
e929957
Compare
Instruction counts
No instruction-count regression above 1%. Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run. Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.
|
e929957 to
c8ca847
Compare
c8ca847 to
8988b42
Compare
8988b42 to
1eb66ce
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1eb66ce. Configure here.
c6904f3 to
39473fb
Compare
39473fb to
ea3cf0c
Compare
ea3cf0c to
916ffad
Compare
916ffad to
e4af54e
Compare
e4af54e to
535fdd5
Compare
## Summary - apply mise's standard retry/backoff policy to transient remote cache GET, PUT, and DELETE errors - enforce configured connect/read and total artifact download timeouts with redirects disabled - deduplicate concurrent reads per cache key and fall back to local execution when remote access fails ## Tests - `cargo test task_cache_store::tests` - `cargo clippy --workspace --all-features --all-targets -- -D warnings` - `mise run lint-fix` *AI-assisted — Tool: Codex; model: unavailable/unavailable; version: unavailable.* <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Changes remote cache I/O behavior (timeouts, retries, redirect policy) and concurrency around promotion; failures still fall back to local-only misses rather than failing tasks. > > **Overview** > Hardens the experimental **remote task cache** so flaky or slow networks are less likely to break cache hits. > > **HTTP client and requests:** Remote cache `reqwest` clients now use mise `Settings` connect/read timeouts, disable redirects, and route GET/PUT traffic (action results, metadata blobs, artifact blobs) through the shared `http::retry_async` backoff policy. Large blob downloads are additionally capped by `http_download_timeout`. > > **Composite store:** Concurrent remote lookups for the same cache key are serialized via a per-key lock, with a second local check after acquiring the lock so only one remote fetch promotes an entry. Remote lookup failures still degrade to a local miss (existing warn-and-continue behavior). > > **Tracker:** `TASK_CACHE_PARITY.md` marks remote timeouts, retries, deduplication, and offline fallback as complete. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 535fdd5. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->

Summary
Tests
cargo test task_cache_store::testscargo clippy --workspace --all-features --all-targets -- -D warningsmise run lint-fixAI-assisted — Tool: Codex; model: unavailable/unavailable; version: unavailable.
Note
Medium Risk
Changes remote cache I/O behavior (timeouts, retries, redirect policy) and concurrency around promotion; failures still fall back to local-only misses rather than failing tasks.
Overview
Hardens the experimental remote task cache so flaky or slow networks are less likely to break cache hits.
HTTP client and requests: Remote cache
reqwestclients now use miseSettingsconnect/read timeouts, disable redirects, and route GET/PUT traffic (action results, metadata blobs, artifact blobs) through the sharedhttp::retry_asyncbackoff policy. Large blob downloads are additionally capped byhttp_download_timeout.Composite store: Concurrent remote lookups for the same cache key are serialized via a per-key lock, with a second local check after acquiring the lock so only one remote fetch promotes an entry. Remote lookup failures still degrade to a local miss (existing warn-and-continue behavior).
Tracker:
TASK_CACHE_PARITY.mdmarks remote timeouts, retries, deduplication, and offline fallback as complete.Reviewed by Cursor Bugbot for commit 535fdd5. Bugbot is set up for automated code reviews on this repo. Configure here.