Skip to content

Commit 904c3bb

Browse files
FoundupFoundups Agentclaude
authored
fix(main): WRE dashboard INSUFFICIENT_DATA dispatches as WARN (DJ2-A)
WSP 97 truth violation fix: preflight=PASS masked insufficient_data state. Now reports preflight=WARN and dispatches to AI Overseer with: - severity: medium - automation_candidate: true - likely_cause: cold_start_or_telemetry_drop First of 6 DJ2 slices from FCA1-AG2 audit. Startup NOT blocked. Co-authored-by: Foundups Agent <dev@foundups.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 8851af3 commit 904c3bb

3 files changed

Lines changed: 100 additions & 2 deletions

File tree

main.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,9 +813,29 @@ def run_wre_dashboard_preflight(repo_root: Path) -> bool:
813813
if insufficient_data:
814814
watch_label = "WATCH" if in_watch else "STABLE"
815815
print(
816-
f"[WRE-DASHBOARD] preflight=PASS ({watch_label}, INSUFFICIENT_DATA) "
816+
f"[WRE-DASHBOARD] preflight=WARN ({watch_label}, INSUFFICIENT_DATA) "
817817
f"samples={total_executions}/{min_samples}"
818818
)
819+
# DJ2-A: Dispatch insufficient_data as warning tier (WSP 97 truth distinction)
820+
try:
821+
from modules.ai_intelligence.ai_overseer.src.preflight_resolution import (
822+
on_preflight_fail,
823+
)
824+
on_preflight_fail(
825+
component="wre_dashboard",
826+
severity="medium",
827+
payload={
828+
"samples": total_executions,
829+
"min_samples": min_samples,
830+
"insufficient_data": True,
831+
"likely_cause": "cold_start_or_telemetry_drop",
832+
"in_watch": in_watch,
833+
"automation_candidate": True,
834+
},
835+
source="main:run_wre_dashboard_preflight",
836+
)
837+
except Exception as dispatch_exc:
838+
logger.debug(f"[WRE-DASHBOARD] dispatch skipped: {dispatch_exc}")
819839
return True
820840

821841
alerts = health.get("alerts", []) if isinstance(health.get("alerts"), list) else []

modules/ai_intelligence/ai_overseer/ModLog.md

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,48 @@
22

33
**Module**: `modules/ai_intelligence/ai_overseer/`
44
**Status**: Active (Autonomous Code Patching + Daemon Restart + Activity Routing)
5-
**Version**: 0.10.1
5+
**Version**: 0.10.2
6+
7+
---
8+
9+
## 2026-04-19 - DJ2-A: WRE Dashboard Insufficient Data WARN Tier
10+
11+
**Author**: 0102
12+
**WSP**: 97 (truthful state distinction)
13+
**Slice**: DJ2-A (first of 6 DJ2 slices from FCA1-AG2 audit)
14+
15+
### Summary
16+
17+
Fixes WSP 97 truth violation where WRE dashboard preflight reported `PASS (INSUFFICIENT_DATA)`
18+
when samples < 25. Now reports `WARN` and dispatches to AI Overseer for observability.
19+
20+
### Change
21+
22+
- `main.py:run_wre_dashboard_preflight()` - `preflight=PASS``preflight=WARN` on insufficient_data
23+
- Dispatch via `on_preflight_fail()` with severity=medium, automation_candidate=True
24+
- Startup NOT blocked (still returns True) - warning tier only
25+
26+
### Payload
27+
28+
```json
29+
{
30+
"component": "wre_dashboard",
31+
"severity": "medium",
32+
"samples": <int>,
33+
"min_samples": 25,
34+
"insufficient_data": true,
35+
"likely_cause": "cold_start_or_telemetry_drop",
36+
"automation_candidate": true
37+
}
38+
```
39+
40+
### Test
41+
42+
- `test_main_py_wre_dashboard_insufficient_data_calls_dispatcher` - verifies dispatch
43+
44+
### Next slice
45+
46+
DJ2-C: OAUTH_PREFLIGHT_DISPATCH (wire the two WARN sites in monitor_youtube)
647

748
---
849

modules/ai_intelligence/ai_overseer/tests/test_preflight_resolution.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,3 +220,40 @@ def monitor_wsp_framework(self, force=False, emit_alert=False):
220220
assert call_kwargs["component"] == "wsp_framework"
221221
assert call_kwargs["payload"]["framework_only_count"] == 1
222222
assert call_kwargs["payload"]["index_issue_count"] == 1
223+
224+
225+
def test_main_py_wre_dashboard_insufficient_data_calls_dispatcher():
226+
"""DJ2-A: WRE dashboard dispatches on INSUFFICIENT_DATA (WSP 97 truth distinction)."""
227+
import main
228+
229+
with patch(
230+
"modules.ai_intelligence.ai_overseer.src.preflight_resolution.on_preflight_fail"
231+
) as mock_dispatch:
232+
fake_health = {
233+
"insufficient_data": True,
234+
"total_executions": 3,
235+
"min_samples": 25,
236+
"healthy": True,
237+
"alerts": [],
238+
}
239+
with patch(
240+
"modules.infrastructure.wre_core.src.dashboard_alerts.check_dashboard_health",
241+
return_value=fake_health,
242+
):
243+
with patch(
244+
"modules.infrastructure.wre_core.src.dashboard_alerts.DashboardAlertMonitor"
245+
) as mock_monitor:
246+
mock_monitor.return_value.is_in_watch_period.return_value = False
247+
with patch.dict("os.environ", {"WRE_DASHBOARD_PREFLIGHT": "1"}, clear=False):
248+
result = main.run_wre_dashboard_preflight(Path("."))
249+
250+
assert result is True # Should not block startup
251+
assert mock_dispatch.called
252+
call_kwargs = mock_dispatch.call_args.kwargs
253+
assert call_kwargs["component"] == "wre_dashboard"
254+
assert call_kwargs["severity"] == "medium"
255+
assert call_kwargs["payload"]["insufficient_data"] is True
256+
assert call_kwargs["payload"]["samples"] == 3
257+
assert call_kwargs["payload"]["min_samples"] == 25
258+
assert call_kwargs["payload"]["likely_cause"] == "cold_start_or_telemetry_drop"
259+
assert call_kwargs["payload"]["automation_candidate"] is True

0 commit comments

Comments
 (0)