Skip to content

feat: Phase 1a — response panel improvements#4

Open
aks-builds wants to merge 6 commits into
mainfrom
feat/phase1a-response-panel
Open

feat: Phase 1a — response panel improvements#4
aks-builds wants to merge 6 commits into
mainfrom
feat/phase1a-response-panel

Conversation

@aks-builds

Copy link
Copy Markdown
Owner

Summary

  • JsonTreeView — collapsible JSON tree with colour-coded types, auto-expand to depth 2, click to toggle nodes
  • Tree / Table / Raw toggle — body tab now defaults to tree view; table view auto-detected for array responses; raw pre preserved as fallback
  • JSONPath filter bar$.path input above body content, filters response in real time using jsonpath-plus; error indicator for invalid paths
  • Ctrl+F body search — keyboard shortcut opens search bar with match counter and amber highlights in raw view; Escape/Ctrl+F to close
  • Timeline tab — new tab showing total request duration with Waiting and Receiving segments as animated bars

Technical notes

  • jsonpath-plus added as production dependency (renderer bundle via Vite)
  • PikoResponse gains timing?: { ttfb: number; total: number } — REST adapter populates it; other adapters fall back to { ttfb: duration, total: duration }
  • onDownloadProgress (browser-only) removed; timing is single-phase and honest
  • filteredBody computed via useMemo; filter error cleared via useEffect — no setState during render
  • Digest auth retry path now includes timing field

Test plan

  • Unit tests: 113/113 passing (npx vitest run)
  • TypeScript clean on both configs
  • Send a REST request → body tab defaults to tree view, collapse/expand nodes
  • Send request returning array → Table button appears, shows column grid
  • Type $.stats in filter → tree updates to filtered subtree
  • Type invalid path → red "Invalid path" indicator appears
  • Press Ctrl+F → search bar opens; type a key → matches highlighted in raw view
  • Click Timeline tab → duration bar visible with Waiting and total time

🤖 Generated with Claude Code

Wire JsonTreeView into ResponsePanel body tab: JSON object/array responses
default to tree view with Tree/Raw toggle buttons; array responses get an
additional Table view. Non-JSON responses continue to show the raw <pre>.
Adds E2E test covering body-view-tree and body-view-raw visibility.

@aks-reviewes aks-reviewes left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved by aks-builds secondary account - PR opened by the sole codeowner.

@aks-codeowner-bot aks-codeowner-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved by aks-codeowner-bot - PR opened by the sole codeowner.

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