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.

Seller inventory set filter showing the Select all control and available sets.

Choose Select all to include every inventory set currently shown in the filter.