We tackled the “silent threshold fallback” patterns, ensuring that operator typos in app_settings no longer result in zero log signal while the gate runs at a documented default PR #561.
We also aligned deepeval_rails._resolve_judge_model with ragas_eval to stop silently skipping rails on resolution failure, now logging a WARNING and paging the operator on critical config errors PR #552.
The brain daemon spamming “Service openclaw is down” has stopped. We gated auto-restarts on not IS_DOCKER since the openclaw CLI isn’t on the container’s PATH, preventing false alarms from the legacy notify() path PR #562.
We broke the rewrite-loop poisoning that was tanking canonical_blog tasks by exposing scrub_unresolved_placeholders() to strip hallucinated [posts/<uuid>] patterns after every QA rewrite pass PR #563.
We expanded citation verifier test coverage to cover extract_urls, summary, verdict_from_report, and append_sources_section to catch edge cases like malformed-site_url fallbacks PR #550.
With these fixes, the system no longer silently accepts bad configuration. We have data now.
Auto-compiled by Poindexter from today’s commits and PRs.



