Skip to content

Fix macOS TV integration run foreground failure and warning noise #1063

Description

@ucguy4u

Feature Packet

Primary owner agent: Chief Release/DevOps Officer
Review agents: Chief QA Officer, Platform Architect, Chief Open Source Officer
Layer: Mixed
Parent roadmap: TV qualification automation

Critical Agent Gate

Problem: The Airo TV integration-test runs on macOS are passing functionally, but the run is noisy and partially degraded. The runner logs Failed to foreground app; open returned 1, emits repeated CocoaPods deployment-target warnings, and emits Flutter plugin warnings about missing Swift Package Manager support on macOS. This makes qualification output harder to trust and masks real failures.
User / actor: QA automation, release/dev tooling, engineers running TV qualification locally on macOS.
Framework or application layer: Mixed. The foregrounding behavior is runner/platform/tooling-facing. The warnings are build/dependency/configuration-facing.
Owning agent: Chief Release/DevOps Officer.
Reviewing agents: Chief QA Officer, Platform Architect, Chief Open Source Officer.
Impacted modules/files: app/macos/, Flutter macOS test runner configuration, macOS dependency configuration, TV integration test docs/config.
Base branch/worktree: issue only; no implementation started.
Open questions:

  • Is Failed to foreground app; open returned 1 coming from Flutter test tooling, Codex desktop environment, or repo-specific macOS runner config?
  • Which warnings are fixable in-repo versus upstream plugin noise that should be documented/ignored?
  • Should the macOS live-source TV smoke tests remain part of regular local qualification or only opt-in?
    Decision: Ready

Cross-Agent Contract

Provider agent: Chief Release/DevOps Officer
Consumer agent: Chief QA Officer / TV qualification maintainers
Interface/API: Local flutter test -d macos TV qualification workflow and its expected clean output.
Input shape: macOS local test execution of TV integration suites.
Output shape: Clean test output where actionable failures are distinguishable from environment noise; either working app foregrounding or an intentional documented non-blocking behavior.
State changes: macOS runner/build config and possibly test docs/config.
Errors: Runner launch/foreground failures, dependency target mismatch warnings, plugin packaging warnings.
Permissions: none beyond local build/test.
Privacy/redaction: no user data involved.
Persistence: repository config/docs only.
Versioning/migration: none expected.
Tests required: focused macOS TV integration reruns plus evidence capture.

Deterministic Use Cases

UC-001: Deterministic TV EPG test run on macOS

Actor: Engineer running local TV qualification on macOS.
Preconditions: macOS environment can build the app and run flutter test -d macos.
Trigger: Run flutter test -d macos integration_test/tv/test/epg_import_test.dart.
Happy path: App builds, test runs, test passes, output contains no misleading runner/packaging noise beyond known approved items.
Alternate paths: If upstream plugin/tooling warnings remain unavoidable, output is reduced to a documented accepted baseline.
Failure paths: Foreground failure, deployment-target warnings, or packaging warnings obscure real failures or indicate misconfiguration.
Data created/updated/deleted: local build artifacts only.
Privacy expectations: no external/user data.

UC-002: Opt-in live-source smoke test on macOS

Actor: Engineer validating current public IPTV/EPG source compatibility.
Preconditions: network access available; AIRO_RUN_LIVE_TV_SOURCE_TESTS=true.
Trigger: Run flutter test -d macos --dart-define=AIRO_RUN_LIVE_TV_SOURCE_TESTS=true integration_test/tv/test/iptv_org_live_sources_test.dart.
Happy path: App builds, endpoints are reachable, playlist/EPG overlap is validated, and the run output is clean enough to identify real network/source failures.
Alternate paths: Source-side failures are surfaced clearly as source failures, not runner noise.
Failure paths: Local macOS runner issues or dependency warnings make it unclear whether the source validation itself failed.
Data created/updated/deleted: temporary downloaded guide artifacts only.
Privacy expectations: public source data only.

Automation Flow

AUTO-001: Local deterministic TV EPG test

Given: the app workspace on macOS
When: flutter test -d macos integration_test/tv/test/epg_import_test.dart is executed
Then: the app should build, run the EPG import test, and exit without runner foreground failure or avoidable warning noise
Fixtures: local XMLTV fixture under app/integration_test/tv/helpers/playlist_fixtures.dart
Mocks/stubs: none beyond test-time provider overrides already in the suite
Assertions: test passes; output is clean/approved; no open returned 1 unless explicitly documented as non-actionable
Cleanup: standard Flutter build/test cleanup

AUTO-002: Local live-source smoke validation

Given: network access and current public source availability
When: flutter test -d macos --dart-define=AIRO_RUN_LIVE_TV_SOURCE_TESTS=true integration_test/tv/test/iptv_org_live_sources_test.dart is executed
Then: endpoints should be reachable and at least one playlist entry should resolve against the published guide
Fixtures: public endpoints only
Mocks/stubs: none
Assertions: source overlap is found; output remains actionable
Cleanup: temp downloaded files removed

Evidence From July 23, 2026 Run

Commands run

cd /Users/udaychauhan/workspace/airo/app
flutter test -d macos integration_test/tv/test/epg_import_test.dart
flutter test -d macos --dart-define=AIRO_RUN_LIVE_TV_SOURCE_TESTS=true integration_test/tv/test/iptv_org_live_sources_test.dart

Functional result

  • epg_import_test.dart passed.
  • iptv_org_live_sources_test.dart passed after fixing the test helper to avoid closing the HTTP client before the body stream completed.
  • Live source overlap was confirmed against the current public sources on July 23, 2026 using 4TVNews.in@SD.

Problems observed

  • Runner log: Failed to foreground app; open returned 1
  • Repeated macOS CocoaPods warnings about MACOSX_DEPLOYMENT_TARGET being set to 10.11 or 10.12 while supported versions start at 10.13
  • Flutter warning that these plugins do not support Swift Package Manager for macOS:
    • flutter_image_compress_macos
    • flutter_tts
    • media_kit_libs_macos_video
    • media_kit_native_event_loop
    • pdfx
  • Linker warning: building for macOS 11.0 while linking with XCTest.framework built for newer version 14.0

Expected Outcome

  • macOS TV qualification runs should either:
    1. foreground the built app cleanly, or
    2. document that foregrounding is intentionally not required and suppress/avoid the misleading failure log.
  • Build/test warning volume should be reduced to a known-approved baseline so test regressions are easy to spot.
  • Any remaining upstream warnings should be explicitly tracked and documented.

Implementation Boundaries

  • Framework files: Flutter/macOS test runner config if needed.
  • Application files: app/macos/ config and TV qualification test config/docs.
  • Tests: rerun the two macOS TV integration commands above.
  • Docs: qualification run notes if some warnings are accepted as upstream noise.
  • Verification environment: local macOS.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions