Deferred dependency upgrades β
Tracked 2026-07-24 after the dependency-drift critique. Each entry is a held major with a documented blocker (also noted inline in pubspec.yaml). Pick these up one at a time, with the verification steps listed β never batch them into an unrelated PR.
UPGRADE-1 β very_good_analysis 7 β 10 (lint ruleset) β
- Blocker: v10 adds ~750 new lint infos across the codebase. Not errors, but they bury real signal in
flutter analyzeoutput. - Plan: bump in a dedicated PR; run
dart fix --applyfirst (auto-fixes most), then hand-triage the remainder. Budget half a day. - Verify:
flutter analyze --no-fatal-infosshows β€ current info count; full test suite green.
UPGRADE-2 β share_plus 10 β 13 (Android share sheet) β
- Blocker: 12 fails on Kotlin 2.2.20 (
Share.ktKClass<T>.javareceiver mismatch); 13 needswin32 ^6which conflicts with file_picker 11'swin32 ^5.9. - Plan: upgrade together with file_picker 12 (stable release needed); re-check the Kotlin mismatch against the then-current Android toolchain.
- Verify: Android release APK builds in CI; share sheet opens on-device (property share-card flow).
UPGRADE-3 β record 5 β 7 (voice notes) β
- Blocker: record 7's record_android 2.1.1 fails to compile (
AacFormat.ktunresolvedAdtsContainer). Also lets us drop therecord_linuxdependency_override. - Plan: bump record + remove the override in one PR.
- Verify: Android release build; record + play back a voice note on-device (
/voice-notes).
UPGRADE-4 β patrol 3 β 4 (device E2E harness) β DONE 2026-08-04 β
- Why now: every
patrol_cli3.x pinspatrol_log ^0.5.0, whose reader crashes on_singleEntries.lastwhen a test finishes without a start entry β what an app crash produces. That killed the CLI mid-run and corrupted the.xcresult, destroying the evidence for the iOS app crashes. 3.11.0 is the last 3.x, so the fix was only reachable through 4.x. - Turned out smaller than feared: the native contracts did not have to move.
ios/RunnerUITests/RunnerUITests.mandMainActivityTest.javaalready match Patrol 4's templates verbatim,NativeAutomator/NativeAutomatorConfigare deprecated rather than removed, andtest_bundle.dartis gitignored and regenerated by the CLI on every run. The one breaking change was the default test directory (integration_testβpatrol_test), pinned back viapatrol: test_directory:inpubspec.yaml. - Left open: ~58
deprecated_member_useinfos fornativeAutomatorConfig/$.native. CI runsflutter analyze --no-fatal-infos, so they don't gate; thePlatformAutomatorport is a follow-up.
UPGRADE-5 β permission_handler 11 β 12 β DONE 2026-08-20 β
- Resolved: bumped to
12.0.3(permission_handler_android 13.0.1). - Verified:
Permission.contacts.request()andstatus.isGrantedAPI signatures unchanged; static analysis 0 errors/0 warnings.
UPGRADE-6 β latlong2 0.9 β 0.10 & maplibre_gl 0.26 β 0.27 β DONE 2026-08-20 β
- Resolved:
latlong2bumped to0.10.1andmaplibre_glbumped to0.27.0in tandem. - Verified: all map utils and heatmap calculations pass without breaking changes.
UPGRADE-7 β Flutter SDK 3.44.0 β 3.47.1 β DONE 2026-08-25 β
- Resolved: Bumped Flutter pin in
.fvmrcto3.47.1, updatedcodemagic.yaml8 workflows to3.47.1, synchronizedAGENTS.md,README.md, and hooks. - Fixed: Resolved 2 closure nullability errors in
journey_12_core_operations_test.dartand 3unawaited_return_in_try_blockwarnings in repository services. - Verified:
fvm flutter analyze --no-fatal-infosβ 0 errors, 0 warnings (exit code 0).fvm flutter test test/overflowβ 596 test cases passed, 0 horizontal overflows across all screens and sheets.
Non-issues confirmed 2026-08-20 β
intl 0.20.2 β 0.20.3: blocked byflutter_localizationspin β correct to hold; moves with the Flutter SDK.sentry_flutter 9.x: 10.x is an alpha; stay on 9.x stable, bump minors (9.25 β 9.27) freely.flutter_riverpod 3.1 β 3.3: resolvable only at 3.1.0 due to riverpod_lint 3.1.0 pin β bump riverpod_lint first, then riverpod.chewie 1.13 β 1.15: chewie >=1.15 requires wakelock_plus ^1.7 (win32 ^6.0.1) which conflicts with file_picker 11 (win32 ^5.9.0). Upgrade when file_picker 12 is adopted.archive 4.0 β 4.1: packagepdf3.13.x constrains archive to<4.1.0. Holds untilpdfpackage is updated upstream.
