Skip to content

feat: add constrained live-audio adapter contract - #10

Merged
matveyb9 merged 1 commit into
mainfrom
feat/live-audio-adapter-contract
Aug 20, 2026
Merged

matveyb9 merged 1 commit into
mainfrom
feat/live-audio-adapter-contract

Conversation

@matveyb9

Copy link
Copy Markdown
Owner

Summary

This change introduces the first constrained live-audio adapter contract without enabling a physical audio route.

It adds the canonical English RFC and Russian translation, a typed Flutter LiveAudioAdapter boundary, and an UnavailableLiveAudioAdapter default. The default reports 48000 Hz, mono, signed PCM16 little-endian as the required future stream format while refusing playback and capture truthfully. No audio plugin is initialized, no permission is requested, and no platform/device route is claimed.

The workbench now accepts the contract as a dependency and shows the adapter's unavailable reason when a user selects the future live route. New tests cover the PCM format invariant, unavailable adapter behavior, live-route selection, the existing send flow, and the existing import flow.

Documentation now includes lifecycle, capability, shutdown, error and device-acceptance requirements; research sources for permission/session/focus constraints; bilingual indexes and roadmap status; public status wording; and CI checks for the added English/Russian file pairs.

Scope boundary

This is an unavailable-first scaffold only. It does not add a recording/playback plugin, microphone permission, audio session configuration, hardware route, Bluetooth route, radio interface, physical-route result, supported-device claim, encryption or automatic recovery behavior.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • dart format --output=none --set-exit-if-changed lib test
  • flutter analyze
  • flutter test
  • flutter build web --release
  • flutter build linux --debug
  • node tools/device-acceptance/validate-report.mjs tools/device-acceptance/fixtures/report-template-v1.json
  • node tools/device-acceptance/test-validator.mjs
  • git diff --check

The web build completes with the existing flutter_rust_bridge wasm dry-run warning; the bridge is intentionally unavailable on web and the warning does not fail the build.

@matveyb9
matveyb9 merged commit 8090ee3 into main Aug 20, 2026
5 checks passed
@matveyb9
matveyb9 deleted the feat/live-audio-adapter-contract branch August 20, 2026 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant