feat(ui): v0.3.0 Phase 2 — UX & Workflow - #58
Conversation
There was a problem hiding this comment.
Sorry @tonythethompson, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
Next review available in: 13 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (15)
Comment |
Qodo FixerNo findings are available for this PR yet. Findings appear here once Qodo has reviewed the PR. |
|
| Filename | Overview |
|---|---|
| src/components/features/BatchComparisonChart.tsx | New recharts bar/radar chart for multi-model comparison. Division-by-zero guarded by the , 1 sentinel in Math.max calls. No issues found. |
| src/components/features/BatchComparisonView.test.tsx | 6 component tests covering render, delta indicators, close button, sort, and VRAM formatting. Delta test only verifies the default sort so the baseline-shift bug on non-duration sorts is not exercised. |
| src/components/features/BatchComparisonView.tsx | New sortable comparison table. baseline = sorted[0] pins the delta reference to whichever row sorts first, scrambling delta semantics on non-duration sorts — already raised in a prior review thread. |
| src/components/features/BatchProcessingPanel.tsx | Adds Compare button and BatchComparisonView inline panel. timestamp: new Date().toISOString() stamps all comparison records with click time rather than actual job run time — already flagged in a prior review thread. |
| src/components/features/ExecutionWorkspace.tsx | Adds Export Report button that downloads the last 6 history records as Markdown. Silent no-op when history is empty is intentional. Clean integration with new APIs. |
| src/components/features/InputEnvironmentPanel.test.tsx | Test mock updated to match the new oliveRecipeHub API. No issues found. |
| src/components/features/InputEnvironmentPanel.tsx | Branch pinning UI correctly persists to localStorage via setRecipesBranch and resets to OLIVE_RECIPES_BRANCH_DEFAULT on unpin. No issues found. |
| src/components/features/JobHistoryModal.tsx | Compare-selection limit raised from 3 to 6 consistently in toggle guard and both user-facing strings. No issues found. |
| src/data/recipes.ts | Lazy-loads catalog for 215 KB bundle reduction. Two issues: if (_cachedCatalog) is truthy for [], permanently caching a failed import (flagged in this review); in-place mutation of SUGGESTED_RECIPES is invisible to React state (flagged in prior thread). |
| src/index.css | Normalises colour tokens to lowercase and adds @media print styles for PDF export. No issues found. |
| src/lib/tests/reportGenerator.test.ts | 7 unit tests covering report title, comparison section, VRAM omission, recipe JSON, and failed-status emoji. markdownToPrintHtml and printReportAsPdf are not tested. |
| src/lib/hooks/useRecipeCatalog.ts | New TanStack Query v5 infinite-scroll hook. initialPageParam, getNextPageParam, and staleTime are all correctly configured. No issues found. |
| src/lib/oliveRecipeHub.ts | Replaces static branch constant with getRecipesBranch()/setRecipesBranch() backed by localStorage. Default parameter correctly evaluated at call time. No issues found. |
| src/lib/reportGenerator.ts | Markdown report generator and print-HTML converter. markdownToPrintHtml correctly splits table cells on |
| src/server/routes/github.ts | New paginated /api/github/catalog endpoint. Pre-flagged issues: .ts extension in the dynamic import breaks compiled production builds; |
Sequence Diagram
sequenceDiagram
participant U as User
participant EW as ExecutionWorkspace
participant RG as reportGenerator
participant JH as jobHistoryStore
participant BP as BatchProcessingPanel
participant BCV as BatchComparisonView
participant S as Express /api/github/catalog
participant RC as useRecipeCatalog hook
participant DR as data/recipes.ts
Note over DR: Module load
DR->>DR: loadSuggestedRecipes()
DR-->>DR: SUGGESTED_RECIPES mutated in-place
U->>EW: Click Export Report
EW->>JH: getJobHistory()
JH-->>EW: last N records
EW->>RG: downloadMarkdownReport(records)
RG-->>U: .md file download
U->>BP: Click Compare
BP->>BCV: render(records mapped from jobs)
BCV-->>U: sortable table + Delta Duration
U->>RC: useRecipeCatalog
RC->>S: GET /api/github/catalog
S->>S: dynamic import catalog
S-->>RC: items and pagination
RC-->>U: infinite-scroll catalog pages
Reviews (4): Last reviewed commit: "fix(test): add getRecipesBranch to olive..." | Re-trigger Greptile
There was a problem hiding this comment.
Pull request overview
Adds Phase 2 UX/workflow features for v0.3.0, centered on improved recipe browsing (paginated catalog + branch pinning), batch run comparison UI, and Markdown report export from execution history.
Changes:
- Added server-side paginated recipe catalog endpoint and a TanStack Query infinite-query hook for client consumption.
- Introduced batch run comparison UI (sortable table + charts) and raised comparison limits (3 → 6).
- Added Markdown report generation/export utilities and print/PDF styling support.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/server/routes/github.ts | Adds /github/catalog paginated endpoint with arch/device filters. |
| src/lib/reportGenerator.ts | Introduces Markdown report generation + download/print helpers. |
| src/lib/oliveRecipeHub.ts | Adds localStorage-backed recipes branch pinning helpers. |
| src/lib/hooks/useRecipeCatalog.ts | Adds infinite-query hook to fetch paginated catalog. |
| src/lib/tests/reportGenerator.test.ts | Adds unit tests for Markdown report generator. |
| src/index.css | Adds global print CSS rules for report/PDF output. |
| src/data/recipes.ts | Switches catalog to dynamic import + cached loader API. |
| src/components/features/JobHistoryModal.tsx | Increases selectable comparison runs to 6 and updates copy. |
| src/components/features/InputEnvironmentPanel.tsx | Adds branch pin/unpin UI and uses dynamic branch resolution. |
| src/components/features/ExecutionWorkspace.tsx | Adds “Export Report” button using job history + report generator. |
| src/components/features/BatchProcessingPanel.tsx | Adds “Compare” toggle and wires completed jobs into comparison view. |
| src/components/features/BatchComparisonView.tsx | New sortable comparison table with delta indicators. |
| src/components/features/BatchComparisonView.test.tsx | Component tests for comparison table behavior. |
| src/components/features/BatchComparisonChart.tsx | New Recharts bar/radar comparison chart component. |
Suppressed comments (2)
src/components/features/BatchComparisonView.tsx:113
- Delta column header still says "Δ Duration" even if the primary metric is actually latency (see
durationMssource inBatchProcessingPanel). Update the header to match the metric label.
<th className="px-3 py-2 text-slate-400 font-medium">Δ Duration</th>
src/components/features/BatchComparisonView.tsx:158
- Helper text mentions "Δ Duration"; if the metric is latency, this should be updated to avoid confusing users.
<p className="text-[10px] text-slate-500">
Δ Duration relative to first row (baseline). Click column headers to sort.
</p>
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
60e6099 to
02e22f8
Compare
Code Review by QodoSorry, something went wrongWe weren't able to complete the code review on our side. Please try again manually by commenting/agentic_review on this PR.
Powered by Qodo |
02df559 to
567fadd
Compare
There was a problem hiding this comment.
tonythethompson has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
tonythethompson has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
…log, branch pinning
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
567fadd to
7715c73
Compare
There was a problem hiding this comment.
tonythethompson has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
Phase 2 — UX & Workflow
Part of the v0.3.0 Roadmap mitigation plan (2 of 4 stacked PRs).
Changes
GET /api/github/catalog) with arch/device filtersuseRecipeCatalog) for infinite-scroll server-side catalogimport()removes 215 KB from initial bundle@media printstyles for report outputStacked PRs
feat/v030-phase1-perffeat/v030-phase2-ux(this)feat/v030-phase3-distfeat/v030-phase4-strategicSummary by cubic
Adds a side-by-side batch comparison with charts, a Markdown report exporter with print-ready tables, and a paginated recipe catalog to improve v0.3.0 UX while trimming ~215 KB from the initial bundle. Also raises the compare limit to 6 and adds branch pinning for reproducible recipe imports.
New Features
rechartsgrouped bar/radar charts; Compare button in Batch panel; supports 2–6 runs.GET /api/github/catalogwitharch/devicefilters, plus@tanstack/react-queryhook (useRecipeCatalog) for infinite scroll.import()to remove ~215 KB from the initial bundle.Bug Fixes
Written for commit 7715c73. Summary will update on new commits.