Admin queue table gains clickable sort on Markt, Stadt, Datum, Quellen (count), and Konfidenz. Default on page load is konfidenz desc with start_datum ASC NULLS LAST as the within-tier tiebreaker — operators see highest-confidence, soonest-upcoming markets first. URL state (?sort=&order=) is the single source of truth; F5 preserves, localStorage is not used. Backend: ListQueue takes (sortBy, order); repository builds ORDER BY from a closed whitelist — konfidenz uses a CASE rank (hoch=3, mittel=2, niedrig=1), quellen_count uses cardinality(quellen). Handler normalisers reject anything off the whitelist and echo the effective values in meta.sort / meta.order so the UI can render arrows. Unit tests lock the emitted SQL per combination and assert raw input cannot leak into ORDER BY.
Marktvogt Web
SvelteKit + Tailwind 4