chore(deps): migreer file_picker 11→12, win32 5→6, wakelock_plus 1.7, flutter_secure_storage 11 (#1744) #1747

Merged
brenno merged 1 commit from chore/file-picker-12-win32-bumps-1744 into main 2026-08-23 11:03:07 +00:00
Owner

Summary

file_picker 12's federated architecture bracht drie breaking changes: FilePickerResult verdween, PlatformFile.bytes/.size verdwenen, en saveFile() schrijft bytes nu zelf (non-atomisch). Deze PR migreert alle 13 call sites en behoudt de atomic-write garantie.

pickFiles → pickFile (12 single-file call sites)

  • pickFile() retourneert PlatformFile? direct (null bij cancel) — geen FilePickerResult?.files.single meer
  • file.bytesawait file.readAsBytes()
  • file.sizeawait file.length()
  • result?.files.single.pathfile?.path

Bestanden: seal_timestamp_dialog.dart, file_service_style_profile.dart, image_service.dart (4 call sites), settings_dialog_style_builder.dart, chart_editor.dart, settings_dialog.dart, openkat_server_report_dialog.dart, file_service_import.dart (2 call sites).

pickFiles (multi-file, 1 call site)

presentation_import_action.dart: pickFiles() retourneert nu List<PlatformFile> (non-nullable, leeg bij cancel). allowMultiple default is true — weggelaten.

saveFile → getSaveLocation (3 desktop call sites)

file_picker 12's saveFile() vereist bytes en schrijft non-atomisch (file.writeAsBytes). De codebase gebruikt writeBytesAtomic (schrijf naar temp, rename) als veiligheidsgarantie tegen half-geschreven bestanden bij crashes.

Oplossing: file_selector's getSaveLocation() geeft alleen een pad — waarna writeBytesAtomic de bytes atomisch schrijft. De garantie blijft.

  • _systemSaveDestination en pickDocumentExportDestination: FilePicker.saveFile()getSaveLocation() + location?.path
  • seal_timestamp_dialog._exportTsq: web behoudt FilePicker.saveFile(bytes: ...), desktop gebruikt getSaveLocation() + writeBytesAtomic
  • SaveDestinationPicker typedef ongewijzigd: callers hoeven niet mee te veranderen
  • Web-only saveFile(bytes: ...) calls ongewijzigd (browser-download is inherent atomisch)

Nieuwe direct dependency

file_selector ^1.1.0 — was al transitief aanwezig via file_selector_platform_interface en file_selector_windows. Toegevoegd aan THIRD_PARTY_NOTICES.md.

Ontgrendelde bumps

Package Van Naar
file_picker 11.0.3 12.0.0
win32 (transitief) 5.15.0 6.4.0
wakelock_plus 1.5.2 1.7.0
flutter_secure_storage 10.3.1 11.0.0

Test plan

  • make check groen (10496 tests, 87.3% coverage)
  • make check-secrets schoon (gitleaks + trufflehog, 0 leaks)
  • make sast schoon (semgrep, 0 findings)
  • flutter analyze --fatal-infos schoon
  • third_party_notices_test groen (file_selector in notices)
  • static-gate groen op PR

Generated with Devin

## Summary file_picker 12's federated architecture bracht drie breaking changes: `FilePickerResult` verdween, `PlatformFile.bytes`/`.size` verdwenen, en `saveFile()` schrijft bytes nu zelf (non-atomisch). Deze PR migreert alle 13 call sites en behoudt de atomic-write garantie. ### pickFiles → pickFile (12 single-file call sites) - `pickFile()` retourneert `PlatformFile?` direct (null bij cancel) — geen `FilePickerResult?.files.single` meer - `file.bytes` → `await file.readAsBytes()` - `file.size` → `await file.length()` - `result?.files.single.path` → `file?.path` Bestanden: `seal_timestamp_dialog.dart`, `file_service_style_profile.dart`, `image_service.dart` (4 call sites), `settings_dialog_style_builder.dart`, `chart_editor.dart`, `settings_dialog.dart`, `openkat_server_report_dialog.dart`, `file_service_import.dart` (2 call sites). ### pickFiles (multi-file, 1 call site) `presentation_import_action.dart`: `pickFiles()` retourneert nu `List<PlatformFile>` (non-nullable, leeg bij cancel). `allowMultiple` default is `true` — weggelaten. ### saveFile → getSaveLocation (3 desktop call sites) file_picker 12's `saveFile()` vereist `bytes` en schrijft non-atomisch (`file.writeAsBytes`). De codebase gebruikt `writeBytesAtomic` (schrijf naar temp, rename) als veiligheidsgarantie tegen half-geschreven bestanden bij crashes. Oplossing: `file_selector`'s `getSaveLocation()` geeft alleen een pad — waarna `writeBytesAtomic` de bytes atomisch schrijft. De garantie blijft. - `_systemSaveDestination` en `pickDocumentExportDestination`: `FilePicker.saveFile()` → `getSaveLocation()` + `location?.path` - `seal_timestamp_dialog._exportTsq`: web behoudt `FilePicker.saveFile(bytes: ...)`, desktop gebruikt `getSaveLocation()` + `writeBytesAtomic` - `SaveDestinationPicker` typedef ongewijzigd: callers hoeven niet mee te veranderen - Web-only `saveFile(bytes: ...)` calls ongewijzigd (browser-download is inherent atomisch) ### Nieuwe direct dependency `file_selector ^1.1.0` — was al transitief aanwezig via `file_selector_platform_interface` en `file_selector_windows`. Toegevoegd aan `THIRD_PARTY_NOTICES.md`. ### Ontgrendelde bumps | Package | Van | Naar | |---|---|---| | file_picker | 11.0.3 | 12.0.0 | | win32 (transitief) | 5.15.0 | 6.4.0 | | wakelock_plus | 1.5.2 | 1.7.0 | | flutter_secure_storage | 10.3.1 | 11.0.0 | #### Test plan - [x] `make check` groen (10496 tests, 87.3% coverage) - [x] `make check-secrets` schoon (gitleaks + trufflehog, 0 leaks) - [x] `make sast` schoon (semgrep, 0 findings) - [x] `flutter analyze --fatal-infos` schoon - [x] `third_party_notices_test` groen (file_selector in notices) - [ ] `static-gate` groen op PR Generated with [Devin](https://devin.ai)
chore(deps): migreer file_picker 11→12, win32 5→6, wakelock_plus 1.7, flutter_secure_storage 11 (#1744)
All checks were successful
scans / scans (pull_request) Successful in 4m41s
static-gate / static-gate (pull_request) Successful in 52m48s
42b0fe6731
file_picker 12's federated architecture lost FilePickerResult en
PlatformFile.bytes/size, en saveFile() schrijft bytes nu zelf
(niet-atomisch). Deze PR migreert alle 13 pickFiles-call sites en
behoudt de atomic-write garantie.

pickFiles → pickFile (12 single-file call sites):
- pickFile() retourneert PlatformFile? direct (null bij cancel)
- file.bytes → await file.readAsBytes()
- file.size → await file.length()
- result?.files.single.path → file?.path

pickFiles (multi-file, 1 call site):
- Retourneert List<PlatformFile> (non-nullable, leeg bij cancel)
- allowMultiple default true, deprecated — weggelaten

saveFile → getSaveLocation (3 desktop call sites):
- file_picker 12's saveFile() vereist bytes en schrijft non-atomisch
- file_selector's getSaveLocation() geeft alleen een pad, waarna
  writeBytesAtomic de bytes atomisch schrijft — de garantie blijft
- Web behoudt FilePicker.saveFile(bytes: ...) (browser-download
  is inherent atomisch)
- SaveDestinationPicker typedef ongewijzigd: callers hoeven niet mee

Nieuwe direct dependency: file_selector ^1.1.0 (was al transitief
aanwezig via file_selector_platform_interface en file_selector_windows).

Ontgrendelt:
- file_picker 11.0.3 → 12.0.0
- win32 5.15.0 → 6.4.0 (transitief)
- wakelock_plus 1.5.2 → 1.7.0
- flutter_secure_storage 10.3.1 → 11.0.0

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit f7143c6235 into main 2026-08-23 11:03:07 +00:00
Sign in to join this conversation.
No description provided.