Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
e6327c7
Move release flow to PR-based and add CODEOWNERS for branch protectio…
bjorkert May 30, 2026
105d4fb
CI: Bump dev version to 6.1.1 [skip ci]
github-actions[bot] May 30, 2026
ce983de
Diagnose and skip rogue Nightscout profile records (#635)
bjorkert May 30, 2026
a013829
CI: Bump dev version to 6.1.2 [skip ci]
github-actions[bot] May 30, 2026
8e700ac
Prevent stale foreground-restart latch from tearing down freshly rene…
bjorkert May 31, 2026
7215653
CI: Bump dev version to 6.1.3 [skip ci]
github-actions[bot] May 31, 2026
439b389
Recover Live Activity after APNs 410 token expiry (#657)
bjorkert May 31, 2026
dcb54f6
CI: Bump dev version to 6.1.4 [skip ci]
github-actions[bot] May 31, 2026
91f95cf
Auto-restart Live Activity when iOS sends .ended (#659)
bjorkert May 31, 2026
5e1e244
CI: Bump dev version to 6.1.5 [skip ci]
github-actions[bot] May 31, 2026
012a154
Deduplicate Dexcom Share readings to fix delta always showing zero (#…
bjorkert May 31, 2026
4fab79e
CI: Bump dev version to 6.1.6 [skip ci]
github-actions[bot] May 31, 2026
221e11c
Remove storyboard, migrate to SwiftUI layout (#608)
bjorkert Jun 12, 2026
3f9b6cd
Suppress silent passive notifications in willPresent handler (#655)
bjorkert Jun 14, 2026
89d4fa4
Bump fastlane to 2.235.0 and jwt to 3.2.0 (CVE-2026-45363) (#663)
bjorkert Jun 14, 2026
2f8608d
Fix BG history truncation caused by duplicate readings from multiple …
bjorkert Jun 14, 2026
a9d7330
Match Trio's override/temp-target colors for non-Loop backends (#668)
bjorkert Jun 14, 2026
566c61a
Quick-Pick Boluses and Meals for remote commands (#603)
bjorkert Jun 14, 2026
350e3af
Add Nightscout WebSocket support for real-time data updates (#606)
bjorkert Jun 14, 2026
985e8b2
Default debug logging on and prompt for description when sharing logs…
bjorkert Jun 14, 2026
0841b1b
Add optional yesterday BG comparison line to main graph (#665)
bjorkert Jun 14, 2026
25650a7
Scale info data table text with Dynamic Type (#667)
bjorkert Jun 15, 2026
33d6eb9
CI: Bump dev version to 6.1.7 [skip ci]
github-actions[bot] Jun 15, 2026
d03e438
ITMS-91061 - privacy manifest for Charts framework (#666)
luborjurena Jun 16, 2026
4f67724
CI: Bump dev version to 6.1.8 [skip ci]
github-actions[bot] Jun 16, 2026
2c0ceda
Remove the Nightscout-based remote command path (#618)
bjorkert Jun 16, 2026
17991b7
CI: Bump dev version to 6.1.9 [skip ci]
github-actions[bot] Jun 16, 2026
3aeeeb0
Cap prediction cone to shortest predBG array length (#653)
quarktwain Jun 16, 2026
d333202
CI: Bump dev version to 6.1.10 [skip ci]
github-actions[bot] Jun 16, 2026
86fd005
CI: Re-run lint when a PR's base branch changes (#676)
bjorkert Jun 17, 2026
d6ce283
CI: Bump dev version to 6.1.11 [skip ci]
github-actions[bot] Jun 17, 2026
5fc2c4e
Remove empty Nightscout group from project file (#675)
bjorkert Jun 17, 2026
3e63929
CI: Bump dev version to 6.1.12 [skip ci]
github-actions[bot] Jun 17, 2026
5c5ff91
update version to 6.2.0 [skip ci]
marionbarker Jun 21, 2026
a0b0747
Sanitize Nightscout token to prevent WebSocket crash on launch (#688)
bjorkert Jun 23, 2026
cdf0cf9
CI: Bump dev version to 6.2.1 [skip ci]
github-actions[bot] Jun 23, 2026
5c5833f
Add search to the alarms list (#694)
bjorkert Jul 8, 2026
ccd1d0f
CI: Bump dev version to 6.2.2 [skip ci]
github-actions[bot] Jul 8, 2026
094c9dd
Add search filter to the Add Alarm sheet (#681)
bjorkert Jul 8, 2026
1b35124
CI: Bump dev version to 6.2.3 [skip ci]
github-actions[bot] Jul 8, 2026
4422a1e
Fix stale snooze state in alarm list (#678)
bjorkert Jul 8, 2026
29291b5
CI: Bump dev version to 6.2.4 [skip ci]
github-actions[bot] Jul 8, 2026
2acd81b
Prefer structured ISF/CR from device status over reason string (#677)
bjorkert Jul 9, 2026
bd8fefb
CI: Bump dev version to 6.2.5 [skip ci]
github-actions[bot] Jul 9, 2026
4dc778e
Bump fastlane to 2.237.0 (#701)
bjorkert Jul 10, 2026
e80408a
CI: Bump dev version to 6.2.6 [skip ci]
github-actions[bot] Jul 10, 2026
290e020
Only clear the forecast when the data source changes (#707)
bjorkert Jul 17, 2026
d2de165
CI: Bump dev version to 6.2.7 [skip ci]
github-actions[bot] Jul 17, 2026
043349f
Remove migration step 1 and the legacy UserDefaults framework it kept…
bjorkert Jul 18, 2026
c57c14a
CI: Bump dev version to 6.2.8 [skip ci]
github-actions[bot] Jul 18, 2026
68a309f
Add Nightscout database size info row and alarm (#697)
bjorkert Jul 18, 2026
6faecca
CI: Bump dev version to 6.2.9 [skip ci]
github-actions[bot] Jul 18, 2026
b6c81a8
Migrate charts to Swift Charts (#704)
bjorkert Jul 19, 2026
d2118f1
CI: Bump dev version to 6.2.10 [skip ci]
github-actions[bot] Jul 19, 2026
3c7bf26
release.sh: verify latest script before running (#682)
bjorkert Jul 19, 2026
5553ded
CI: Bump dev version to 6.2.11 [skip ci]
github-actions[bot] Jul 19, 2026
7c76156
release.sh: set gh pr repo explicitly (#685)
bjorkert Jul 19, 2026
c3391b5
CI: Bump dev version to 6.2.12 [skip ci]
github-actions[bot] Jul 19, 2026
01e0786
release.sh: drop [skip ci] from version bump; allow manual tag_on_mai…
bjorkert Jul 19, 2026
d347bfc
Add directional/charging skip toggles to Low, High and Battery alarms…
bjorkert Jul 19, 2026
14196db
CI: Bump dev version to 6.2.13 [skip ci]
github-actions[bot] Jul 19, 2026
36fe25b
Mark scheduled runs with nothing to build as cancelled instead of suc…
bjorkert Jul 19, 2026
685a06b
CI: Bump dev version to 6.2.14 [skip ci]
github-actions[bot] Jul 19, 2026
b752eac
Use NightscoutUtils.constructURL for the Nightscout web viewer URL (#…
bjorkert Jul 19, 2026
30da679
CI: Bump dev version to 6.2.15 [skip ci]
github-actions[bot] Jul 19, 2026
c0eceda
Add fallbacks for missing TDD and timestamp in devicestatus (#709)
bjorkert Jul 19, 2026
070f79a
CI: Bump dev version to 6.2.16 [skip ci]
github-actions[bot] Jul 19, 2026
600ca4c
Format Rec. Bolus with the pump's bolus increment (#700)
bjorkert Jul 19, 2026
0537a14
CI: Bump dev version to 6.2.17 [skip ci]
github-actions[bot] Jul 19, 2026
05bd6bd
Remove pre-iOS 18 Live Activity code paths (#711)
bjorkert Jul 19, 2026
390cd38
CI: Bump dev version to 6.2.18 [skip ci]
github-actions[bot] Jul 19, 2026
590024f
Gate startup on storage readiness for Before-First-Unlock recovery (#…
bjorkert Jul 19, 2026
ac18d68
CI: Bump dev version to 6.2.19 [skip ci]
github-actions[bot] Jul 19, 2026
cdaa672
Add custom alarm sounds (#699)
bjorkert Jul 19, 2026
c0a636d
CI: Bump dev version to 6.2.20 [skip ci]
github-actions[bot] Jul 19, 2026
26b8cdf
Add dismissable top banner for Nightscout, Dexcom, and heartbeat issu…
bjorkert Jul 19, 2026
d520f23
CI: Bump dev version to 6.2.21 [skip ci]
github-actions[bot] Jul 19, 2026
afc1c64
Add search to the Menu (#695)
bjorkert Jul 19, 2026
1895d10
CI: Bump dev version to 6.2.22 [skip ci]
github-actions[bot] Jul 19, 2026
c56d0b3
Add color thresholds to the Info Display (#693)
bjorkert Jul 19, 2026
3cae07c
CI: Bump dev version to 6.2.23 [skip ci]
github-actions[bot] Jul 19, 2026
eb15e4c
Add new section to export APNS setting (#714)
codebymini Jul 19, 2026
48a2a65
CI: Bump dev version to 6.2.24 [skip ci]
github-actions[bot] Jul 19, 2026
f5f2e47
release.sh: use merge-commit for release PRs to preserve release note…
bjorkert Jul 19, 2026
76a6aa4
CI: Bump dev version to 6.2.25 [skip ci]
github-actions[bot] Jul 19, 2026
b05f27c
Bug fix: carb dots overlapping SMB dots on the chart (#650)
aug0211 Jul 20, 2026
0501faf
Migrate main LoopFollow target to a synchronized folder group (#702)
bjorkert Jul 20, 2026
9b09a58
CI: Bump dev version to 6.2.26 [skip ci]
github-actions[bot] Jul 20, 2026
e103cdb
Fix Mac Catalyst build: guard liveActivity keywords case (#715)
bjorkert Jul 20, 2026
6587480
CI: Bump dev version to 6.2.27 [skip ci]
github-actions[bot] Jul 20, 2026
a34a46f
Remove unneeded UIKit imports (#713)
bjorkert Jul 20, 2026
8bd6575
CI: Bump dev version to 6.2.28 [skip ci]
github-actions[bot] Jul 20, 2026
7937e19
Parameterize bundle ID and build workflow for identical sister-repo c…
bjorkert Jul 20, 2026
62832ef
CI: Bump dev version to 6.2.29 [skip ci]
github-actions[bot] Jul 20, 2026
411c7af
Add first-run onboarding guide (#673)
bjorkert Jul 20, 2026
6f5a658
CI: Bump dev version to 6.2.30 [skip ci]
github-actions[bot] Jul 20, 2026
81d8fd4
Extend predictive low alarm to Trio (#680)
bjorkert Jul 20, 2026
1cf603f
CI: Bump dev version to 6.2.31 [skip ci]
github-actions[bot] Jul 20, 2026
b06efbf
Fix graph settings not honored on the small graph (#717)
bjorkert Jul 21, 2026
fad8089
CI: Bump dev version to 6.2.32 [skip ci]
github-actions[bot] Jul 21, 2026
924d888
Move main chart in realtime while dragging on the small graph (#718)
bjorkert Jul 21, 2026
56f5b24
CI: Bump dev version to 6.2.33 [skip ci]
github-actions[bot] Jul 21, 2026
9093e74
Draw temp targets at the BG level they target instead of in the overr…
bjorkert Jul 23, 2026
162cd83
CI: Bump dev version to 6.2.34 [skip ci]
github-actions[bot] Jul 23, 2026
d8151a9
Show active override and temp target with remaining time on the Live …
bjorkert Jul 23, 2026
71bd417
CI: Bump dev version to 6.2.35 [skip ci]
github-actions[bot] Jul 23, 2026
7f13537
Use Trio's colors for the forecast curves (#723)
bjorkert Jul 24, 2026
fccbdc1
CI: Bump dev version to 6.2.36 [skip ci]
github-actions[bot] Jul 24, 2026
f128d24
Clear stored predBGs when clearing the OpenAPS forecast (#724)
bjorkert Jul 25, 2026
6b35250
CI: Bump dev version to 6.2.37 [skip ci]
github-actions[bot] Jul 25, 2026
0dacf22
update version to 7.0.0
marionbarker Jul 25, 2026
89183a4
Reconcile main lineage for v7.0.0
marionbarker Jul 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 30 additions & 6 deletions .github/workflows/build_LoopFollow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,10 @@ jobs:
if: steps.workflow-permission.outputs.has_permission != 'true'
run: |
echo "### :calendar: Scheduled Sync and Build Disabled :mobile_phone_off:" >> $GITHUB_STEP_SUMMARY
echo "You have not yet configured the scheduled sync and build for LoopFollow's browser build." >> $GITHUB_STEP_SUMMARY
echo "Synchronizing your fork of <code>LoopFollow</code> with the upstream repository <code>loopandlearn/LoopFollow</code> will be skipped." >> $GITHUB_STEP_SUMMARY
echo "If you want to enable automatic builds and updates for your LoopFollow, please follow the instructions \
under the following path <code>LoopFollow/fastlane/testflight.md</code>." >> $GITHUB_STEP_SUMMARY
echo "You have not yet configured the scheduled sync and build for ${{ github.event.repository.name }}'s browser build." >> $GITHUB_STEP_SUMMARY
echo "Synchronizing your fork of <code>${{ github.event.repository.name }}</code> with the upstream repository <code>${{ env.UPSTREAM_REPO }}</code> will be skipped." >> $GITHUB_STEP_SUMMARY
echo "If you want to enable automatic builds and updates for your ${{ github.event.repository.name }}, please follow the instructions \
under the following path <code>${{ github.event.repository.name }}/fastlane/testflight.md</code>." >> $GITHUB_STEP_SUMMARY

# Set a logic flag if this is the second instance of this day-of-week in this month
- name: Check if this is the second time this day-of-week happens this month
Expand All @@ -148,6 +148,30 @@ jobs:
echo "is_second_instance=false" >> "$GITHUB_OUTPUT"
fi

# When a scheduled run finds nothing new to build, cancel the run so it shows
# as "cancelled" instead of "success" — a green check should always mean a
# new build was made.
cancel_when_no_build:
needs: check_status
name: Cancel run when there is nothing to build
runs-on: ubuntu-latest
permissions:
actions: write
if: |
github.event_name == 'schedule' &&
!(vars.SCHEDULED_BUILD != 'false' && needs.check_status.outputs.IS_SECOND_IN_MONTH == 'true') &&
!(vars.SCHEDULED_SYNC != 'false' && needs.check_status.outputs.NEW_COMMITS == 'true')
steps:
- name: Cancel the run
env:
GH_TOKEN: ${{ github.token }}
run: |
echo "Repository is up to date and no monthly build is due — cancelling this run so it is not reported as a successful build." >> "$GITHUB_STEP_SUMMARY"
gh run cancel ${{ github.run_id }} --repo ${{ github.repository }}
# Keep the job alive until the cancellation lands, so the run ends as
# "cancelled" rather than completing successfully first.
sleep 300

# Checks if Distribution certificate is present and valid, optionally nukes and
# creates new certs if the repository variable ENABLE_NUKE_CERTS == 'true'
# only run if a build is planned
Expand All @@ -161,7 +185,7 @@ jobs:
(vars.SCHEDULED_BUILD != 'false' && needs.check_status.outputs.IS_SECOND_IN_MONTH == 'true') ||
(vars.SCHEDULED_SYNC != 'false' && needs.check_status.outputs.NEW_COMMITS == 'true' )

# Builds LoopFollow
# Builds the app
build:
name: Build
needs: [check_certs, check_status]
Expand Down Expand Up @@ -203,7 +227,7 @@ jobs:
- name: Sync clock
run: sudo sntp -sS time.windows.com

# Build signed LoopFollow IPA file
# Build signed IPA file
- name: Fastlane Build & Archive
run: bundle exec fastlane build_LoopFollow
env:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/tag_on_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ on:
push:
branches:
- main
# Manual fallback: if the push-triggered run was ever skipped (e.g. a commit
# with [skip ci] landing on main), the tag can be created by dispatching this
# workflow against main. It is idempotent — it skips if the tag already exists.
workflow_dispatch:

jobs:
tag:
Expand Down
2 changes: 1 addition & 1 deletion Config.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
unique_id = ${DEVELOPMENT_TEAM}

//Version (DEFAULT)
LOOP_FOLLOW_MARKETING_VERSION = 6.2.0
LOOP_FOLLOW_MARKETING_VERSION = 7.0.0
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
source "https://rubygems.org"
gem "fastlane", "2.235.0"
gem "fastlane", "2.237.0"
54 changes: 29 additions & 25 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.4.0)
aws-partitions (1.1254.0)
aws-sdk-core (3.250.0)
aws-partitions (1.1267.0)
aws-sdk-core (3.253.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
bigdecimal
jmespath (~> 1, >= 1.6.1)
logger
aws-sdk-kms (1.128.0)
aws-sdk-kms (1.129.0)
aws-sdk-core (~> 3, >= 3.248.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.224.0)
aws-sdk-s3 (1.226.0)
aws-sdk-core (~> 3, >= 3.248.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
Expand All @@ -42,8 +42,9 @@ GEM
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.112.0)
faraday (1.10.5)
excon (1.5.0)
logger
faraday (1.10.6)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
Expand Down Expand Up @@ -72,10 +73,10 @@ GEM
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.4.1)
fastlane (2.235.0)
fastlane (2.237.0)
CFPropertyList (>= 2.3, < 5.0.0)
abbrev (~> 0.1)
addressable (>= 2.8, < 3.0.0)
addressable (>= 2.9.0, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.197)
babosa (>= 1.0.3, < 2.0.0)
Expand All @@ -87,7 +88,7 @@ GEM
csv (~> 3.3)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0)
excon (>= 0.71.0, < 2.0.0)
faraday (~> 1.0)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
Expand All @@ -101,9 +102,10 @@ GEM
highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 4)
jwt (>= 2.10.3, < 4)
logger (>= 1.6, < 2.0)
mini_magick (>= 4.9.4, < 5.0.0)
multi_json (~> 1.12)
multipart-post (>= 2.0.0, < 3.0.0)
mutex_m (~> 0.3)
naturally (~> 2.2)
Expand All @@ -124,7 +126,7 @@ GEM
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-sirp (1.1.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.101.0)
google-apis-androidpublisher_v3 (0.104.0)
google-apis-core (>= 0.15.0, < 2.a)
google-apis-core (0.18.0)
addressable (~> 2.5, >= 2.5.1)
Expand All @@ -134,20 +136,20 @@ GEM
mutex_m
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
google-apis-iamcredentials_v1 (0.27.0)
google-apis-iamcredentials_v1 (0.28.0)
google-apis-core (>= 0.15.0, < 2.a)
google-apis-playcustomapp_v1 (0.17.0)
google-apis-playcustomapp_v1 (0.18.0)
google-apis-core (>= 0.15.0, < 2.a)
google-apis-storage_v1 (0.62.0)
google-apis-storage_v1 (0.64.0)
google-apis-core (>= 0.15.0, < 2.a)
google-cloud-core (1.8.0)
google-cloud-core (1.9.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (2.2.2)
base64 (~> 0.2)
faraday (>= 1.0, < 3.a)
google-cloud-errors (1.6.0)
google-cloud-storage (1.60.0)
google-cloud-errors (1.7.0)
google-cloud-storage (1.62.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-core (>= 0.18, < 2)
Expand All @@ -157,21 +159,21 @@ GEM
googleauth (~> 1.9)
mini_mime (~> 1.0)
google-logging-utils (0.2.0)
googleauth (1.16.2)
googleauth (1.17.1)
faraday (>= 1.0, < 3.a)
google-cloud-env (~> 2.2)
google-logging-utils (~> 0.1)
jwt (>= 1.4, < 4.0)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
pstore (~> 0.1)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.8)
domain_name (~> 0.5)
httpclient (2.9.0)
mutex_m
jmespath (1.6.2)
json (2.19.7)
json (2.20.0)
jwt (3.2.0)
base64
logger (1.7.0)
Expand All @@ -182,11 +184,12 @@ GEM
mutex_m (0.3.0)
nanaimo (0.4.0)
naturally (2.3.0)
nkf (0.2.0)
nkf (0.3.0)
optparse (0.8.1)
os (1.1.4)
ostruct (0.6.3)
plist (3.7.2)
pstore (0.2.1)
public_suffix (7.0.5)
rake (13.4.2)
representable (3.2.0)
Expand All @@ -199,11 +202,10 @@ GEM
ruby2_keywords (0.0.5)
rubyzip (2.4.1)
security (0.1.5)
signet (0.21.0)
signet (0.22.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 4.0)
multi_json (~> 1.10)
simctl (1.6.10)
CFPropertyList
naturally
Expand All @@ -218,12 +220,14 @@ GEM
uber (0.1.0)
unicode-display_width (2.6.0)
word_wrap (1.0.0)
xcodeproj (1.27.0)
xcodeproj (1.28.1)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
base64
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
nkf
rexml (>= 3.3.6, < 4.0)
xcpretty (0.4.1)
rouge (~> 3.28.0)
Expand All @@ -235,7 +239,7 @@ PLATFORMS
ruby

DEPENDENCIES
fastlane (= 2.235.0)
fastlane (= 2.237.0)

BUNDLED WITH
4.0.12
Loading
Loading