Catalog builder rewritten — reads join declarations from vendor_endpoints; supports both multi-table and single-table vendor layouts through the same code path
vendor_endpoints schema extended with join_to, join_on, and join_type columns; join relationships declared in vendor manifests and seeded at install
Product sync
Executor reads normalized catalog columns directly — removed hardcoded S&S staging-name translation; all vendors sync through the same deterministic code path
Variable product grouping uses a canonical style-key resolver for vendor-neutral style identification
Self-healing variation upsert — stale wrong-shape products are automatically cleaned up and rebuilt on re-run
Images
Image Manager recognizes absolute_url source mode so vendors with fully-qualified image URLs work correctly
Color Image and Brand Image added as mapping targets — per-color variation photos and brand logos now populate for all vendors
UI
Fixed elapsed timer regression that caused the timer to keep incrementing after job completion
Filter and mapping example values now work for any staging layout
Import tab supports per-file cards for FTP-transport vendors
Tools
Database Migration rebuilt as discovery-driven per-vendor Repair system with Run All
Vendor selector auto-submits on change
Licensing
Pro license system — activate, deactivate, and validate licenses from the Dashboard
S&S Activewear works fully without a license; additional vendors require a Pro license
License status cached locally with weekly background re-check
Action Scheduler automation gated to Pro Developer and Agency tiers