Integrate evidence-first Findings into AI investigations - #1608
Conversation
PR Summary by QodoBuild an evidence-first AI investigation workspace
AI Description
Diagram
High-Level Assessment
Files changed (104)
|
Code Review by Qodo
1.
|
…ions Keep explanations beside their originating assessment, preserve evidence qualifications, and distinguish expected previous-log absence from failed collection. Refine history, disclosure motion, and source navigation throughout the investigation workspace.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
There are 4 total unresolved issues (including 3 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d088a75. Configure here.
Finalization review — ready for required human approvalReviewed final head 8ac5555. Three bounded cross-model passes covered backend trust/lifecycle, evidence producers/public contracts, and frontend/shared UI. Self-review traced cross-layer behavior and exercised the saved-run UI; a focused post-fix cross-review approved the final head. This was whole-PR coverage by responsibility, not a claim that both reviewers audited every line. No remaining confirmed must-fix finding. All nine checks are green; all 13 review threads are resolved. GitHub reports MERGEABLE and REVIEW_REQUIRED. No merge or publication performed. Fixed in this round
Validation
Scope cut / next workPrioritize mounted replay→live→Apply→verify tests, a bounded tool-free Explain simply execution path, tool-registration parity tests, and explicit related-issue visibility semantics. Incremental file decomposition and design-system cleanup can follow. Do not reintroduce cluster-wide evidence dumps, timestamp-only histories, or programmatic-focus cross-highlighting. Separate package-release gates: migrate versioned hosted consumers to required API group; publish the matching k8s-ui export and compatible peer range before radar-app publication. These do not block the OSS merge and are not solved by a frontend package upgrade alone. The ledger below has 2 fixed, 15 deferred, 5 skipped entries. Deferred entries include overlapping improvements, existing testing/maintenance limitations, and separate publication requirements—not fifteen newly introduced regressions. Full finding-by-finding triage and rationale
Recommendation: merge this scoped OSS version after required approval; continue the recorded noncritical work in follow-up PRs. |

Summary
Adds an evidence-first investigation workspace to Radar OSS's main AI Diagnose surface. Activity preserves the agent's chronological transcript and raw tool results; Findings presents the assessment, relevant evidence, and proposed next steps. Operators can inspect the source behind a finding, request a plain-language explanation, and follow a confirmed action with a fresh verification without losing the investigation history.
The public MCP
diagnosetool remains a bounded point-in-time evidence bundle with its existing name. The local investigation workflow adds durable provenance and presentation on top of those producer results.What changed
Investigation workspace
Relevant evidence and exact provenance
On-demand explanation
Lifecycle, actions, and producer contracts
Testing
make build; 898 frontend tests, focused evidence/projection/state regressions, and AI/evidence-registry race tests. Local cold-import timing requires an explicit command-line test timeout; repository/runtime timeout settings are unchanged. Frontend CI passes with its normal settings.Scope and tradeoffs
DiagnoseTarget,RunSummary, and run-creation inputs now require canonicalgroup(""for core resources). Hosted consumers must carry that identity through launch and replay before adopting this package revision. The new shareddefaultConditionToneexport also requires publishing a matching k8s-ui version and raising radar-app's peer floor before a package release. Merging this OSS PR does not publish either npm package; package versioning and hosted migration are separate release gates.Note
Medium Risk
Changes how AI investigations establish citations and how confirmed Kubernetes mutations are inferred from MCP write results—security- and operator-trust-sensitive paths, though read-only investigation turns remain gated on the private evidence registry.
Overview
Reframes local AI investigations around server-backed evidence instead of treating agent prose or MCP tool names as proof. Read-only turns now use a scoped
/mcp-investigationmount that records exact Radar read-tool payloads and emits[[radar:evidence-ref=...]]markers; Claude/Codex/Cursor adapters strip those markers, track host success/error state, and retain uncapped producer text for validation before results are capped for the event log.Assessments can cite up to three refs via
root_cause_evidence_refsin the agent JSON; the run layer promotes only refs that match the turn ledger intorootCauseEvidence.apply_outcome.goclassifies remediation as confirmed / failed / unknown from terminal Radar write-tool JSON (including dry-run and partial cases), not CLI exit codes. Apply prompts and requests carry canonicalgroupidentity; safeguarded apply addsmanage_rolloutto the write allowlist.Adds an on-demand “Explain simply” turn that reuses a saved assessment without starting a new investigation or minting new verdict fields. Docs/README shift wording from “diagnose” to investigate where appropriate and document public MCP
diagnoseas a bounded, non-authoritative evidence bundle (log coverage, timestamps, Rolloutgroupparameter).Tool-result payload cap rises (32 KiB → 96 KiB) so bounded
diagnoseenvelopes are not truncated in investigation history.Reviewed by Cursor Bugbot for commit 9764530. Bugbot is set up for automated code reviews on this repo. Configure here.