Changelog

What We Shipped

Every feature, improvement, and fix. Newest first.

Improvement

Vendor Setup Wizard: Down to Three Steps

The vendor portal setup wizard is shorter and easier to follow.

  • Three steps instead of six: intro, product matching, and review screens are gone. You go straight from approval defaults to shot-list setup to vendor invites.
  • One save button: the per-step save buttons are gone, everything saves through the footer "Save and continue" action
  • Simpler naming presets: choose between "Slot names", "Numeric order", or "Custom" with a live filename preview instead of decoding {position:4} syntax
  • Smarter shot-list setup: Step 3 asks for the usual product gallery image count and derives the shot-list name from your workspace
  • Cleaner defaults panel: image checks start with only the three most common, rest tucked behind "Advanced"
Improvement

Durable Background Job Delivery

Background jobs (batch processing, tool jobs, imports) are now more reliable when things go wrong.

  • Event outbox pattern: job triggers are persisted in the database alongside the status change, so jobs recover automatically even if the queue trigger fails
  • Batch operations: workspace creation, upload sessions, and batch jobs now commit atomically, preventing partial state from half-finished operations
  • Product imports run as cancellable background jobs with real progress tracking instead of tying up a single long-running request
Improvement

Review Activity Gets a Real Timeline

The review queue's activity tab now uses the same timeline format as the rest of the product.

  • Day-grouped layout with preview thumbnails, batch-revert actions, and the same interactions you know from the main activity feed
  • Full review history including submitted, withdrawn, and reopened events that were previously hidden
  • Vendor activity now shows submitted, withdrawn, and reopened review history on the admin side too
Improvement

Smarter Vendor Email Notifications

Vendor notification emails are now grouped and debounced so your vendors get one clear summary instead of a flood.

  • Bulk approvals and rejections collapse into one summary email per vendor, even for batches of 500+ assets
  • Upload rejections are grouped by reason and sent once when the batch completes, not one at a time during upload
  • Async validation outcomes (auto-approved, auto-rejected) wait for all batch validations to finish before sending grouped emails
Improvement

Vendor Batch Upload Shows Your Requirements

The vendor batch upload page now shows the actual image requirements your team configured instead of generic instructions.

  • Spec-backed guidance on the upload empty state: shows the default review checks, upload limits, and accepted formats from the active submission spec
  • Filename convention details including the configured separator, position suffix rules, and a real SKU example
  • Slot groups are keyboard-navigable and use shared button primitives for accepted-example tiles
Improvement

Faster Bulk Folder Operations

Bulk folder actions (move, copy, delete, restore) now happen in one request instead of one per folder.

  • Single batch request for move, copy, delete, and restore operations on multiple folders
  • Progress feedback while bulk deletes are running so large selections don't look stuck
  • Trash operations (restore, permanent delete) also use the batch path
New Feature

Media Templates with Drag-and-Drop Slot Management

A new way to define your product image structure visually.

  • Drag-and-drop slot editor to arrange image slots into groups with visual containers
  • SVG asset thumbnails for a cleaner slot preview in the editor
  • Reusable templates that can be assigned to product groups or individual products
  • Templates define the expected image positions, naming, and validation rules for each slot
Improvement

Product Imports Run in the Background

Large product imports no longer tie up your browser tab.

  • Background processing: imports run as cancellable background jobs with real progress tracking
  • Live progress: the import sheet shows worker-reported product and image counts instead of a fake progress bar
  • Cancel anytime: hit cancel to stop an import mid-run with a clean cancellation record
  • Media import separated: image downloads run in their own phase after product data is saved, so you see products right away
Fix

Review Queue: Accurate Counts and Real Error States

The review queue header and sidebar badges now show accurate counts and failed fetches show real error messages.

  • Badge counts update immediately after approve or reject actions instead of showing stale numbers
  • Real error states: failed fetches on submissions, derivatives, and activity tabs now show a retry option instead of pretending the queue is empty
  • Paged activity feed with a "Load more" action, and the submitter filter now searches all matching submitters instead of just the current page
Improvement

Smart Export: Faster Crops for Clean Backgrounds

Smart Export now tries a free local crop before using paid AI segmentation.

  • Local bounding box first: products on clean backgrounds (white, solid color, transparent) get cropped instantly using edge detection instead of AI
  • AI fallback kicks in automatically for complex scenes where the local detector can't find the subject
  • Preview matches final output so you see exactly what you'll get before exporting
  • Net effect: most product-on-white crops are now free and faster