Skip to content

Web: Display Epson V700 colony detection CSV as a paginated table - #76

Merged
wasimxyz merged 1 commit into
stagingfrom
cursor/epson-colony-csv-table
May 19, 2026
Merged

Web: Display Epson V700 colony detection CSV as a paginated table#76
wasimxyz merged 1 commit into
stagingfrom
cursor/epson-colony-csv-table

Conversation

@wasimxyz

@wasimxyz wasimxyz commented May 19, 2026

Copy link
Copy Markdown
Member

Summary

  • Renders the *_colonies.csv produced by the Epson V700 colony detection pipeline (Epson V700 Scanner: Add plate detection and colony phenotyping pipeline #75) as a 10-rows-per-page table above the JPG preview in RunReportSection.
  • CSV bytes are fetched client-side via the existing /api/v1/files/:id/download 302-presigned-redirect, so they flow browser → S3 directly with zero Vercel Fast Origin Transfer.
  • Column headers are derived from the CSV, not hardcoded, so future lambda schema changes won't require front-end edits. Numeric columns are auto-right-aligned with tabular-nums.
  • New client component web/components/runs/colony-data-table.tsx with loading skeleton, error panel + Retry, and a per-mount useRef<Map> cache so re-mounts don't refetch. Memoizes columns, numericColumns, and pageRows.
  • RunReportSection stays an RSC; CSVs are folded into totalCount so the section header and empty-state placeholder remain accurate.
Screenshot 2026-05-18 at 6 44 29 PM

Test plan

  • Open an Epson V700 run with a *_colonies.csv processed file: table appears above the JPG, 10 rows per page, prev/next paginates, "Open as CSV" downloads the raw file.
  • Open an Epson V700 run that pre-dates Epson V700 Scanner: Add plate detection and colony phenotyping pipeline #75 (no CSV): only the JPG renders — no empty table or stuck skeleton.
  • Open a non-Epson run that uses RunReportSection (e.g. tape-station): unchanged.
  • make check-all passes.

Made with Cursor

…ve the JPG preview

Renders the `*_colonies.csv` produced by the Epson V700 colony detection
pipeline (PR #75) as a 10-rows-per-page table above the JPG in
RunReportSection. CSV bytes are fetched client-side via the existing
presigned-download redirect so they flow browser → S3 directly. Column
headers are derived from the CSV so the schema can evolve without UI changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
data-hub Ready Ready Preview, Comment May 19, 2026 1:41am

Request Review

@wasimxyz wasimxyz self-assigned this May 19, 2026
@wasimxyz
wasimxyz marked this pull request as ready for review May 19, 2026 01:41
@wasimxyz
wasimxyz merged commit b682546 into staging May 19, 2026
4 checks passed
@wasimxyz
wasimxyz deleted the cursor/epson-colony-csv-table branch May 19, 2026 01:46
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