OBS-4 (#360, PR #369) fixed and tested the filter ReDoS eval-timeout guard, but flagged that crates/nuncio-filterevaluate_with_timeout is NOT called by the production sync path — sync.rs still calls plain evaluate(). So the ReDoS protection exists but is not exercised in production (half-wired feature). Wire the timeout-bounded evaluator into the sync pipeline (with the env-tunable/default timeout), add an E2E proving a pathological rule on a crafted message warns + fails-closed without hanging sync. Follow-up to OBS-4.
OBS-4 (#360, PR #369) fixed and tested the filter ReDoS eval-timeout guard, but flagged that `crates/nuncio-filter` `evaluate_with_timeout` is NOT called by the production sync path — `sync.rs` still calls plain `evaluate()`. So the ReDoS protection exists but is not exercised in production (half-wired feature). Wire the timeout-bounded evaluator into the sync pipeline (with the env-tunable/default timeout), add an E2E proving a pathological rule on a crafted message warns + fails-closed without hanging sync. Follow-up to OBS-4.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
OBS-4 (#360, PR #369) fixed and tested the filter ReDoS eval-timeout guard, but flagged that
crates/nuncio-filterevaluate_with_timeoutis NOT called by the production sync path —sync.rsstill calls plainevaluate(). So the ReDoS protection exists but is not exercised in production (half-wired feature). Wire the timeout-bounded evaluator into the sync pipeline (with the env-tunable/default timeout), add an E2E proving a pathological rule on a crafted message warns + fails-closed without hanging sync. Follow-up to OBS-4.