perf(editor): draai de debounced broninspectie op een achtergrond-isolate (#2713) #2737

Merged
brenno merged 1 commit from perf/validatie-bundel into main 2026-11-02 22:41:28 +00:00
Owner

Summary

Vervolg op #2713. De 350 ms-debounce vertraagde de validatiebundel maar blokkeerde alsnog ~42 ms van de UI-thread bij elke typ-pauze op een groot deck (validator ~14 ms, schrijftips ~24 ms na de vorige fix, Marp-compat ~4 ms).

  • Nieuwe deck_source_checks.dart: de drie pure scans achter één Isolate.run-runner met injecteerbare deckChecksRunner; scheduleDeckChecks gooit verlopen rondes weg (bron onderweg gewijzigd of widget weg).
  • _scheduleValidation dispatchet nu via die scheduler — de UI-thread ziet alleen nog het debounce-timerwerk.
  • Tests draaien de bundel synchroon (isolate-resultaten vallen niet binnen pump()-tijden).

Test plan

  • flutter test test/markdown_deck_editor_test.dart groen (incl. de #2681-debouncetest)
  • flutter analyze + dart format: schoon
  • docs/SOURCE_MAP.md bijgewerkt voor het nieuwe servicebestand
## Summary Vervolg op #2713. De 350 ms-debounce vertraagde de validatiebundel maar blokkeerde alsnog ~42 ms van de UI-thread bij elke typ-pauze op een groot deck (validator ~14 ms, schrijftips ~24 ms na de vorige fix, Marp-compat ~4 ms). - Nieuwe `deck_source_checks.dart`: de drie pure scans achter één `Isolate.run`-runner met injecteerbare `deckChecksRunner`; `scheduleDeckChecks` gooit verlopen rondes weg (bron onderweg gewijzigd of widget weg). - `_scheduleValidation` dispatchet nu via die scheduler — de UI-thread ziet alleen nog het debounce-timerwerk. - Tests draaien de bundel synchroon (isolate-resultaten vallen niet binnen pump()-tijden). ## Test plan - [x] `flutter test test/markdown_deck_editor_test.dart` groen (incl. de #2681-debouncetest) - [x] `flutter analyze` + `dart format`: schoon - [x] `docs/SOURCE_MAP.md` bijgewerkt voor het nieuwe servicebestand
De 350 ms-debounce vertraagde de bundel maar blokkeerde alsnog ~42 ms
van de UI-thread bij elke typ-pauze op een groot deck (validator ~14 ms,
schrijftips ~24 ms, Marp-compat ~4 ms). De drie pure scans staan nu
achter één Isolate.run-runner; een verlopen ronde wordt bij afgifte
weggegooid. Tests lopen de bundel synchroon.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit 6bc9577352 into main 2026-11-02 22:41:28 +00:00
Sign in to join this conversation.
No description provided.