Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
d03e977
Update submodule URLs to loopkitdev forks; add sync doc
loopkitdev Mar 12, 2026
24f9d53
Update sync doc: preset scheduling history, alert permissions accuracy
loopkitdev Mar 12, 2026
5e98b22
Update submodule refs after filter-branch author rewrite; add workspa…
loopkitdev Mar 12, 2026
1a0b850
Update TidepoolService submodule ref (restore LoopAlgorithm imports)
loopkitdev Mar 13, 2026
c960899
Update sync doc with TidepoolServiceKit import fix
loopkitdev Mar 13, 2026
530057f
Update TidepoolKit to latest dev (4f4747ff)
loopkitdev Mar 25, 2026
2498db2
Update mixpanel-swift to v6.0.0 (b4cb3f6e)
loopkitdev Mar 25, 2026
4e4ae7c
MixpanelService: bump deployment target to iOS 17.0
loopkitdev Mar 25, 2026
577beb9
MixpanelService: add instance pluginIdentifier for Pluggable conformance
loopkitdev Mar 25, 2026
fa192ac
MixpanelService: update ServiceUI conformance for new LoopKitUI API
loopkitdev Mar 25, 2026
a11ce41
OmniBLE: fix private(set) whitespace for Swift 6 compatibility
loopkitdev Mar 25, 2026
3ee6fe3
OmniBLE: fix Swift 6 compile errors
loopkitdev Mar 25, 2026
b048699
Package.resolved: add json-logic-swift 1.2.4 (resolved by Xcode)
loopkitdev Mar 25, 2026
e1c6955
OmniKit: fix Swift 6 compile errors
loopkitdev Mar 25, 2026
da186a3
Bump submodule pins to current tidepool-sync/2026-03-10 heads
loopkitdev Apr 10, 2026
71525a1
OmniBLE: bump to e9425ad (fix reentrant lock crash in isSignalLost)
loopkitdev Apr 23, 2026
99c1e57
Bump submodule pins to tidepool-sync/2026-05-11 heads
ps2 May 11, 2026
212bc27
Sync log + progress for 2026-05-11
ps2 May 11, 2026
0f207ef
Catch up Loop, CGMBLEKit, OmniBLE pins to origin/dev
ps2 May 11, 2026
932d5c3
Bump Loop pin: post-dose updateRemoteRecommendation for NS uploads
ps2 May 11, 2026
d65fff9
Bump OmniKit + OmniBLE pins: setState compile fix
ps2 May 11, 2026
7c53cca
Bump MinimedKit pin: restore DIY CAGE/IAGE viewModel properties
ps2 May 11, 2026
6c7cd54
Bump LoopKit pin: restore public on ResizeablePicker
ps2 May 11, 2026
83646c7
Bump Loop + LoopKit pins: remove ResizeablePicker DIY divergence
ps2 May 11, 2026
1f603e3
Bump Loop pin: fix Live Activity preset SF Symbol rendering
ps2 May 11, 2026
168e3f1
Bump Loop pin: top-leading alignment for Live Activity preset label
ps2 May 11, 2026
429d7ad
Bump Loop pin: preset label inside plot area
ps2 May 11, 2026
193ef5a
Bump Loop pin: promote Live Activity to top-level settings
ps2 May 11, 2026
4010975
Add LibreLoop submodule for FreeStyle Libre 3 CGM plugin
loopkitdev May 12, 2026
478b615
LibreLoop: catch up to 5d6aeba on tidepool-sync base
loopkitdev May 15, 2026
becb131
LibreLoop: tidepool-sync protocol conformance + LibreCRKit pin
loopkitdev May 15, 2026
afc5ff0
LibreLoop: rolling on-disk log + lifecycle traces
loopkitdev May 15, 2026
2b834fc
LibreLoop: log glucose values we forward to Loop
loopkitdev May 15, 2026
023ed61
LibreLoop: bracket reconnect with UIApplication background task
loopkitdev May 15, 2026
58e7733
LibreLoop: cached/direct reconnect handshake (skips Phase 1-4)
loopkitdev May 15, 2026
a548418
LibreLoop: label Recent Readings columns
loopkitdev May 15, 2026
ac78ed6
LibreLoop: drop backfill samples that duplicate realtime
loopkitdev May 16, 2026
84c959c
LibreLoop: handle CCCD-refresh-failed disconnect + re-arming watchdog
loopkitdev May 16, 2026
56cb70b
Loop: diagnostic report force-unwraps watch/statusExtension managers
loopkitdev May 16, 2026
186f32b
Bump Loop pin: diagnostic report force-unwraps watch/statusExtension …
loopkitdev May 16, 2026
de32a9d
LibreLoop: throttle realtime forwarding to ~5-min cadence (opt-out to…
loopkitdev May 16, 2026
e6fd8ec
Bump Loop: restore predicted carb-effect line on ICE and food-insight…
May 16, 2026
6882612
Merge remote-tracking branch 'loopkitdev/tidepool-sync/2026-05-11' in…
loopkitdev May 16, 2026
37e84f0
LibreLoop: keep experimental-mode warning sheet alive on toggle
loopkitdev May 16, 2026
699cddd
Bump Loop: restore submodule SHAs in diagnostic report
May 16, 2026
487c0dd
LibreLoop: stop waiting on stuck reconnect work after bg expiration
loopkitdev May 17, 2026
a04648f
LibreLoop: repin LibreCRKit to private loopkitdev fork + BLE timing b…
loopkitdev May 17, 2026
e90c77b
LibreLoop: route PairingFlow handshake events into the file log
loopkitdev May 17, 2026
a602856
LibreLoop: bump LibreCRKit pin (handshake-write timeouts)
loopkitdev May 17, 2026
3037048
LibreLoop: bump LibreCRKit pin (2s awaitCommandResponse)
loopkitdev May 17, 2026
1473d17
LibreLoop: bump LibreCRKit pin (write-timeout that actually fires)
loopkitdev May 17, 2026
6652cfe
LibreLoop: also pull clinical backfill stream on reconnect (diagnostic)
loopkitdev May 18, 2026
a37bd1a
LibreLoop: stop forwarding clinical samples (forensic logging only)
loopkitdev May 18, 2026
e22b7b3
LibreLoop: forward clinical samples for per-minute backfill
loopkitdev May 18, 2026
1f8b25a
LibreLoop: serialize clinical backfill after historical, retry ATT er…
loopkitdev May 18, 2026
c8c1b13
LibreLoop: drop reconnect connect-timeout, let iOS drive
loopkitdev May 18, 2026
0311157
LibreLoop: verify central + peripheral state before connect
loopkitdev May 18, 2026
80df1d9
LibreLoop: G7-style peripheral recovery + central state listener
loopkitdev May 18, 2026
d55b822
LibreLoop: drop bg-task wrap around reconnect
loopkitdev May 19, 2026
3b68b6d
Bump Loop: External Insulin log labeling/delete, presets cleanup
May 20, 2026
a85ee45
Bump Loop: merge origin/dev into tidepool-sync (resolve WatchApp plis…
May 20, 2026
0658821
Merge origin/dev into tidepool-sync/2026-05-11
May 20, 2026
45214e7
LibreLoop: persist receiverID + auto-recover on fresh-pair
loopkitdev May 20, 2026
68ce294
Bump Loop: fix WatchApp Info.plist (drop WKWatchKitApp) for watch emb…
May 20, 2026
7d11a75
Bump Loop: Apple Health access status screen in Settings
May 20, 2026
7fd02d6
Bump LoopKit: keep Loop-written doses on external HealthKit deletion
May 21, 2026
a31116a
Bump Loop: flag-gated dose deletion from dose details (with active-in…
May 21, 2026
d1768c3
Bump Loop: enable dose deletion by default
May 21, 2026
a36ee93
Bump Loop: clear stale Last Bolus after dose deletion
May 21, 2026
ffeadc0
Bump Loop: don't allow deleting in-progress doses
May 21, 2026
9987f2a
Bump LoopKit: don't crash on legacy bolus without units; note divergence
May 21, 2026
a7c68cf
Bump LoopKit: preserve dose amounts across Modelv4→v6 migration
May 21, 2026
f1e137a
docs: note one-way upgrade (Core Data v4→v6) in sync notes
May 21, 2026
a775f2f
Bump Loop: restore localized Intents.strings refs (ITMS-90626)
May 21, 2026
4046252
Bump OmniBLE/OmniKit pins: report pod faults as pump events
May 21, 2026
14d1987
Bump version to 3.15.0
May 21, 2026
f56ea73
LibreLoop: sensor end-of-life UX
loopkitdev May 21, 2026
abad56f
Build against LoopKit/LoopAlgorithm main
ps2 May 21, 2026
76305d9
Bump Loop: show carb sharing status on Apple Health page
ps2 May 22, 2026
817b0cd
LibreLoop: tappable sample detail view from Recent Readings
loopkitdev May 22, 2026
fc9293e
Bump Loop: default to automatic bolus, deprecate temp basal
ps2 May 23, 2026
1a0c518
Bump NightscoutRemoteCGM: API Secret optional for read-only sites
ps2 May 24, 2026
b26221f
Bump NightscoutRemoteCGM: add verification logging
ps2 May 24, 2026
3ee4abd
Bump NightscoutRemoteCGM: 'Optional' placeholder for API Secret
ps2 May 24, 2026
a641759
Bump NightscoutRemoteCGM: log periodic glucose fetches
ps2 May 24, 2026
f839eaa
Bump NightscoutRemoteCGM: fix glucose filtering (sort before filterDa…
ps2 May 24, 2026
8cb791e
Bump LibreTransmitter: sort glucose before filterDateRange
ps2 May 24, 2026
980bf9c
Bump LoopAlgorithm pin to main HEAD (sorted assert merged)
ps2 May 25, 2026
ed1bb5f
Vendor LoopAlgorithm as a submodule instead of a remote package
ps2 May 25, 2026
339b188
Declare LoopAlgorithm as a workspace-level local package
ps2 May 25, 2026
4e5d839
Bump LoopKit: sort normalized doses before filterDateRange
ps2 May 25, 2026
262ef31
Correct sync-revert docs: dev can downgrade-open the v6 store
ps2 May 26, 2026
8448b82
Bump Loop: merge dev into sync branch (brings in dev-branch warning)
ps2 May 26, 2026
963763c
Merge remote-tracking branch 'origin/dev' into tidepool-sync/2026-05-11
ps2 May 26, 2026
66422e1
Bump LibreLoop, Loop, LoopKit submodule pointers
loopkitdev May 27, 2026
cb71076
Merge tidepool-sync/2026-05-11 into libreloop
loopkitdev May 27, 2026
c439dcb
Bump MinimedKit: fix off-queue BLE crash in fetchPumpHistory
loopkitdev May 31, 2026
967fcbb
Bump MinimedKit: fix off-queue BLE crash in fetchPumpHistory
ps2 May 31, 2026
5147564
Bump Loop: sort annotated doses before filterDateRange
ps2 Jun 1, 2026
1b894ff
Bump Loop: watch app crash fix, assets cleanup, missing presets image
ps2 Jun 1, 2026
f03461f
Bump TidepoolKit pin to pick up TSession backward-compat fix
ps2 Jun 1, 2026
2064197
Bring in tidepool-sync/2026-05-11 latest; bump LibreLoop, Loop, LoopKit
loopkitdev Jun 1, 2026
eacb6c8
Bump LibreLoop and NightscoutService; pin LibreCRKit 88508ae
loopkitdev Jun 2, 2026
e1ec25b
Bump Loop: pause loop while a manual temp basal is running
ps2 Jun 2, 2026
0bf111f
Bump Loop + LoopKit: MockPump manual temp basal feature and HUD wiring
ps2 Jun 3, 2026
ad1a2a0
Bump Loop + LoopKit: manual temp basal localization strings
ps2 Jun 3, 2026
b3d223e
Bump LoopKit: MockPump settings UI cleanup
ps2 Jun 3, 2026
c593efd
Update gitlinks
ps2 Jun 3, 2026
8364c86
Bump Loop: project ongoing suspend into display forecast, coalesce ba…
ps2 Jun 3, 2026
0df3885
Bump LoopAlgorithm: merge LoopKit/main + Tidepool/main into tidepool-…
ps2 Jun 3, 2026
db892a8
Bump LoopKit: list Automatic Bolus first in Dosing Strategy picker
ps2 Jun 3, 2026
565ef39
Bump Loop + LoopKit: SettingsView version row, de-brand "Tidepool Loop"
ps2 Jun 3, 2026
ef78f98
Bump Loop: focus-mode imagesets for IOSFocusModesView
ps2 Jun 3, 2026
5d9350c
Update gitlinks
ps2 Jun 4, 2026
b2aec29
Bump LibreLoop and Loop; add LibreCRKit submodule (upstream airedev326)
loopkitdev Jun 4, 2026
5ea6bdc
add OmnipodKit submodule
marionbarker Jun 6, 2026
c81ed16
Update Loop: selectable alarm sounds + Delay 1st Alert for highs
loopkitdev Jun 6, 2026
cc2572f
Update submodules: BLE timeouts/reconnect hardening, Nightscout local…
loopkitdev Jun 6, 2026
43c04ac
Merge pull request #456 from LoopKit/add-omnipodkit-to-next-dev
ps2 Jun 9, 2026
1ffa139
Wire MedtrumKit + EversenseKit into next-dev; bump LoopKit to latest
ps2 Jun 9, 2026
15193ae
Drop OmniBLE + OmniKit (superseded by OmnipodKit)
ps2 Jun 9, 2026
b96563c
Bump LibreLoop: update glucose-alerting safety section
loopkitdev Jun 9, 2026
b643e2a
Actually wire MedtrumKit + EversenseKit into workspace + scheme
ps2 Jun 10, 2026
6d2be55
Merge remote-tracking branch 'origin/next-dev' into integrate-next-dev
loopkitdev Jun 10, 2026
e6b08b2
Bump LoopOnboarding: link NightscoutServiceKitUI to fix explicit-modu…
loopkitdev Jun 10, 2026
4218bad
Merge pull request #457 from loopkitdev/integrate-next-dev
loopkitdev Jun 10, 2026
25b6c93
Merge origin/dev (3.14.2) into next-dev
ps2 Jun 10, 2026
b7682a9
Point LibreLoop submodule at LoopKit/LibreLoop
ps2 Jun 10, 2026
c9d849f
CI: bump CircleCI Xcode 16.4 -> 26.4, drop simulator OS pin
ps2 Jun 10, 2026
b2bc1b3
CI: use iPhone 17 simulator (iPhone 16 not on the iOS 26 runtime)
ps2 Jun 10, 2026
b9fa1d6
Repoint OmnipodKit at loopkitdev fork for the OmniTests decisionId fix
ps2 Jun 10, 2026
ba9f5d0
Bump Loop: add isManualTempBasalRunning to MockDeliveryDelegate (fixe…
ps2 Jun 10, 2026
19fd676
Bump LoopKit: fix stale LoopKitTests expectations (guardrails 87/67, …
ps2 Jun 10, 2026
1537b18
Bump Loop: LoopDataManagerTests current with LoopAlgorithm + DIY beha…
ps2 Jun 10, 2026
09ba9eb
Bump Loop: fix full-scheme test isolation (testOpenLoopCancelsTempBasal)
ps2 Jun 11, 2026
c7cd0b5
CI: use xcbeautify instead of xcpretty so test failures surface
ps2 Jun 11, 2026
71b5ffd
Bump OmnipodKit: CryptoSwift 1.9+ compatibility (Data.bytes -> Array(…
ps2 Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
jobs:
build_and_test:
macos:
xcode: 16.4
xcode: 26.4
steps:
- checkout
- run:
name: Checkout submodules
command: git submodule update --init --recursive --depth 1
- run:
name: Install xcbeautify
command: brew list xcbeautify >/dev/null 2>&1 || brew install xcbeautify
- run:
name: Build Loop
command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.5' build | xcpretty
command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' build | xcbeautify
- run:
name: Run Tests
command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.5' test | xcpretty
command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' test | xcbeautify --report junit --report-path test-results/results.xml
- store_test_results:
path: test-results
workflows:
version: 2
build_and_test:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@ xcuserdata/
*.xcscmblueprint
*.xcuserstate
.DS_Store
.claude

## Obj-C/Swift specific
*.hmap
*.ipa


## Playgrounds
*.playground
playground.xcworkspace
timeline.xctimeline

54 changes: 33 additions & 21 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
[submodule "Loop"]
path = Loop
url = https://github.com/LoopKit/Loop.git
url = https://github.com/loopkitdev/Loop.git
[submodule "LoopKit"]
path = LoopKit
url = https://github.com/LoopKit/LoopKit.git
url = https://github.com/loopkitdev/LoopKit.git
[submodule "CGMBLEKit"]
path = CGMBLEKit
url = https://github.com/LoopKit/CGMBLEKit.git
url = https://github.com/loopkitdev/CGMBLEKit.git
[submodule "dexcom-share-client-swift"]
path = dexcom-share-client-swift
url = https://github.com/LoopKit/dexcom-share-client-swift.git
url = https://github.com/loopkitdev/dexcom-share-client-swift.git
[submodule "RileyLinkKit"]
path = RileyLinkKit
url = https://github.com/LoopKit/RileyLinkKit
url = https://github.com/loopkitdev/RileyLinkKit
[submodule "NightscoutService"]
path = NightscoutService
url = https://github.com/LoopKit/NightscoutService.git
url = https://github.com/loopkitdev/NightscoutService.git
[submodule "Minizip"]
path = Minizip
url = https://github.com/LoopKit/Minizip.git
Expand All @@ -24,40 +24,52 @@
url = https://github.com/LoopKit/TrueTime.swift.git
[submodule "LoopOnboarding"]
path = LoopOnboarding
url = https://github.com/LoopKit/LoopOnboarding.git
url = https://github.com/loopkitdev/LoopOnboarding.git
[submodule "AmplitudeService"]
path = AmplitudeService
url = https://github.com/LoopKit/AmplitudeService.git
url = https://github.com/loopkitdev/AmplitudeService.git
[submodule "LogglyService"]
path = LogglyService
url = https://github.com/LoopKit/LogglyService.git
url = https://github.com/loopkitdev/LogglyService.git
[submodule "NightscoutRemoteCGM"]
path = NightscoutRemoteCGM
url = https://github.com/LoopKit/NightscoutRemoteCGM.git
url = https://github.com/loopkitdev/NightscoutRemoteCGM.git
[submodule "LoopSupport"]
path = LoopSupport
url = https://github.com/LoopKit/LoopSupport
url = https://github.com/loopkitdev/LoopSupport
[submodule "G7SensorKit"]
path = G7SensorKit
url = https://github.com/LoopKit/G7SensorKit.git
url = https://github.com/loopkitdev/G7SensorKit.git
[submodule "TidepoolService"]
path = TidepoolService
url = https://github.com/LoopKit/TidepoolService.git
url = https://github.com/loopkitdev/TidepoolService.git
[submodule "MinimedKit"]
path = MinimedKit
url = https://github.com/LoopKit/MinimedKit.git
url = https://github.com/loopkitdev/MinimedKit.git
[submodule "MixpanelService"]
path = MixpanelService
url = https://github.com/LoopKit/MixpanelService
url = https://github.com/loopkitdev/MixpanelService
[submodule "LibreTransmitter"]
path = LibreTransmitter
url = https://github.com/LoopKit/LibreTransmitter.git
url = https://github.com/loopkitdev/LibreTransmitter.git
[submodule "LibreLoop"]
path = LibreLoop
url = https://github.com/LoopKit/LibreLoop.git
[submodule "LoopAlgorithm"]
path = LoopAlgorithm
url = https://github.com/LoopKit/LoopAlgorithm.git
[submodule "LibreCRKit"]
path = LibreCRKit
url = https://github.com/airedev326/LibreCRKit.git
[submodule "OmnipodKit"]
path = OmnipodKit
url = https://github.com/loopandlearn/OmnipodKit
[submodule "MedtrumKit"]
path = MedtrumKit
url = https://github.com/jbr7rr/MedtrumKit
url = https://github.com/loopkitdev/OmnipodKit.git
branch = loop-next-dev
[submodule "EversenseKit"]
path = EversenseKit
url = https://github.com/bastiaanv/EversenseKit
url = https://github.com/LoopKit/EversenseKit.git
branch = loop-next-dev
[submodule "MedtrumKit"]
path = MedtrumKit
url = https://github.com/loopkitdev/MedtrumKit.git
branch = loop-next-dev
Loading