diff --git a/src/app/modules/rag/code_qa_pipeline/diagnostics.py b/src/app/modules/rag/code_qa_pipeline/diagnostics.py index cd80f5e..74fe501 100644 --- a/src/app/modules/rag/code_qa_pipeline/diagnostics.py +++ b/src/app/modules/rag/code_qa_pipeline/diagnostics.py @@ -21,6 +21,11 @@ def build_diagnostics_report( evidence_bundle: EvidenceBundle | None, answer_mode: str = "normal", timings_ms: dict[str, int] | None = None, + resolved_target: str | None = None, + answer_policy_branch: str = "", + decision_reason: str = "", + evidence_gate_input: dict[str, Any] | None = None, + post_evidence_gate: dict[str, Any] | None = None, ) -> DiagnosticsReport: """Build full diagnostics: Level 1 summary + Level 2 detail + failure reasons.""" timings = dict(timings_ms or {}) @@ -62,11 +67,16 @@ def build_diagnostics_report( layers_used=layers_used, retrieval_sufficient=retrieval_sufficient, answer_mode=answer_mode, + resolved_target=resolved_target or (bundle.resolved_target if bundle else None), + answer_policy_branch=answer_policy_branch, + decision_reason=decision_reason, router_result=router_result_dict, retrieval_request=retrieval_request_dict, per_layer_outcome=per_layer, empty_layers=empty_layers, evidence_gate_decision=evidence_gate_decision, + evidence_gate_input=dict(evidence_gate_input or {}), + post_evidence_gate=dict(post_evidence_gate or {}), failure_reasons=failure_reasons, timings_ms=timings, ) @@ -80,6 +90,9 @@ def build_level1_summary(report: DiagnosticsReport) -> dict[str, Any]: "layers_used": report.layers_used, "retrieval_sufficient": report.retrieval_sufficient, "answer_mode": report.answer_mode, + "resolved_target": report.resolved_target, + "answer_policy_branch": report.answer_policy_branch, + "decision_reason": report.decision_reason, "failure_reasons": report.failure_reasons, } @@ -91,7 +104,12 @@ def build_level2_detail(report: DiagnosticsReport) -> dict[str, Any]: "retrieval_request": report.retrieval_request, "per_layer_outcome": report.per_layer_outcome, "empty_layers": report.empty_layers, + "resolved_target": report.resolved_target, + "answer_policy_branch": report.answer_policy_branch, + "decision_reason": report.decision_reason, + "evidence_gate_input": report.evidence_gate_input, "evidence_gate_decision": report.evidence_gate_decision, + "post_evidence_gate": report.post_evidence_gate, "failure_reasons": report.failure_reasons, "timings_ms": report.timings_ms, }