Here’s a look at what’s changed on manapool.com between May 21-June 3.

Stuff You Might Notice

🚚 For Sellers

Inventory Management

  • Inventory edit page now shows Condition → Finish → Language in consistent order across all filter rows.
  • Added a “Select all” button to inventory filters - instead of clicking every matching option one at a time (e.g. all “token” variants), you can now select them all in one click.
  • The set filter now matches on set codes (e.g. “C19”) in addition to full set names, so you can find printings the way sellers actually think about them.
  • 🐛 Fixed the price input $ sign overlapping/clipping the value on mobile, so you can actually see what you’re typing on the inventory edit page.

Packing Slips & Shipping

  • 🐛 Fixed the 4×6 layout option - selecting 4×6 on the packing slip page and clicking Print PDF now actually produces a 4×6 document instead of Letter size.
  • 🐛 Fixed the State dropdown on the packing envelope return address so it can now be cleared - useful if you want to leave the return address blank.

New Seller Onboarding

  • Added new seller onboarding for new sellers to /seller/getting-started.
  • Seller tools now don’t show to all users - they only show if you either click “I want to sell” at signup, or if you later enable seller tools - makes the menu less cluttered for pure buyers.

Ratings

  • Added a CSV export to the ratings page.

🧙‍♀️ For Buyers

Cart improvements

  • When a large cart has an unavailable item, a jump-to-next-issue link and sticky error bar now appear so you can find the problem row instantly instead of hunting through hundreds of cards.

Card search

  • Added a card text filter to the browse experience so you can search by oracle text (e.g. find all cards with “banding”).
  • Inventory filters now correctly imply in-stock - when inventory filters are active, out-of-stock items are hidden as expected.

Bug fixes

  • 🐛 Fixed broken “view in browser” links in emails - the “Problems viewing this email? Click here” link now actually works across all email templates.
  • 🐛 Fixed an issue where buyer report emails for auto-replacement orders were going to an internal system account instead of the real buyer.
  • 🐛 Fixed a checkout crash that affected carts containing items added via “saved for later” or admin-issued replacements.

👩‍💻 API & Docs

  • 🐛 Deduplicated bulk-price schemas in the OpenAPI spec using shared $refs.
  • 🐛 Fixed the API docs - the catalog export description now correctly says “daily” instead of “weekly.”
  • Improved the custom_external_id field description in the API docs.
  • Banned sellers are now filtered out of the public catalog feed and recent-sales APIs.

⚡ Performance & Reliability

  • 🐛 Fixed a statement timeout on the “similar cards” search - it now uses the GIN trigram index properly.
  • Added a full-text index on cardsmtg to speed up card name and text searches.
  • Split the large _cardsmtg_preaggregates materialized view to avoid refresh timeouts that were causing site outages.
  • Converted seller_stats from a materialized view to a blue/green swapping table to eliminate refresh-related downtime.
  • Converted homepage_products to the same blue/green swapping table pattern.
  • 🐛 Fixed the matview refresh debounce/concurrency key that had caused the 3×/day scheduled refresh to stop running.

🕵️ Behind the Scenes

These changes affect internal systems or beta test features that won’t be apparent to you, but we include this info for the curious.

Admin Tooling

  • New Refresh Status page at /admin/developer/refresh-status shows when all materialized views and tables were last refreshed at a glance.
  • 🐛 Fixed the Change Email and Anonymize User Data links on admin buyer pages - both were 404ing due to singular/plural route mismatches.
  • Admin menu reorganized: mobile layout fixed, tabs merged, and routes grouped under category prefixes.
  • Retention dashboard can now be filtered by affiliate.

Ops Notifications

  • Ops-related Slack notifications (seller enable/disable/ban, payout events, Shopify alerts, order prodding) moved from #dev-logs to #ops-logs for less noise in dev channels.
  • 🐛 Fixed the payouts CSV download being capped at 1,000 rows.

Reducing Alert Noise

  • Suppressed noisy per-file test-harness log lines in CI and quieted the Vercel build output - build logs are now actually readable.
  • Dropped transient client-side network errors (Safari “Load failed”, Chrome “Failed to fetch”, AbortError, etc.) from Sentry so real errors are easier to spot.
  • Removed noisy Sentry errors from bot traffic hitting non-existent card slugs.

Maintenance Mode

  • Added a DB-backed maintenance mode toggle with an admin UI - admins can now flip maintenance mode on/off in seconds without a Vercel redeploy, in case deploys go awry.

🚧 In Development

Gathered & Verify (BETA TESTERS)

  • Admins can now verify received packages at the item level, with a Mass Save button to stage all sub-order outcomes at once instead of one section at a time.
  • 🐛 Fixed the “Mark Received” button on the buyer gathered orders list.
  • 🐛 Fixed gathered-order buyers being greeted as “Dear Mana Pool Fulfillment” in shipped notification emails - they now see their actual name.
  • 🐛 Removed the # from the ATTN line in hub shipping addresses (now reads ATTN: 1-2 A instead of ATTN: #1-2 A).
  • Admin gathered-order page now surfaces reports and remediations on each sub-order row so hub workers can see the full picture.
  • Admin gathered-order notes (freeform textarea + replacements counter) are now stored in the database instead of localStorage, so any teammate or support agent can see them.
  • Added percentage-based rollout support to the gathered orders feature gate for gradual expansion.
  • Admin pipeline for handling buyer reports on gathered orders.
  • Admin per-report page is live for G&V reports with manual replacement and refund support wired end-to-end.
  • 🐛 Fixed crashes in the email and Inngest pipelines when a buyer filed a report on a gathered order.
  • 🐛 Fixed remediation buyer emails going to the system account instead of the real buyer on auto-replacement orders.
  • Admin per-report page refactored into panel components to keep it maintainable as the feature grows.

Required Verifications

  • Backend and admin tooling for requiring hub authentication on high-value cards from sellers with no track record.