fix(save): web-opslaan pas schoon markeren na bevestigde download (#1954) #1973

Merged
brenno merged 1 commit from fix/web-opslaan-download-1954 into main 2026-09-03 16:05:38 +00:00
Owner

Samenvatting

Een deck met mem:-afbeeldingen reist niet mee in een kale .md-download. Na zo'n download werd het tabblad toch schoon gemarkeerd — de gebruiker denkt opgeslagen te hebben, sluit de tab, en is het beeld kwijt.

Nu houdt _saveAsDownload het tabblad vuil als het deck mem:-assets draagt. De waarschuwing komt bij de volgende save opnieuw, en de afsluitlus vraagt opnieuw. De asset-sweep wordt ook overgeslagen: die mem:-bytes zijn nu juist nog nodig.

Wat er verandert

  • lib/state/deck_provider.dart: _saveAsDownload gebruikt deckCarriesMemoryAssets(deck) om te bepalen of isDirty op false mag. Bij mem:-assets blijft het tabblad vuil.
  • test/file_service_coverage_test.dart: nieuwe test die downloadDeckAsFile + deckCarriesMemoryAssets combineert.

Bewaker

Geen formaatwijziging, geen nieuwe afhankelijkheid. De webversie heeft bewust geen crashherstel — des te meer mag "schoon" niet liegen.

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: downloadDeckAsFile met mem:-assets slaagt, maar het deck blijft vluchtig

Generated with Devin

## Samenvatting Een deck met `mem:`-afbeeldingen reist niet mee in een kale `.md`-download. Na zo'n download werd het tabblad toch schoon gemarkeerd — de gebruiker denkt opgeslagen te hebben, sluit de tab, en is het beeld kwijt. Nu houdt `_saveAsDownload` het tabblad vuil als het deck `mem:`-assets draagt. De waarschuwing komt bij de volgende save opnieuw, en de afsluitlus vraagt opnieuw. De asset-sweep wordt ook overgeslagen: die `mem:`-bytes zijn nu juist nog nodig. ### Wat er verandert - `lib/state/deck_provider.dart`: `_saveAsDownload` gebruikt `deckCarriesMemoryAssets(deck)` om te bepalen of `isDirty` op `false` mag. Bij `mem:`-assets blijft het tabblad vuil. - `test/file_service_coverage_test.dart`: nieuwe test die `downloadDeckAsFile` + `deckCarriesMemoryAssets` combineert. ### Bewaker Geen formaatwijziging, geen nieuwe afhankelijkheid. De webversie heeft bewust geen crashherstel — des te meer mag "schoon" niet liegen. #### 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: downloadDeckAsFile met mem:-assets slaagt, maar het deck blijft vluchtig Generated with [Devin](https://devin.ai)
fix(save): web-opslaan pas schoon markeren na bevestigde download (#1954)
All checks were successful
scans / scans (pull_request) Successful in 2m9s
static-gate / static-gate (pull_request) Successful in 5m21s
43b4ab6716
Een deck met mem:-afbeeldingen reist niet mee in een kale .md-download.
Na zo'n download werd het tabblad toch schoon gemarkeerd — de gebruiker
denkt opgeslagen te hebben, sluit de tab, en is het beeld kwijt.

Nu houdt _saveAsDownload het tabblad vuil als het deck mem:-assets
draagt. De waarschuwing komt bij de volgende save opnieuw, en de
afsluitlus vraagt opnieuw. De asset-sweep wordt ook overgeslagen:
die mem:-bytes zijn nu juist nog nodig.

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

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