Changelog

What We Shipped

Every feature, improvement, and fix. Newest first.

Fix

Smarter Blur Detection for Product Shots

Blur quality checks no longer flag white-on-white product shots or soft lifestyle photography.

  • White-on-white bypass expanded to cover the enhancement band, so low-contrast products on white backgrounds aren't flagged just because the edges are subtle
  • Contrast-normalized sharpness lets low-contrast shots prove they're crisp through normalized edge structure instead of relying on one-off bypasses
  • Constrained-axis margin checks use only the tight axis for shared whitespace bands, so tall and wide products pass legitimate square-canvas layouts
Improvement

Simpler Vendor Invite Flow

Invited vendors now land on a branded setup page instead of the generic sign-in flow.

  • Direct invite page shows your workspace branding and lets new vendors set a password and go straight into the portal
  • One-step registration auto-verifies the invited email, creates the account, and accepts the invitation in one request
  • Existing account users are sent to sign in instead of creating duplicates
  • SFTP connection details now show host and port separately so they paste cleanly into SFTP clients
New Feature

Vendor Activity Log: Click Thumbnails to Preview

Thumbnails in the vendor activity log now open an image preview when you click them.

  • Preview modal opens from any activity log entry that has an image thumbnail
  • Keyboard accessible: the thumbnail is a proper button, so expanding a log row and previewing an image are separate interactions without invalid nested markup
Fix

Vendor Product Tabs Now Filter Correctly

Status tabs on the vendor products page were only filtering the first loaded page of results. Now they filter the full set on the server.

  • Server-side tab filtering: clicking Complete, Incomplete, or other status tabs now pages through the correct bucket instead of filtering what happened to be loaded
  • Summary counts stay visible while switching tabs, so the cards don't flash to zero between clicks
  • Tab counts are search-scoped but independent from the active status tab, showing the real bucket totals
Improvement

Page Transitions and Skeleton Loaders

Page navigation feels smoother with view transitions and proper skeleton loaders.

  • View transitions for page navigation using Next.js 16.2, giving route changes a polished animated feel
  • Skeleton loaders on vendor pages and the trash page now match the actual content layout instead of showing a generic spinner
  • Sign-in page rotates through hero images randomly on each visit
  • No double-animation on reload: the vendor sidebar width restores from storage before transitioning, so hard refreshes don't play a resize animation
Improvement

Approval Rules Page: Cleaner Layout

The Approval & Validation page is less cluttered and easier to scan.

  • Status strip removed from the top, so the page opens directly on the default rule and rule library
  • Rules grouped by type: org-wide default and scoped overrides get their own cards, inactive history and resolution details are behind accordion panels
  • Consistent cards using shared ShadCN patterns for scope, checks, routing, autofix state, and pass/fail outcomes
Improvement

Smoother Dashboard Page Transitions

Page transitions across the dashboard are now smoother with fewer loading flashes.

  • No more stacked loaders: pages keep the current screen visible until the next route is ready instead of flashing a skeleton, then a spinner, then the content
  • Layout-shaped skeletons for billing, review, trash, and settings pages so you see the page structure during initial loads
  • Filters and sorts in the library, products, and analytics pages feel instant because the old data stays visible while new results load
Improvement

Review Queue: Better Split View and Batch Validation

The review approval flow is faster and clearer with batch validation and a redesigned split view.

  • Batch validation replaces per-asset requests. The review queue now fetches pass/fail state, failed rules, and autofix credit estimates in one request instead of one per asset.
  • Clearer failed-spec panel: failing checks show first with the repair action as a full-size CTA. Passed checks move behind a disclosure.
  • Stable layout: the validation panel keeps a fixed height across loading, pass, fail, and empty states so the image preview doesn't jump around
  • "Approve anyway" softens the approval button when checks still fail, keeping the repair path visually primary
Improvement

Vendor Autofix Now Handles More Issues Automatically

Vendor upload autofix can now fix more common issues without needing manual review.

  • Deterministic fixes expanded: max-dimension cleanup, aspect-ratio correction, margin-band cleanup, and high-confidence centering or frame-fill repair now run automatically on vendor uploads
  • Expensive fixes stay with reviewers: AI upscaling, background removal, and agent-based repairs still require manual review
  • Combined geometry repairs run as one smart-crop pass instead of chaining multiple crops, making autofix faster
  • Autofix reuses buffers between normalization and output steps, cutting redundant downloads
Improvement

Vendor Pages Keep Filters in the URL

Filter state across the vendor portal now lives in the URL instead of disappearing on refresh.

  • Refresh, back/forward, and shared links all preserve the current view on dashboard, products, submissions, notifications, activity log, batch upload, and SFTP pages
  • Notification links work properly: Cmd/Ctrl-click opens in a new tab instead of requiring a full page navigation
  • Accessible controls: sidebar expand/collapse and copy buttons now have explicit labels for screen readers