Block a user
Partner health resets on every deploy — make it durable
Backfill the refresh-run history from the output the jobs already left behind
Ops Desk — a page that answers how the backend is doing
Slab photo upload misidentifies card for #163412716
Retain lookup telemetry (search misses, barcode misses, nightly refresh stats) and surface it on /monitoring
Retain the daily TCGCSV price archive instead of discarding it
No alarm when a nightly data sync stops succeeding (six days went unnoticed in July)
One transport error aborts the whole nightly Scrydex sweep, not just the failing game
Nightly Scrydex sweep projects every card into card_cache twice
Web app renders server validation errors as [object Object]
Decide write policy for the shared events table before event sharing ships
Show profit is an estimate until sale lines carry the cost of what sold
Trade-session totals need one request per session (N+1 on the show screen)
Show inventory cost requires downloading the vendor's entire stock
Card search sends two backend requests per keystroke with no debounce — confirm and fix
Every backend log line goes to stderr, so Railway labels routine activity as [err]
Barcode lookups run on upcitemdb's free trial tier (~100/day) and will fail silently at a busy show
TCGplayer Infinity is called live on every card add, with no cache
Adding one card to a transaction fires the full add sequence ~18 times
Search for sealed product 'Ascended Heroes Tech Sticker Collection' returns no results