Conversation
- Point all 18 submodule URLs to https://github.com/loopkitdev/* forks - Minizip and TrueTime.swift retain LoopKit origin (no forks) - Add docs/tidepool-sync-2026-03-10.md (Tidepool sync documentation)
…ce docs - Update all 17 submodule commit pointers to reflect rewritten history (filter-branch changed SHAs when fixing author to LoopKit Developer) - Add Loop build fix commit (LoopDataManager init ordering) - Add LOOPKIT_SYNC_PROCESS.md, SYNC_PROGRESS.md, sync-docs/
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
…ow + syncId Loop next-dev (25f79bda): AlarmKit critical-alert path on iOS 26+ without the entitlement (near-future fire, Stop acknowledges the alert, audio fallback). LibreLoop main (4e49d0c): per-minute clinical backfill limited to a recent window; unified backfill/realtime syncIdentifier to prevent duplicate points.
Merges the statistics-agp and watch-glucose-backfill branches into Loop: - Settings → Statistics: Daily Glucose Pattern (AGP) chart, vertical time-in-range with goals, glucose metric cards, range notices. - Watch: fetch context + backfill glucose on foreground; anchor backfill to the latest stored sample. - Fix duplicate .configuration plugin menu item in Settings.
…ad inspector Lands the LibreLoop libre-stream-debug work (merged to LibreLoop main at 683bdc0): developer Glucose Streams view, continuous clinical subscription, per-read inspector, and the Connection activity filter.
…t e69dbd6 Lands LibreLoop main 537bf33: - Durable stable receiverID (survives plugin remove/re-add) + launch migration - Fix false warmup on switch-receiver re-pair; self-heal stored activatedAt - Shared BLE central + full delete teardown (fix BT-unavailable / PairingFlowError 7 on re-add) - In-app activity log timestamps; continuous-clinical gated off by default - LibreCRKit e69dbd6: package-bundled cert + sensor-attention alerts
The LibreLoop bump landed code using LibreCRKit's e69dbd6 APIs (Libre3SensorAttention, PhoneCert.bundled162b), but the LibreCRKit submodule gitlink was still at the old 5712710, so CI compiled LibreLoop against a LibreCRKit lacking those symbols. Advance the submodule to the matching upstream commit.
LibreCRKit: surface raw ATT error codes in read/write failures. LibreLoop: fix backfill (ATT 0xFD, via arming the full data-plane response set incl clinicalData post-handshake), thin clinical gap-fill to the 5-min grid, per-channel silence watchdog in place of blanket CCCD churn, plus glucose data-quality logging + a stuck-value detector and connect/disconnect + didDiscover visibility.
Repoint all 18 loopkitdev/<repo> submodule URLs to LoopKit/<repo>, with a next-dev branch pushed to each LoopKit repo at the pinned commit. OmnipodKit and MedtrumKit are new LoopKit forks of loopandlearn/OmnipodKit and jbr7rr/MedtrumKit (.branch -> next-dev). LibreTransmitter pin advanced to LoopKit next-dev tip (6a940e8). No build content change for the other 17 (same commits, different remote).
Catch up the 3 commits that landed on loopkitdev/Loop next-dev after the earlier pin (carb-entry date-picker limits honoring LoopConstants, PR #1), pushed to LoopKit/Loop next-dev.
Combine tidepool-sync-2026-03-10.md and tidepool-sync-2026-05-11.md into a user-facing What's New guide and a developer Sync & Notes companion, and bring both current with the DIY features landed on next-dev since (Statistics/AGP, glucose alerts + mmol/L, AlarmKit critical alerts, OmnipodKit/MedtrumKit/ EversenseKit/LibreLoop device support, watch glucose, manual temp basal HUD). Remove the two superseded per-sync docs.
…n redesign) - Remove the de-branding note (not new to this line). - Add Omnipod 5 support via OmnipodKit to the pumps section. - Document the redesigned main screen: single insulin delivery chart (was two: delivery + Active Insulin), time since last loop, updated loop-status dialog.
The ISF change applies to insulin dose effects: as a dose absorbs, its glucose effect follows the ISF timeline rather than a single ISF fixed at dose time, so changing ISF while a dose is still active recalculates its remaining effect. Corrects the inherited 'carb absorption' wording.
…r no longer stops Loop
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.