Skip to content

ui: port operations panel to new design#10

Open
Moriz82 wants to merge 1 commit into
mainfrom
worktree-agent-a1454e43
Open

ui: port operations panel to new design#10
Moriz82 wants to merge 1 commit into
mainfrom
worktree-agent-a1454e43

Conversation

@Moriz82

@Moriz82 Moriz82 commented Apr 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • Rewrites frontend/src/panels/OperationsPanel.tsx to match the new design: left card with Crawl / Fuzz / Scan / Import tabs, right card "Live runs" with a per-run progress stack and session counters, collapsible console with run filter
  • Adds frontend/src/styles/screens.css with scoped .ops tokens + styles (self-contained — does not touch existing panel styles)
  • Preserves all prior functionality: SSE crawl (/api/ingest/crawl/stream), ffuf/feroxbuster via /api/tools/run, nuclei via pipeline endpoint, /api/scan/fetch-and-scan, /api/plugins reflection, scan preset dropdown, wordlist picker modal, multipart import to /api/ingest, graph-stats polling
  • Console logs are tagged with run_id and filtered by the selected run; session counters poll /api/graph/stats and /api/findings every 3s while a run is active, showing delta since run start

Test plan

  • npx tsc --noEmit — no new errors in touched files (pre-existing errors in GraphPanel.tsx / App.tsx unrelated)
  • npm run build — clean
  • Playwright E2E: login, switch between Crawl/Fuzz/Scan/Import tabs (all render with new chrome), enter http://example.com and Start Crawl — SSE events appear in the console, progress cards update, no uncaught errors in browser console
  • Verify on a real target with a valid seeds file (backend requires a file path for seeds; UI is wired correctly)

🤖 Generated with Claude Code

- Left card with tabs Crawl / Fuzz / Scan / Import (new design tokens)
- Right card "Live runs" with progress stack + session counters polled
  from /api/graph/stats and /api/findings
- Bottom collapsible console (.log) with ALL / CRAWL / AUDIT / FUZZ
  run filter + hide toggle
- Crawl tab streams /api/ingest/crawl/stream SSE, maps progress events
  onto the progress card
- Fuzz tab posts to /api/tools/run (ffuf/feroxbuster) and parses hits /
  progress from streamed TTY output
- Scan tab reflects real plugins from /api/plugins, supports scan presets
  from /api/scan-presets when available, and wires nuclei to the pipeline
  endpoint + local scanners to /api/scan/fetch-and-scan
- Import tab drag/drop multipart upload to /api/ingest
- Preserves wordlist picker modal, TTY ANSI handling, CVE/audit scanner
  progress streaming from the prior OperationsPanel

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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