Appearance
App #847 and backend #584 address the following product feedback, targeting staging:
- Hide the home 24-hour variation if complete history is absent, including loading.
- Keep grid price loading distinct from a definitive missing quote. Follow queued Cardmarket work through passive batch polling instead of requiring a detail visit. Do not reuse an in-memory queued miss while polling; track the visible lookup scope before effects run.
- Load portfolio charts from the exact M1/M2/M3 observation ledger with current quantities. Include a sampled date only when every market has a known, positive EUR quote less than 48 hours old at that instant. Distinguish loading, read failures and missing historical coverage. Use data-derived chart axes.
- Hide the exact Pokemon Center ETB family from public catalogue browsing and facets, preserving explicit ID reads for already-owned products.
- Remove series/block subtitles from sealed Explorer tiles; keep title and price.
- Increase space between the grouping controls and the first series block.
- In a selected series, sort ETB, Display, UPC and Booster before other products; apply chronological/ID tie-breaking before pagination. Other browsing remains chronological. Missing product types need no placeholder.
- Center the sealed detail language/flag/code group. Remove the separate personal valuation text trigger; make the price tag open the editor whether a quote is available or missing.
One Piece pricing-mapping investigation was explicitly deferred by the user. No shared card number is used to guess an alternate artwork's marketplace ID.
Validation: app lint/typecheck passed, 2,999 Jest tests passed and 11 skipped. Backend TypeScript build passed, 1,634 API tests passed and 3 skipped, including PostgreSQL-compatible local PGlite checks for the exact-basket query, missing coverage and knowledge-time constraints. Regression scenarios were observed failing before fixes. The existing sealed-detail Maestro flow now checks the price-tag editor entry but was not executed; no emulator was launched.
The user approved the mobile PR's targeted ten-file-limit exception to retain tests and documentation. Existing native dependency compatibility postinstall patches were applied locally after installation; no native source or dependency version changed.
These PRs are not deployed. The companion API must be deployed for series priority, Pokemon Center hiding and the new chart request. Existing migration 0048 is a prerequisite, not a new migration in this change. No real-account, collection, legacy tag, source path or VPS database change was performed. The historical curve revalues the current basket; it is not a historical-ownership ledger. Missing observations and personal-value history are not fabricated.