feat(app): add step timing waterfall and per-category summary#261
Merged
Conversation
The Steps tab was sparse — a 4-column table (fail-only marker, category, title, duration) that also repeated the header's "wasted in fixed waits" badge. Make it denser and drop the redundancy. - reporter: capture each step's `location` (a `file:line:col` pointer, not a source snippet) and `startTime` in `flattenSteps` — the raw Playwright step already carries both. They ride inside the existing `steps` JSON column, so there is no DB migration and no handler/persistence change. - steps tab: add a per-category summary strip; show pass/fail for every step (not just failures); add a step index, a source-location reference, and a duration-share bar (a real waterfall when start times are present, else a magnitude bar) with % of the test's total; highlight the slowest step. The table now spans full width with the Step column absorbing the slack. - remove the wasted-time badge from the tab (still shown in the header). `location`/`startTime` populate on new runs; existing runs degrade gracefully with those cells left blank. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FT9qrzo6jdKtnyS6JxWJxA
Main gained the OpenInIdeLink component (and the "Clickable source paths" rule) after the steps-tab enrichment was written. Swap the steps table's bare location text for OpenInIdeLink — same muted mono look, plus the hover open-in-IDE / chooser affordance — and drop the now-unneeded shortLocation helper (the component renders its own truncated path:line label). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FT9qrzo6jdKtnyS6JxWJxA
Contributor
Coverage Report for Reporter (./reporter)
File Coverage
|
||||||||||||||||||||||||||||||||||||||
Contributor
Coverage Report for Application (./application)
File Coverage
|
||||||||||||||||||||||||||||||||||||||
The PR coverage report flagged the error-capture lines as the only uncovered lines in step-analyzer.ts (a pre-existing gap surfaced by this PR touching the file). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FT9qrzo6jdKtnyS6JxWJxA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Enhances the Steps tab on test case detail pages with:
startTimeon steps, renders a true waterfall chart showing step overlap and timing. Falls back to magnitude-based bars when timings aren't availablefile:line:colpointers for steps when available, with IDE integrationRemoves the "wasted time in fixed waits" badge, which is replaced by the more granular per-step timing data.
Updates the reporter's
flattenStepsto capturelocation(formatted asfile:line:col) andstartTimefrom raw step objects, enabling the waterfall visualization. These fields are optional and only present on runs from recent reporter versions.How was it tested
step-analyzer.spec.tscovering:file:line:col)startTimehandling (Date objects and numeric timestamps)Checklist
feat(app): ...)FlatStep,TestStepInfo,PerformanceStep)https://claude.ai/code/session_01FT9qrzo6jdKtnyS6JxWJxA