Skip to content
This repository was archived by the owner on Jul 7, 2026. It is now read-only.
This repository was archived by the owner on Jul 7, 2026. It is now read-only.

Add regression coverage for background playback and silent switch behavior #113

Description

@zachyzissou

Problem

Background playback and silent/ringer behavior were recently reported broken, then fixed. This needs durable regression coverage so it does not slip again.

Acceptance criteria

  • Document required audio session category/options and background modes.
  • Add unit or integration coverage for the playback audio session configuration.
  • Add a manual TestFlight smoke checklist for lock screen, app backgrounding, silent switch, route changes, and interruptions.
  • Verify Now Playing metadata and remote controls still work after background/lock transitions.

Agent execution contract

Readiness: agent:senior-required
Lane: Audio regression

Start in these files:

  • OffScript/PlaybackController.swift
  • OffScript/NowPlayingPublisher.swift
  • OffScriptTests/OffScriptTests.swift
  • docs/*

Required verification:

  • xcodebuild test -project OffScript.xcodeproj -scheme OffScript -destination 'platform=iOS Simulator,OS=latest,name=iPhone 17 Pro' -only-testing:OffScriptTests CODE_SIGNING_ALLOWED=NO
  • Real-device/TestFlight lock screen, silent switch, route-change checklist.

Non-goals / guardrails:

  • Do not claim background audio fixed without real-device/TestFlight smoke.

PR expectation: Audio regression PR with unit config proof plus manual checklist.

Low-thinking agents must follow docs/AGENT_EXECUTION_RUNBOOK.md. If the touched code falls outside the files above, stop and tighten the issue or ask for senior review before continuing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent:senior-requiredRequires senior judgment, owner action, real-device validation, or release/signing authorityarea:appleApple platform integrations and entitlementsenhancementNew feature or requestpriority:mediumImportant but not release-blocking

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions