- find_orphan_images(): scannt Workspace nach Bildern ohne article_images.json-Eintrag - Gelbe Orphan-Box oben auf der Seite: alle verwaisten Bilder mit Artikel-Dropdown - assignOrphan() JS: Dropdown-Auswahl → fetch /assign-image → Toast + Reload - _handle_assign_image(): Backend validiert Bildpfad + Artikel + speichert Mapping - Test-JPEGs aus media/ bereinigt, article_images.json sauber initialisiert