Wave Reports page: contributor & maintainer performance reports#1931
Open
efstajas wants to merge 1 commit into
Open
Wave Reports page: contributor & maintainer performance reports#1931efstajas wants to merge 1 commit into
efstajas wants to merge 1 commit into
Conversation
…orts New 'Reports' sidebar entry with settings-style tab routes at /wave/reports: a Contributor tab showing the user's per-wave performance report (AI summary of maintainer feedback, stat tiles with wave-over-wave deltas, rating meters, per-day activity charts) and a Maintainer tab with an org selector showing the same layout for org-wide reports built from contributor feedback. Wave program, wave, and org selection persist via query params; the default tab falls back to Maintainer when only an org report exists.
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new Wave Reports section that surfaces per-wave performance reports for both contributors and maintainers, with program/wave (and org) selection persisted via query params.
Changes:
- Introduces
/wave/reportswith tabbed subroutes for Contributor and Maintainer reports, including default redirect behavior. - Adds Wave report fetching utilities and Zod DTO schemas for user + org report payloads.
- Adds reusable UI components for the report layout (AI summary card, stat tiles w/ delta badges, ratings breakdown, daily activity charts) and updates
ScrollableTabsto ignore query strings for active matching.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/routes/(pages)/wave/(base-layout)/reports/maintainer/+page.svelte | Maintainer/org report page with org selector, AI summary, stats, ratings, and charts. |
| src/routes/(pages)/wave/(base-layout)/reports/contributor/+page.svelte | Contributor/personal report page with AI summary, stats, ratings, and charts. |
| src/routes/(pages)/wave/(base-layout)/reports/+page.ts | Redirects /wave/reports to the most relevant default tab. |
| src/routes/(pages)/wave/(base-layout)/reports/+layout.ts | Loads wave programs/waves and fetches selected report + org reports based on query params. |
| src/routes/(pages)/wave/(base-layout)/reports/+layout.svelte | Shared Reports layout: header, selectors, and tabs with query-param persistence. |
| src/routes/(pages)/wave/(base-layout)/+layout.svelte | Adds “Reports” entry to the Wave sidebar navigation. |
| src/lib/utils/wave/waveReports.ts | Adds authenticated API helpers to fetch wave reports and org wave reports. |
| src/lib/utils/wave/types/waveReport.ts | Adds Zod schemas/types for wave report DTOs and stats payloads. |
| src/lib/components/wave/wave-report/wave-report-stat-tiles.svelte | Reusable stat-tiles grid used by both report pages. |
| src/lib/components/wave/wave-report/wave-report-ratings.svelte | Ratings breakdown UI: distribution bar + per-dimension meters. |
| src/lib/components/wave/wave-report/wave-report-ai-summary.svelte | AI summary card rendering summary paragraphs + strengths/growth areas + footnote. |
| src/lib/components/wave/wave-report/delta-badge.svelte | Wave-over-wave delta badge with tooltip. |
| src/lib/components/wave/wave-report/daily-activity-chart.svelte | Hand-rolled daily bar chart with sparse axis labels and CSS tooltips. |
| src/lib/components/scrollable-tabs/scrollable-tabs.svelte | Adjusts active tab matching to ignore query strings in tab hrefs. |
| src/lib/components/icons/Stars.svelte | Adds new Stars icon used by the AI summary card. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Frontend for drips-network/wave#692.
What
A new Reports entry in the Wave sidebar (above Reward Grants) at
/wave/reports, with settings-style tab routes:/wave/reports/contributor): the user's personal report for the selected wave — a prominent AI summary card (summary, strengths, growth areas, review-count footnote), stat tiles (points earned, issues resolved, applications, reviews received) with wave-over-wave delta badges, maintainer rating meters + overall-experience distribution, and per-day points/applications column charts./wave/reports/maintainer): an org selector (avatars, large dropdown) over the same layout with org-centric metrics — points awarded, issues completed, applications received, unique contributors, and contributor-feedback ratings (maintainer communication, repo code quality, issue clarity, timeliness).Behavior
/wave/reportsredirects to the Contributor tab by default, or to Maintainer when the user has no contributor report for the wave but one of their orgs does.pending/failed→ 'being prepared';insufficient_data→ stats with an unlock hint instead of the AI summary.Notes
ScrollableTabsgot a small backward-compatible tweak: tab hrefs may now carry a query string (ignored for active matching), so the Reports tabs can preserve selection params.Starsicon (used on the AI summary card), themed viaIconWrapperlike all other icons.svelte-check0 errors; eslint + prettier clean.