Skip to content

UX: add FindingDetailModal — finding detail with evidence, sources, confidence (#290)#91

Merged
dgarson merged 2 commits intofeat/horizon-post-mergefrom
reed/view-290-finding-detail-modal
Feb 23, 2026
Merged

UX: add FindingDetailModal — finding detail with evidence, sources, confidence (#290)#91
dgarson merged 2 commits intofeat/horizon-post-mergefrom
reed/view-290-finding-detail-modal

Conversation

@dgarson
Copy link
Owner

@dgarson dgarson commented Feb 23, 2026

Summary

View openclaw#290: Full-page modal-style detail view for a single discovery finding.

Sections Built

  1. Header — Finding title, severity badge (Critical/High/Medium/Low/Info), finding ID, timestamp, back button
  2. Evidence Panel — Raw agent output in collapsible code block with copy button
  3. Sources — Source URLs, files, endpoints as clickable/copyable chips with type icons
  4. Confidence — SVG ring gauge + bar gauge, score-colored, ARIA progressbar semantics
  5. Agent Attribution — Agent name + emoji cards, listing all contributing agents
  6. Remediation — Urgency framing per severity, collapsible steps, "Mark as Resolved" button
  7. Similar Findings — 3 related findings with severity badges and keyboard-accessible links

Mock Data

Critical finding: "Exposed API key in agent SOUL.md" with SecurityScanner + SecretSniffer attribution, 97% confidence, 4 sources, immediate remediation steps.

Accessibility (Reed's specialty)

  • Full role="dialog" + aria-modal semantics
  • Skip-to-content link (visible on focus)
  • aria-live regions for dynamic state (resolved, urgency alerts)
  • aria-expanded on all collapsible panels
  • Focus rings via focus-visible:ring-violet-500 on all interactive elements
  • role="progressbar" with aria-valuenow/min/max on confidence gauge
  • role="alert" on urgency banners (critical/high)
  • Screen-reader-only summary paragraph with full finding description
  • Escape key handler for modal semantics
  • All decorative icons have aria-hidden="true"

Build

✓ 0 TypeScript errors
✓ Vite build passes (1865 modules)

Line Count

938 insertions

…penclaw#313)

- New AgentTopologyMap.tsx: pure SVG + React state, no external graph libs
- Static concentric layout: principals (r=210), crons (r=115), workers (r=65 from spawner)
- Node types: Principal (violet circle), Worker (blue circle), Cron (amber diamond)
- Interactive: click-to-inspect detail panel (280px), hover scale effect
- Toolbar: Live/Paused toggle, Reset View, session count badge, legend
- Mock data: 6 principals, 4 workers (from Luis), 2 crons
- Also fix pre-existing TS build errors to get 0-error build:
  - AgentOutputDiffViewer: remove invalid lucide icons + syntax error
  - APICredentialHealthDashboard: fix Badge/Alert variants, remove indicatorClassName
  - AgentSkillHeatmap, AgentSoulEditor, DiscoveryRunReplayControls,
    FindingTrendChart, ModelComparisonMatrix: pre-existing fixes
  - Add missing ui/alert badge card progress components
@dgarson dgarson merged commit b1b188a into feat/horizon-post-merge Feb 23, 2026
2 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant