perf(daemon): FBUILD_WATCH_SET_CACHE_SECS env override#126
Conversation
Lets an operator tune or disable the watch-set fingerprint cache (landed in #120) at daemon startup without a rebuild. - Unset / unparseable → 2 s default. - Positive integer → that many seconds. - `0` → `Duration::ZERO`: every `put` is stale the instant it's stored, so `get` always returns `None`. Effectively disables the cache — useful for A/B-ing a suspected regression without changing code or toggling a feature flag. Implemented as a small helper `watch_set_cache_window_from_env()` next to the existing `self_eviction_timeout()` env reader (mirrors #116's `FBUILD_SELF_EVICTION_SECS` pattern). No changes to `DaemonWatchSetCache`'s own surface — keeps the cache module focused on caching, the env-coupling where it belongs. Exhaustive table-driven unit test covers all five parse cases (unset, zero, positive, garbage, whitespace). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 53 minutes and 53 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
Cuts a release containing the two P0 fixes landed since 2.1.19: - #134 "P0 regression — Operation not permitted (os error 1) on warm build" - #135 "preserve exec bit on fbuild console script in wheel" Both are currently blocking every FastLED uno build on GitHub Actions: the wheel's console script installs without +x, so CI can't even run `fbuild --version`, and the subsequent compile fails with `Operation not permitted (os error 1)` on every example. Also includes: - #131 rustfmt on lnk pipeline - #133 DiskCache leases.refcount schema migration - #128 AVR orchestrator fingerprint fast-path + telemetry (#127) - #126 FBUILD_WATCH_SET_CACHE_SECS env override - f8533d3 extend watch-set fingerprint fast-path to AVR orchestrator Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Cuts a release containing the two P0 fixes landed since 2.1.19: - #134 "P0 regression — Operation not permitted (os error 1) on warm build" - #135 "preserve exec bit on fbuild console script in wheel" Both are currently blocking every FastLED uno build on GitHub Actions: the wheel's console script installs without +x, so CI can't even run `fbuild --version`, and the subsequent compile fails with `Operation not permitted (os error 1)` on every example. Also includes: - #131 rustfmt on lnk pipeline - #133 DiskCache leases.refcount schema migration - #128 AVR orchestrator fingerprint fast-path + telemetry (#127) - #126 FBUILD_WATCH_SET_CACHE_SECS env override - f8533d3 extend watch-set fingerprint fast-path to AVR orchestrator Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Closes #122. Lets an operator tune or disable the watch-set fingerprint cache (from #120) at daemon startup without a rebuild, mirroring the
FBUILD_SELF_EVICTION_SECSpattern from #116.Semantics
FBUILD_WATCH_SET_CACHE_SECSZero-secs uses the existing
with_max_ageAPI — no new `Option<>` onDaemonContext, the cache-module surface stays focused on caching and the env-coupling lives next to the siblingself_eviction_timeout()reader in `context.rs`.Tests
One exhaustive table-driven test in `context::tests`: covers unset, zero, positive, garbage, and whitespace cases; saves + restores prior env so parallel test isolation is preserved. Full daemon lib tests 126 pass;
cargo clippy --workspace --all-targets -- -D warningsclean.Related: #120 (the cache), #116 (same pattern for self-eviction).
🤖 Generated with Claude Code