perf(media): begrens en batch de recursieve scan van de afbeeldingenbibliotheek #1049

Closed
opened 2026-08-01 08:26:08 +00:00 by brenno · 1 comment
Owner

Context
De afbeeldingskiezer loopt searchPaths onbeperkt recursief af, bewaart alle paden, doet per bestand een synchrone stat op de UI-isolate en sorteert alles. Een vergelijkbare referentiescan heeft al grenzen van 20000 bestanden en diepte 32.

Impact
Een grote of gemounte bibliotheek met honderdduizenden beelden kan de interface lang blokkeren en miljoenen sorteervergelijkingen veroorzaken. Er is geen annulering of zichtbare begrenzing.

Relevante code

  • lib/widgets/dialogs/parts/image_carousel_picker_actions.dart:8
  • lib/services/image_reference_service.dart:12

Acceptatie

  • Deel of hergebruik een expliciete bestands- en dieptegrens.
  • Stat en sorteer in asynchrone batches zonder lange UI-isolate-blokkade.
  • Scan is annuleerbaar en meldt dat resultaten zijn afgekapt.
  • Test bewijst grens, diepte, overlapping van zoekpaden en annulering.
Context De afbeeldingskiezer loopt searchPaths onbeperkt recursief af, bewaart alle paden, doet per bestand een synchrone stat op de UI-isolate en sorteert alles. Een vergelijkbare referentiescan heeft al grenzen van 20000 bestanden en diepte 32. Impact Een grote of gemounte bibliotheek met honderdduizenden beelden kan de interface lang blokkeren en miljoenen sorteervergelijkingen veroorzaken. Er is geen annulering of zichtbare begrenzing. Relevante code - lib/widgets/dialogs/parts/image_carousel_picker_actions.dart:8 - lib/services/image_reference_service.dart:12 Acceptatie - Deel of hergebruik een expliciete bestands- en dieptegrens. - Stat en sorteer in asynchrone batches zonder lange UI-isolate-blokkade. - Scan is annuleerbaar en meldt dat resultaten zijn afgekapt. - Test bewijst grens, diepte, overlapping van zoekpaden en annulering.
Author
Owner

Opgelost op main (PR #1092, merge in 31ca921b). De bibliotheekscan zit nu in een aparte, testbare ImageLibraryScanner met dezelfde bestands- en dieptegrens als de deck-scan (gedeeld via library_scan_limits: 20000 bestanden, diepte 32), stat en sorteert in async batches, is annuleerbaar en meldt afkapping of een onleesbare map. Test dekt grens, diepte, overlap en annulering.

Opgelost op main (PR #1092, merge in 31ca921b). De bibliotheekscan zit nu in een aparte, testbare ImageLibraryScanner met dezelfde bestands- en dieptegrens als de deck-scan (gedeeld via library_scan_limits: 20000 bestanden, diepte 32), stat en sorteert in async batches, is annuleerbaar en meldt afkapping of een onleesbare map. Test dekt grens, diepte, overlap en annulering.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1049
No description provided.