Skip to content

feat(ios): add background listening core toggle#18261

Merged
mbelinky merged 3 commits intomainfrom
slice/ios-background-listening-core-v2
Feb 16, 2026
Merged

feat(ios): add background listening core toggle#18261
mbelinky merged 3 commits intomainfrom
slice/ios-background-listening-core-v2

Conversation

@mbelinky
Copy link
Contributor

@mbelinky mbelinky commented Feb 16, 2026

Intent

Ship Slice 2 only: background listening core for iOS Talk Mode, with minimal lifecycle changes and no broader audio pipeline refactor.

Changes

  • add Background Listening toggle in Settings > Device > Features (talk.background.enabled)
  • on app background, keep Talk Mode active when the toggle is enabled and Talk Mode is on
  • on foreground return, skip unnecessary Talk restart when Talk was intentionally kept active
  • add changelog entry with attribution

Scope Guardrails

  • no voip entitlement changes in this slice
  • no route-change handling rewrite
  • no chime/push-speech queue additions
  • no chat.push behavior changes

Attribution

Validation

  • pnpm check

Notes

  • This is the conservative core-only behavior slice. Hardening follow-ups (route handling, speaker bleed policy, etc.) will land in Slice 3.

Greptile Summary

Added a conservative Background Listening toggle for iOS Talk Mode that allows the microphone to remain active when the app is backgrounded. The implementation correctly checks both the user preference (talk.background.enabled) and the current Talk Mode state before keeping listening active. State is properly tracked through the background/foreground cycle with the new backgroundTalkKeptActive flag, ensuring Talk Mode doesn't unnecessarily restart when it was intentionally kept running. The feature is off by default for battery conservation and has appropriate UI messaging about battery usage.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk - conservative implementation with proper state management
  • The implementation is clean, focused, and follows the stated scope guardrails. The logic correctly gates background listening on both user preference AND Talk Mode being enabled. State management through background/foreground transitions is sound with proper flag tracking. The app already has UIBackgroundModes audio entitlement, so no capability changes needed. Default-off provides safety, and the changelog properly documents the change.
  • No files require special attention

Last reviewed commit: d7cf7b8

@openclaw-barnacle openclaw-barnacle bot added app: ios App: ios size: XS maintainer Maintainer-authored PR labels Feb 16, 2026
@github-actions
Copy link

⚠️ Formal models conformance drift detected

The formal models extracted constants (generated/*) do not match this openclaw PR.

This check is informational (not blocking merges yet).
See the formal-models-conformance-drift artifact for the diff.

If this change is intentional, follow up by updating the formal models repo or regenerating the extracted artifacts there.

@github-actions
Copy link

⚠️ Formal models conformance drift detected

The formal models extracted constants (generated/*) do not match this openclaw PR.

This check is informational (not blocking merges yet).
See the formal-models-conformance-drift artifact for the diff.

If this change is intentional, follow up by updating the formal models repo or regenerating the extracted artifacts there.

@mbelinky mbelinky merged commit b3859b4 into main Feb 16, 2026
3 checks passed
@mbelinky mbelinky deleted the slice/ios-background-listening-core-v2 branch February 16, 2026 17:36
@github-actions
Copy link

⚠️ Formal models conformance drift detected

The formal models extracted constants (generated/*) do not match this openclaw PR.

This check is informational (not blocking merges yet).
See the formal-models-conformance-drift artifact for the diff.

If this change is intentional, follow up by updating the formal models repo or regenerating the extracted artifacts there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: ios App: ios maintainer Maintainer-authored PR size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments