- searchCatalog: use $regex partial match (like user search) instead of
MongoDB $text full-word search, so typing part of a product name works
- createShopProduct: new listings always start pending_shop_approval instead
of auto-activating when the shop itself is already active, so incomplete
wizard drafts no longer leak into the public discover feed before the
owner finishes and it's approved
- Populate owner.verify_badge on shop responses (getShopPublic, getShopById,
getDiscoverFeed, getShopProductById, getCatalogListings) so the app can
show a verified/license badge next to shop names
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>