feat: add bounded file WAV workflow - #11
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.
Summary
This implementation slice follows the new test-gated execution plan and adds the first bounded local file-object WAV workflow. It does not add a physical audio route.
Rust now exposes an ADLP
Fileconstructor with required file-name and MIME metadata, a deterministic binary-payload round-trip test, a committed golden WAV fixture, and reproducibleadlp-cli encode-file/encode-acoustic1-filecommands. The thin Flutter Rust facade accepts or decodes files with an initial 8 KiB payload limit, while preserving Rust as the sole authority for ADLP framing, CRC-32C and WAV codec behavior.The Flutter workbench now has explicit transfer-task states, a text/file object selector, local payload selection, verified text/file receipts, and local save for only Rust-verified received file bytes. The normal widget suite remains portable through fakes. An opt-in Linux smoke test loads the freshly built native shared library and exercises the real generated Flutter-to-Rust file bridge.
The documentation adds a bilingual implementation plan, CLI file walkthrough, bridge contract, native smoke command, roadmap/status updates and the corresponding English/Russian pair check.
Scope boundary
This is an experimental local WAV reference workflow. It does not provide microphone capture, speaker playback, cables, Bluetooth, radio, background transfer, persistence/history, a file-size policy beyond the bridge's initial 8 KiB limit, authentication, encryption, device support or a live-audio claim.
Validation
The following completed successfully:
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspaceflutter analyzeflutter test— 10 passing tests and 2 deliberately skipped opt-in native-runtime testsflutter build web --releaseflutter build linux --debugAUDIOMODEM_RUN_NATIVE_BRIDGE_SMOKE=1 LD_LIBRARY_PATH="$PWD/build/linux/x64/debug/bundle/lib" flutter test test/native_bridge_smoke_test.dartgit diff --checkThe web build completes with the existing
flutter_rust_bridgewasm dry-run warning. The native bridge remains intentionally unavailable in the web build.