Skip to content

feat: interactive CLI report with finding candidate terminology#17

Open
dizparada wants to merge 6 commits intomainfrom
reportUI
Open

feat: interactive CLI report with finding candidate terminology#17
dizparada wants to merge 6 commits intomainfrom
reportUI

Conversation

@dizparada
Copy link

@dizparada dizparada commented Mar 17, 2026

Summary

  • Add interactive TUI and static CLI report for red team scan results
  • Responsive layout with strategy breakdown table, findings detail, and chat replay
  • Replace all "breached" terminology with "finding candidate" across report and TUI
  • Fix strategy table column alignment using ANSI-aware padRight() helper
  • Fix GoalGoals (plural) to match data model
  • Remove duplicate flag registrations that caused TestInit panic
  • Add web-based target setup wizard, ping command, and supporting infrastructure

Test plan

  • Run a red team scan and verify the interactive TUI renders correctly
  • Verify "finding candidate" terminology appears in banner, strategy table, findings, and evidence blocks
  • Confirm strategy table columns align at various terminal widths
  • Run go test ./... — all tests pass
  • Test --report flag to re-open last scan report
  • Test --json and --html output modes still work

🤖 Generated with Claude Code

@dizparada dizparada requested a review from a team as a code owner March 17, 2026 13:58
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

dizparada and others added 4 commits March 17, 2026 14:20
Replace raw JSON default output with a styled, interactive terminal report:
- Bubbletea-based TUI with expand/collapse findings (enter/space)
- Muted professional color palette (#CBABEE purple headings, #E44A50 red)
- Strategy breakdown table with pass/fail/rate columns and dashed borders
- Chat-style conversation boxes per turn (user/agent separate borders)
- Evidence displayed in bordered box aligned with conversation
- Full report wrapped in rounded border
- --json flag for raw JSON, --full-conversation for all turns
- --html and --html-file-output unchanged
- Fallback to static render when TUI unavailable (piped output)

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…vements

- Responsive layout adapting to terminal width
- Security audit vocabulary: blocked/breached instead of pass/fail
- Banner-style vulnerability callout at top
- Severity badges and BREACHED indicators on findings
- OWASP Top 10 for LLMs references inline
- Evidence block with extraction metadata
- Help overlay (?), mouse scroll, contextual keybinding hints
- --report flag to re-open last scan report
- Fix CreateScan API: goals[] and target_url fields

Co-Authored-By: Claude Opus 4.6 <[email protected]>
fmt.Sprintf("%-*s", ...) counts ANSI escape codes toward the padding
width, causing column misalignment when cells contain styled text.
Switch headers and strategy data cells to use padRight(), which strips
ANSI codes before measuring visible width.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Rename all user-facing "breached"/"breach" text to "finding candidate"
across the CLI report and TUI. Also fix Goal→Goals (plural) to match
the data model, remove duplicate flag registrations that caused a panic
in TestInit, and resolve rebase conflicts with main.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dizparada dizparada changed the title fix: strategy table column alignment with ANSI-aware padding feat: interactive CLI report with finding candidate terminology Mar 17, 2026
dizparada and others added 2 commits March 18, 2026 10:27
Use OSC 8 hyperlink escape sequences so the URLs are clickable
in supported terminals (iTerm2, Windows Terminal, GNOME Terminal, etc.).

Co-Authored-By: Claude Opus 4.6 <[email protected]>
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.

2 participants