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
{{ message }}
Repository navigation
perf(reliability): FailurePatternDetector uses sync Redis on async paths #10635
Discovered in review of #10631. services/failure_pattern_detector.py declares detect_pattern/learn_pattern as async but uses a sync Redis client (get_redis_client(async_client=False), line 94) and calls blocking redis.get/set/sadd (lines 119/242/249) directly — so awaiting them blocks the event loop. Now reachable on the workflow failure path (#10628). Fix: make the detector async-native (async_client=True + await) or wrap the sync calls in asyncio.to_thread, and add a bounded timeout. Part of #10602.
Merged to Dev_new_gui (d4ce8ef94). FailurePatternDetector now uses async Redis (AsyncRedisClientMixin) on all async paths; 11 async-contract tests. Surfaced a follow-up bytes-key bug (#10906). Batch #10440.
Activity
perf(reliability): make FailurePatternDetector async-native Redis (#1…
github-actions commentedon Jul 2, 2026
PR #10869 (merged to
Dev_new_gui) references this issue with a close keyword.If this issue is fully resolved, close it manually. If work remains, no action is needed.
mrveiss commentedon Jul 2, 2026
Closed — merged to Dev_new_gui via #10869 (squash 7ba2d3d). FailurePatternDetector now inherits AsyncRedisClientMixin, all Redis I/O is
awaited and bounded byasyncio.wait_for(timeout=2.0s). Verified: py_compile OK, test_failure_pattern_wiring 6/6 pass, caller audit (workflow_runner.py:338-339 already await). Discovery: #10870 (TestCausalErrorRecovery AsyncMock).fix(reliability): FailurePatternDetector uses async Redis on async pa…
mrveiss commentedon Jul 6, 2026
Merged to
Dev_new_gui(d4ce8ef94). FailurePatternDetector now uses async Redis (AsyncRedisClientMixin) on all async paths; 11 async-contract tests. Surfaced a follow-up bytes-key bug (#10906). Batch #10440.