Skip to content

Fix manual sync refresh and overlapping sync taps - #594

Draft
namahsea wants to merge 1 commit into
OpenStrap:mainfrom
namahsea:validation/manual-sync-refresh
Draft

namahsea wants to merge 1 commit into
OpenStrap:mainfrom
namahsea:validation/manual-sync-refresh

Conversation

@namahsea

@namahsea namahsea commented Oct 13, 2026 •

Copy link
Copy Markdown

Summary

This PR fixes manual sync behavior so tapping Sync now refreshes enabled phone steps, queues recalculation after steps are saved, and avoids overlapping manual sync runs.

Changes

  • Refresh enabled phone steps during manual sync
  • Queue recalculation after phone steps are saved
  • Reconnect silent Bluetooth links or terminally stuck history transfers
  • Prevent repeated taps from starting overlapping manual syncs

Validation

  • 155 focused tests passed
  • Analyzer clean
  • One unrelated suite skipped
  • No full suite run

Notes

I have not yet verified this on a physical iPhone/WHOOP 4.0 build because the public TestFlight app does not include this patch.

Could you please review this and let me know if this approach is acceptable? If possible, I’d also appreciate guidance on how I can test this on iPhone or whether a TestFlight build can be made after review.

Summary by Sourcery

Ensure manual sync reliably refreshes phone and band data without overlapping runs or leaving stale derived results.

Bug Fixes:

  • Make manual sync refresh enabled phone steps and trigger recalculation after new step data is stored.
  • Recover silent Bluetooth connections and terminally stuck history transfers during manual sync.
  • Prevent repeated manual sync taps from starting overlapping operations.

Enhancements:

  • Coordinate overlapping phone-step reads, prioritize larger backfills, and preserve existing data when reads fail.

Tests:

  • Add coverage for phone-step synchronization ordering, coalescing, retries, scheduler holds, and manual sync recovery and single-flight behavior.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, we are unable to review this pull request

The GitHub API does not allow us to fetch diffs exceeding 300 files, and this pull request has 491

@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@namahsea namahsea mentioned this pull request Oct 13, 2026
@namahsea

Copy link
Copy Markdown
Author

I’m keeping this as draft because I haven’t tested it on a physical iPhone/WHOOP 4.0 build yet.

The focused tests and analyzer are passing. Could you please review whether this approach makes sense? If it looks okay, can you advise the best way for me to test it on iPhone, or whether a TestFlight build can be created from this patch?

@namahsea
namahsea force-pushed the validation/manual-sync-refresh branch from 118a2ed to 04eddf6 Compare October 13, 2026 08:40

This branch has not been deployed

No deployments
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