Add the shared Dart CLI and Flutter desktop client - #1
Merged
Merged
Conversation
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.
The shared Dart engine now powers a standalone CLI and Flutter desktop application, replacing the Rust/GPUI implementation in the parent workspace. Both interfaces use the same generated public API client, profiles, async SQLite journal, download queues, and embedded YouTube.js integration.
Validation: Dart formatting/analysis, CLI distribution builds, isolated cold CLI build, macOS release build, desktop E2E, and interactive Moon launch/reload/quit. Desktop automation now uses Flutter's headless test runtime; native menu focus and OS sleep behavior are outside that substitute boundary. The parent reran 60 CLI/client integrated tests successfully with upstream FJS and a locally built patched FFmpeg library; the slowest scenario was 4.81 seconds. Regression cases for structuredClone, option parsing, and malformed artwork were proved red before their fixes.
This remains a draft pending the five-platform patched FFmpeg release. A bounded audit of the failed publisher identified duplicate static archive symbols and Windows pkg-config path handling. The corrected recipes use archive groups on Linux/Windows, normalize Windows library paths, and fix the CMake path separator. An emulated Linux x64 source build and packaged-library FFI smoke check passed AAC remuxing, clean stdout, and host SIGINT ownership. Windows native execution remains unverified. The corrected publisher was dispatched once at https://github.com/listenbox/client2/actions/runs/36526411616; its status has not been inspected. Current hook pins still use the original four-platform FFmpeg archives; Windows ARM64 and the signal/stdout fixes require verified new pins and the matching thin macOS archive hook update. The 60-test result used an explicit temporary local library substitution and does not validate those pending default pins.
Generated API source: responsibleapi/oasmith#17.