Skip to content

ui: port sitemap panel to new design#9

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

ui: port sitemap panel to new design#9
Moriz82 wants to merge 1 commit into
mainfrom
worktree-agent-aa02d40d

Conversation

@Moriz82

@Moriz82 Moriz82 commented Apr 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • Rewrite SitemapPanel.tsx to match the new 3-column design (host tree / filtered table / inspector) from /tmp/new_ui/src/screens/sitemap_screen.jsx, wired to the live /api/graph?kinds=Endpoint + /api/responses/{id} backends.
  • Add frontend/src/styles/{tokens,base,screens}.css with sitemap-owned selectors ported from /tmp/new_ui/styles/; shared primitives (.searchbar, .chip, .method, .status-chip, .insp-*, .prop-*, .btn) are scoped under .sitemap to avoid conflicts with sibling panel ports.
  • Inspector action buttons (Open in graph, Re-scan, cURL, Copy URL) wired to handlers; method/status/search filters and per-host findings counts all derived via useMemo.

Test plan

  • npx tsc --noEmit — no new errors from SitemapPanel/main/styles (pre-existing errors on main unchanged).
  • npm run build — succeeds.
  • E2E via headless Chromium + CDP: login with gossamer/gossamer, navigate to Sitemap tab.
  • Verified 3 hosts render in left tree (facts.htb, oss.maxcdn.com, fonts.googleapis.com) with 127 endpoints for the selected host.
  • Toggled GET chip off — table filtered from 127 rows to 1 row.
  • Clicked row — inspector renders with Host/Title/Tech/Source/Findings/Body size/Content-Type prop rows and all 4 action buttons.
  • 0 console errors.

Screenshots: /tmp/sitemap-after-login.png, /tmp/sitemap-filtered.png, /tmp/sitemap-inspector.png.

🤖 Generated with Claude Code

Rewrite SitemapPanel.tsx to match the new 3-column design:
- Left: per-host collapsible tree with method chip + path rows and
  finding dots.
- Center: toolbar (host crumb, search, GET/POST/PUT/DELETE/HEAD method
  chips, status 2/3/4/5xx filters, export) plus Method/Path/Status/Tech/
  Source/Findings table.
- Right: inspector with endpoint glyph, method/status badges, prop rows
  (Host/Title/Tech/Source/Findings), and Open-in-graph/Re-scan/cURL/
  Copy URL action buttons.

Data is fetched from /api/graph?kinds=Endpoint and row selection
pulls /api/responses/{id} for headers/body shown in the inspector.

Add frontend/src/styles/{tokens,base,screens}.css with the design
tokens and sitemap-owned selectors ported from the new UI. Shared
primitives (.searchbar, .chip, .method, .status-chip, .insp-*,
.prop-*, .btn) are scoped under .sitemap to avoid conflicts with
sibling panel ports.

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