fix(dispatcher): tune recommender + poller timing defaults#123
Conversation
…orld use The hardcoded 5-min recommender cap and 60s poller cadence were spec numbers that don't hold up against a real repo / many parked workflows: - Recommender agent cap: 5min → 15min default, and now configurable via [recommender] agent_timeout_minutes (plumbed config → recommender-run → workflow). The 5-min cap timed out mid-run ranking ~4 epics + ~15 issues against the schema-strict state issue. - Poller cadence: 60s → 120s default, and the interval is now injectable on startPoller. ~1 gh call per parked workflow per tick with no backoff yet, so a gentler default keeps multi-repo / many-parked deployments clear of the 5000/hr ceiling and secondary burst limits. Proper rate-limit backoff is tracked in #122.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThe PR introduces configurable timeouts for recommender agent workflows and makes the GitHub poller interval tunable. It adds an ChangesConfiguration and Tuning
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Comment |
Summary
Two hardcoded timing defaults were spec numbers that don't survive contact with a real repo. Dogfooding surfaced both.
Recommender agent cap: 5min → 15min (+ configurable)
A live
mm run-recommender .timed out at the 5-min hard cap mid-run — the agent worked the full window ranking ~4 epics + ~15 issues and rewriting the schema-strict state issue without finishing, so #84 was never updated. Bumped the default to 15min and wired a[recommender] agent_timeout_minutesknob (config →recommender-run→ workflow deps; the dep already existed, just was never plumbed).Poller cadence: 60s → 120s (+ injectable)
The GitHub poller makes ~1
ghcall per parked workflow per tick and has no rate-limit backoff (the spec's rate-limit cron was never built — #122). Safe at small scale, but no ceiling at many-parked / multi-repo, where secondary (burst) limits are the shadow-ban risk. A gentler default + injectable interval buys headroom; 2-min review-resume latency is fine for an autonomous loop.Verification
Ran the new
.middle/verify.tomlgates (dogfooding them):format/lint --deny-warnings/typecheckclean; 482 tests pass.Follow-up
Notes
Default bumps are conservative and behavior-preserving for correctness (only timing). The recommender knob defaults to undefined → workflow's 15-min default.
Summary by CodeRabbit
New Features
agent_timeout_minutessetting in configurationChanges