Appearance
App PR #925 and backend PR snag-tcg/tcg-collector-backend#608 fix the gap between a Prix-down control and the displayed order. The API orders all matching cards by fresh stored exact FR/NM regular EUR prices before LIMIT/OFFSET and returns that same evidence as live_nm_price. The app seeds ordering and tile labels from these quotes before live hydration, keeping newer observations through pending cache misses. Unknown prices stay last; catalogue averages and invented zero prices are not substitutes. Canonical printing fingerprints, source policies and freshness checks remain enforced.
Deploy the API companion before the mobile rollout. No migration is required. Explicit-ID and non-search catalogue reads keep their existing ordering. This change supplies the global default descending-price order; alternate client-side sorts on searches above the bounded completion limit remain a separate follow-up.
All final validation, commits, pushes and PR creation ran on the personal development VPS, leaving the live demo PC and emulator alone. App lint and TypeScript pass; mandatory push checks report 3,231 passing tests and 11 skipped. Backend build/full tests report 1,648 passed and 20 skipped. Four targeted route, real PGlite pagination and projection/tie-break regressions pass without skips. The first-render grid regression observed Red, then Green with matching 500 EUR and 2 EUR display/order; additional tests cover stale, future and updated quotes.
A data-preserving Maestro flow was added but not run; no device verification is claimed. Neither PR is merged or deployed by this work. Account and collection data and production services were not modified. Related beta umbrella: #868.