Conversation
Align the SDK, dependency locks, native projects and CI. Load the binary asset manifest before startup and declare macOS file-picker access. Keep VM lifecycle and personal ARM features outside this change. BREAKING CHANGE: macOS builds require macOS 12.0 or newer; source builds use Flutter 3.47.2 and Dart 3.13.
kimdongup
marked this pull request as ready for review
September 11, 2026 09:08
There was a problem hiding this comment.
All reported issues were addressed across 40 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Align the desktop project and dependency locks with Flutter 3.47.2 / Dart 3.13 so the configured SDK, native plugins and build jobs use a compatible toolchain. Read OS icons through Flutter's binary
AssetManifestAPI and finish loading them before starting the UI. The new packaged-asset regression test fails against the old JSON manifest loader and passes with this change.Update the file picker call sites and declare user-selected read/write access in both macOS entitlement files. The resolved Darwin file picker checks these entitlements before opening a dialog. The existing screen layout is retained.
The Nix build uses a separate pinned Flutter input while retaining the existing Quickemu runtime input. Packaging commands use fastforge 0.6.12. CI adds formatting, analysis, tests and a macOS build, covers all pull requests to main, and keeps PPA/FlakeHub publishing restricted to the upstream repository.
Compatibility change: this raises the macOS deployment target from 10.14 to 12.0 and requires Flutter 3.47.2 / Dart 3.13 for source builds.
Related work: #303 covers the asset-manifest/startup problem; this patch uses Flutter's binary manifest API. #322 updates the packaging dependency that this patch replaces with fastforge. #317 also changes flake.lock and should be reconciled before merging. This PR does not close those broader proposals automatically.
Type of change
Validation
Submitted head:
448e7e4922ec804578908f41ef07778deacf4dd2; base:74949e086154f3f2d555f9268778545c78ff2b51.flutter pub get --enforce-lockfile: passed, committed lockfile unchanged.dart format --output=none --set-exit-if-changed lib test: passed, 32 files unchanged.flutter analyze --no-pub: passed, no issues.flutter test --no-pub --reporter expanded: passed, 2 tests. The new asset test fails with the old loader (AssetManifest.jsonis absent from the generated bundle).action_requiredpending workflow approval.The existing window_size Swift Package Manager warning remains; the macOS build uses the CocoaPods fallback and exits 0.
This PR covers the build/startup compatibility foundation. Full installed-guest GUI acceptance and release-format packaging/publishing have not been validated on this branch. The macOS bundle is ad-hoc signed, not notarized. Further VM lifecycle and workspace fixes will follow as separate changes.
Checklist