Repository navigation
Revert "perf(android): exponential BLE reconnect backoff for out-of-range retry loops (#21404)" - #21484
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 04e08fc8f2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -0,0 +1,3 @@ | |||
| { | |||
| "change": "Reverts an Android battery optimization before release: reconnect retries keep the proven steady cadence after your Omi leaves and returns to range" | |||
There was a problem hiding this comment.
Restrict the revert note to Android
When the daily train collects this untagged fragment, validate_entry converts it into a note for both stores; generating the iOS notes then rejects the word “Android” in cross_platform_guard, blocking the iOS release promotion. Preserve the deleted fragment's "platforms": ["android"] restriction so this Android-only change never enters the iOS notes.
Useful? React with 👍 / 👎.
Summary
Reverts merge b7e38cf (#21404, "exponential BLE reconnect backoff for out-of-range retry loops") ahead of the 1.0.559 train, per the review-debt ruling of 2026-10-14.
Why revert rather than fix forward: #21475 (the fix-forward for #21404's four unanswered P1s) resolved the three verifiable findings, but a focused second-model arbitration of the remaining design disagreement (invalidate retention proof per new GATT connection vs. per attempt) ruled the conservative design audio-loss-critical, not battery-efficiency-only: with a stale proof surviving failed attempts, a device that rebooted into broken storage and then returns to range mid-gap is reached later (6-60s schedule instead of 3s), extending the connected-but-unsubscribed window over audio the broken device is discarding — exactly the class INV-CAP-1's own history rejected ("a trade that silently deletes user recordings is not acceptable at any battery saving"). The conservative design eliminates the escalation feature entirely, so the honest disposition is revert; the fixes and the gate design (per-link proof, RTC-validity gate, subscribe-before-probe) are preserved in #21475 for a re-land only after the escalation gate gets a retention guarantee that covers the disconnected interval.
Product invariants
Failure class
Failure-Class: none
Test plan
git revert -m 1 b7e38cf0e905— clean (it reverses the original merge wholesale, including its tests and changelog fragment)