Repository navigation
Conversation
Catches the superproject up to all submodule work that has accumulated
on tidepool-sync/2026-03-10 since the initial sync commit, including:
- Loop: restore manual dose entry "+" button on insulin delivery screen
- LoopKit, NightscoutService, TidepoolService, LibreTransmitter:
string catalog updates from Xcode build
- OmniKit: fix reentrant lock crash in isSignalLost
- Various submodules: merge upstream/{dev,main} into tidepool-sync branch
Parallel fix to OmniKit 924f10d — OmniBLE had the identical bug where isSignalLost() read state.lastPumpDataReportDate from inside a lockedState.mutate closure, causing recursive lock acquisition.
Tier 1 - LoopKit: bd30c463 (409 commits from tidepool/dev; 18 source conflicts + 19 pbxproj regions resolved; DIY divergence preserved at BasalRateScheduleEditor) - Loop: 76b6b1e3 (14 commits from tidepool/dev; 3 pbxproj regions) Tier 3 - CGM drivers - CGMBLEKit: 69562e7 - G7SensorKit: d024513 - dexcom-share-client-swift: 541de2f - NightscoutRemoteCGM: b1ea9ee - LibreTransmitter: c99daf1 Tier 3 - Pump drivers - RileyLinkKit: 19f5ae8 - OmniKit: b3b6080 (preserves reentrant lock fix; adopts mutateState) - OmniBLE: 645e0fc (preserves reentrant lock fix and Pod Keep Alive suspend special case; adopts mutateState) - MinimedKit: f994d6e (preserves CAGE/IAGE tracking) Tier 3 - Services - TidepoolService: 5f6a064 (incl. DoseEntry dedupe follow-up) - NightscoutService: 1b5cded (preserves APNS response feature) - AmplitudeService: 77dae3e - LogglyService: 8e18081 - MixpanelService: unchanged (already up to date with tidepool) Tier 3 - Support/Onboarding - LoopSupport: a312dfb - LoopOnboarding: fd7e410 Package.resolved - LoopAlgorithm: tidepool-org/LoopAlgorithm bd1a879 (4 test-only commits)
docs/tidepool-sync-2026-05-11.md describes the merge, conflicts, and divergences. SYNC_PROGRESS.md updated to reflect the new branch and the divergences carried forward.
Pulls in 3 small origin/dev updates that landed after this sync started: - Loop: PR #2410 Live activity plot fixes (manual merge to preserve our post-Tidepool-sync API: kept async/await sample fetch + LoopUnit signature, adopted upstream's presetStart<=presetEnd guard and the adjustedChartStart/End helpers) - CGMBLEKit: PR #211 handle inactive CGM sensor sessions (clean merge) - OmniBLE: Lokalise translation update (clean merge)
Pulls in the new loopkitdev/LibreLoop repo (initial scaffold at 55b65d6), registers its xcodeproj in the workspace, and adds LibreLoopPlugin to the LoopWorkspace scheme so copy-plugins.sh embeds the .loopplugin bundle into Loop.app/Frameworks. With this in place Loop's CGM picker surfaces a "FreeStyle Libre 3" entry and runs the plugin's onboarding flow. No changes to Loop or LoopKit are required — discovery is purely via PluginManager's Info.plist scan.
Bumps the LibreLoop submodule pointer to the head of main, covering: - onboarding restructure (Apply -> Scan) - LibreCRKit SwiftPM dep + vendored phone_cert_162b - candidate Phase 5 handshake - BLE PIN persisted before BLE auth - in-session glucose streaming + monitor - redesigned status screen, lifecycle bar, last-N readings table - always-retrying reconnect + per-attempt scan timeout - post-pair backfill via PatchControlCommand - adopted upstream Libre3GlucoseQualityAssessment API - Pair-new-sensor flow, persisted latestSample - BLE state restoration via shared scanner + retrievePeripherals
Bump LibreLoop submodule to pick up the DeviceManager / Pluggable / AlertResponder updates needed against the tidepool-sync LoopKit.
Bumps the LibreLoop pointer so post-background disconnect traces land in Documents/libreloop/log.txt. Adds pull-libreloop-log.sh to fetch the file via devicectl without bouncing through Console.app.
xcodebuild -exportLocalizations / -importLocalizations build every target for all platforms they support, including Mac Catalyst. Loop ships no Catalyst app, and under Xcode 27 the Catalyst builds fail because several frameworks fall back to an unsupported macOS 10.15 deployment target (min is 12.0). Pass SUPPORTS_MACCATALYST=NO so Catalyst isn't built, which lets the export/import run to completion. Verified: the export previously failed at LoopKit (then LibreLoop, MixpanelServiceKit, ...); with SUPPORTS_MACCATALYST=NO it builds no Catalyst variants and completes, producing xcloc output.
Includes LoopKit/Loop#2538 Fix watch bolus recommendation doubling after a carb+bolus delivery, on top of #2535 (watch Pre-Meal icon).
Bump Loop, LoopKit and G7SensorKit
Matches dev: the macOS jobs run on the xcode-27 runner and select Xcode 27.0, and the Linux jobs run on ubuntu-26.04. The manual build had been on Xcode 26.4 and the automatic build on 26.5. next-dev already builds cleanly with Xcode 27.
…atalyst Skip Mac Catalyst in the localization export/import (Xcode 27)
- Loop -> 8e6be4a4: don't confirm a Loop reset before launch completes (#2551); forward device manager analytics events (#2552) - LoopKit -> a6269033: device managers can record analytics events through their delegate (#630) - OmnipodKit -> 63a2d6f: Pod Paired / Pod Ended analytics and pump events (#180); backport dev PRs 169, 172, 173, 174, 175 (#181) - MedtrumKit -> 2d48bfc: merge MedtrumKit dev through ef866fa (#4) - EversenseKit -> 8666dda: merge EversenseKit dev through e1bb6fa (#2) - CGMBLEKit -> 7fe0426: surface G5/G6 sensor lifecycle, detect Anubis-modded G6 (#222) - G7SensorKit -> 5a78636: direct pairing onboarding (#72), signal strength logging (#78), drop the 20-minute signal-loss alert (#79) - RileyLinkKit -> 2c2343d: watchOS framework targets (#21) - LoopAlgorithm -> 4604ee3: unify fork history with tidepool-org (#8)
…iscKit - Loop -> 0e757ab5: raise the iOS deployment target to 17.6 (#2553) - LoopKit -> 5caf3e28: GlucoseStore reads managed objects on its queue when saving to HealthKit, and skips HealthKit samples without dates, which crash-looped the watch app (#629) - LibreLoop -> 1a3195e: switch from LibreCRKit to RoundWhiteDiscKit, downloading its runtime tables from Arweave once (#14) - Replace the LibreCRKit submodule with RoundWhiteDiscKit at dccf013, the commit LibreLoop pins. It is added to the workspace as a local package, which overrides LibreLoop's remote reference, so no remote pin appears in Package.resolved. - Note in the dev notes that the RoundWhiteDiscKit submodule and LibreLoop's Arweave txid have to move together.
Build next-dev with Xcode 27; bump submodules
- RoundWhiteDiscKit 0e076b2: pair with plain-key app identities, without the runtime tables (airedev326/RoundWhiteDiscKit#3). - LibreLoop 252b079: use them before the whitebox, with field diagnostics for identity selection and rejection (LoopKit/LibreLoop#16). - OmnipodKit 65a6ec4: acknowledge the expired-pod alert, and retry the acknowledgement once (LoopKit/OmnipodKit#182).
Bump RoundWhiteDiscKit, LibreLoop and OmnipodKit
Shows the sensor's security version and region, and whether it paired with an app identity or the whitebox, in its Debug Info settings (LoopKit/LibreLoop#17).
Bump LibreLoop to cfd1e71
Bump Loop for the watch carb double-count fix
RoundWhiteDiscKit takes its app credentials from the host; LibreLoop downloads them and picks the sensor by its advertised BLE address (LoopKit/LibreLoop#18).
Bump RoundWhiteDiscKit to e66da6c and LibreLoop to 150d2b1
CircleCI retired configuration version 2 at the end of September, so every pipeline since then has errored before running a single step. Declaring version 2.1 restores the builds. The image moves to Xcode 27 to match the browser build and local development, the raw xcodebuild logs are kept as artifacts, and simulator diagnostics collection is skipped because it hangs for ten minutes on the CI image.
- Loop 0de85b71: don't run an action tab when a home swipe starts on the bar (LoopKit/Loop#2565) - LoopKit e4ebe3d3: extensible CGM event model, Modelv7 (LoopKit/LoopKit#635) - G7SensorKit 8fa9c73: nonzero-status glucose messages and serial-number device ids (LoopKit/G7SensorKit#85), sensor identity certificates (#86), comment fixes (#87), Simulator pairing over a Bluetooth bridge (#89)
Bump Loop, LoopKit and G7SensorKit
Bump LoopKit, G7SensorKit, CGMBLEKit and NightscoutService (CGM sensorIssue events)
…r-events Bump LoopKit, Loop, EversenseKit and LibreLoop (CI test-host fixes, sensor events)
Fix CircleCI config for next-dev: declare version 2.1 and build with Xcode 27
Brings in the VoiceOver label fixes (LoopKit/Loop#2569, LoopKit/LoopKit#640, loopandlearn/OmnipodKit#189, LoopKit/G7SensorKit#92), the compiler warning cleanup (LoopKit/Loop#2567, LoopKit/LoopKit#639) and real pod Bluetooth in the Simulator when a bridge is injected (loopandlearn/OmnipodKit#188).
…les) (#532) * Pin the plugin picker subtitle branches Points the 17 submodules at their plugin-picker-subtitle branches (Camji55's manufacturer field PRs merged onto the current base, plus the picker subtitle), so CI builds and tests them together. * Bump submodules to the merged plugin picker PRs Pins each submodule to its base branch tip, which is the merge commit of its plugin picker PR. Also picks up the other PRs merged since the last bump: LoopKit #641, #643 and #645; Loop #2570 and #2573; loopandlearn/OmnipodKit#191; G7SensorKit #93; and the warning cleanups.
…s, device models (#534) * Bump Loop, LoopKit and LoopAlgorithm (Tidepool sync 2026-10-12) Loop b16e8f43 (LoopKit/Loop#2571), LoopKit 9092a78c (LoopKit/LoopKit#642) and LoopAlgorithm 7ef6724 (LoopKit/LoopAlgorithm#9) merge tidepool-org dev/main. All other Tidepool forks had nothing new since the 2026-05-11 sync. Records the sync and the two new DIY divergences in the sync dev notes. * Bump submodules for backfill tagging, analytics and fixes Bumps CGMBLEKit, EversenseKit, G7SensorKit, LibreLoop, LibreTransmitter, Loop, LoopKit, LoopSupport, NightscoutService, OmnipodKit, RileyLinkKit and TidepoolService to their base branch tips, and NightscoutKit to main (8ae3e6e). * Bump Loop, OmnipodKit, LibreLoop and EversenseKit for device models in analytics
* Bump Loop, LoopKit and G7SensorKit for the HealthKit glucose purge fix and Support build info * Bump LoopKit for the revert of the newer-store guard * Bump LoopKit to next-dev after merging #652
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This branch is a holding ground for the next major set of features to land in dev.
It includes the Tidepool Sync (#450) and OmnipodKit, and new Libre 3 integration.