Skip to content

Add GPX journey recording - #298

Draft
RDMurray wants to merge 1 commit into
mainfrom
codex/gpx/recording
Draft

Add GPX journey recording#298
RDMurray wants to merge 1 commit into
mainfrom
codex/gpx/recording

Conversation

@RDMurray

Copy link
Copy Markdown
Contributor

Summary

  • add an accessible GPX recording screen reachable from the main menu
  • capture background location updates into crash-recoverable, segmented recording drafts
  • save, list, share, and validate GPX files in local storage or iCloud Drive
  • pause and resume recording with Soundscape Sleep and Snooze state changes
  • expose the iCloud document container in Files while migrating private app state out of Documents
  • fix GPX bounds/extension serialization needed by recorded tracks

Why

Soundscape users need a reliable way to record journeys as portable GPX tracks without leaving the app. Draft persistence protects an in-progress recording from interruption, while local and iCloud destinations make completed tracks easy to access and share.

The storage follow-up keeps paired-device data, experiment controls, and Shared Experiences content/state private after enabling document sharing. A synchronous starting state also closes the repeated-Start race that could recreate and truncate an active draft.

User impact

Users can start and stop recording from the main menu, see recording status and point counts, recover interrupted recordings, choose a safe unique filename, and share saved tracks. iCloud recordings appear in Files when iCloud Drive is available, with local fallback and retry options for cloud failures.

Validation

  • xcodebuild test -project GuideDogs.xcodeproj -scheme Soundscape -destination 'platform=iOS Simulator,id=6D13394A-295B-4D57-B202-561E1E914E74' -only-testing:'UnitTests/GPXRecordingTests' CODE_SIGNING_ALLOWED=NO
    • 7 tests passed with Thread Sanitizer enabled
  • plutil -lint passed for Info.plist, Soundscape.entitlements, and project.pbxproj
  • git diff --check passed

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 40cb90e8-f97d-4235-9341-ed2cb2bef6f1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

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