fix(save): tweede Cmd/Ctrl+S tijdens opslag niet meer stilletjes negeren (#1952) #1970

Merged
brenno merged 1 commit from fix/save-wachtrij-1952 into main 2026-09-03 14:52:31 +00:00
Owner

Samenvatting

Een tweede Cmd/Ctrl+S tijdens een lopende opslag werd stilletjes genegeerd: save() gaf meteen false terug, zonder snackbar, zonder dat het tabblad vuil bleef om die reden, en zonder dat de gebruiker zag dat de tweede poging niet was meegenomen.

Nu wordt de tweede poging onthouden in _saveQueued en opnieuw uitgevoerd nadat de eerste opslag klaar is — maar alleen als het tabblad nog vuil is (de eerste opslag kan al schoon hebben gemaakt, of de gebruiker kan ondertussen hebben getypt).

De lock zelf blijft: twee schrijfbeurten door elkaar is erger. Het zwijgen was het probleem.

Wat er verandert

  • lib/state/deck_provider.dart: _saveQueued-veld + wachtrij-logica in save() — de finally-blok hertriggert save() als _saveQueued gezet is en het tabblad nog vuil is.
  • tool/check_conventions.dart: DeckNotifier-plafond +16 (wachtrij-veld + logica + dart:async-import).

Bewaker

De wijziging raakt opslag, maar is puur defensief: geen formaatwijziging, geen nieuwe afhankelijkheid, geen uitgaand verkeer. De wachtrij voorkomt gegevensverlies (de tweede poging wordt niet meer stil weggegooid).

Test plan

  • make check groen (11000+ tests, golden suite, alle poorten)
  • make check-secrets schoon (gitleaks + trufflehog)
  • make sast schoon (semgrep, 0 bevindingen)
  • Nieuwe test: tweede save tijdens save wordt gequeued en opnieuw uitgevoerd als tabblad nog vuil is
  • Nieuwe test: tweede save wordt niet opnieuw uitgevoerd als tabblad al schoon is

Generated with Devin

## Samenvatting Een tweede Cmd/Ctrl+S tijdens een lopende opslag werd stilletjes genegeerd: `save()` gaf meteen `false` terug, zonder snackbar, zonder dat het tabblad vuil bleef *om die reden*, en zonder dat de gebruiker zag dat de tweede poging niet was meegenomen. Nu wordt de tweede poging onthouden in `_saveQueued` en opnieuw uitgevoerd nadat de eerste opslag klaar is — maar alleen als het tabblad nog vuil is (de eerste opslag kan al schoon hebben gemaakt, of de gebruiker kan ondertussen hebben getypt). De lock zelf blijft: twee schrijfbeurten door elkaar is erger. Het zwijgen was het probleem. ### Wat er verandert - `lib/state/deck_provider.dart`: `_saveQueued`-veld + wachtrij-logica in `save()` — de `finally`-blok hertriggert `save()` als `_saveQueued` gezet is en het tabblad nog vuil is. - `tool/check_conventions.dart`: `DeckNotifier`-plafond +16 (wachtrij-veld + logica + `dart:async`-import). ### Bewaker De wijziging raakt opslag, maar is puur defensief: geen formaatwijziging, geen nieuwe afhankelijkheid, geen uitgaand verkeer. De wachtrij voorkomt gegevensverlies (de tweede poging wordt niet meer stil weggegooid). #### Test plan - [x] `make check` groen (11000+ tests, golden suite, alle poorten) - [x] `make check-secrets` schoon (gitleaks + trufflehog) - [x] `make sast` schoon (semgrep, 0 bevindingen) - [x] Nieuwe test: tweede save tijdens save wordt gequeued en opnieuw uitgevoerd als tabblad nog vuil is - [x] Nieuwe test: tweede save wordt niet opnieuw uitgevoerd als tabblad al schoon is Generated with [Devin](https://devin.ai)
fix(save): tweede Cmd/Ctrl+S tijdens opslag niet meer stilletjes negeren (#1952)
All checks were successful
scans / scans (pull_request) Successful in 2m17s
static-gate / static-gate (pull_request) Successful in 5m39s
13f9abb77b
Een tweede Cmd/Ctrl+S tijdens een lopende opslag werd genegeerd: save()
gaf meteen false terug, zonder dat de gebruiker zag dat de tweede poging
niet was meegenomen. Nu wordt de tweede poging onthouden in _saveQueued
en opnieuw uitgevoerd nadat de eerste opslag klaar is — maar alleen als
het tabblad nog vuil is (de eerste opslag kan al schoon hebben gemaakt,
of de gebruiker kan ondertussen hebben getypt).

De lock zelf blijft: twee schrijfbeurten door elkaar is erger. Het
zwijgen was het probleem.

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit ca947a51ec into main 2026-09-03 14:52:31 +00:00
Sign in to join this conversation.
No description provided.