Releases: loopandlearn/LoopFollow
v3.1.0
Manual Notes
LoopFollow 3.1 is released.
Preliminary LoopFollowDocs are now available.
This update brings several valuable enhancements to make your monitoring experience even smoother and more reliable:
🔹 Flexible Tab Bar – Reorder or hide the tabs Remote, Alarms, and Nightscout to suit your preferences. The new “More” menu shows the items that do not fit the tab bar.
- Information in docs: Toolbar Tab Customization
🔹 Override Visibility – Overrides now remain visible even when prediction lines are turned off.
🔹 Recommended Bolus – Improved stability and debouncing to reduce excessive recommended bolus notifications.
🔹 Nightscout Autofill Fix – Better handling of Nightscout token autofill for a smoother setup process.
🔹 Nightscout View enables pinch to zoom
🔹 Snoozer Screen improvements:
- If you have Display Name enabled, looper's name shows up on Snoozer screen
- Snoozer screen font is bigger and snooze button easier to see
🔹 GitHub Build Timing – Build time rescheduled to improve reliability of automatic builds.
What's Changed (Automatically Generated)
- Reset Settings Navigation on Tab Switch by @bjorkert in #429
- Optimize RemoteViewController updates and refresh view on tab selection by @bjorkert in #430
- Fix Nightscout token autofill by adding textContentType by @bjorkert in #431
- Avoid starting an action at xx:00; when GitHub resources can be impacted by @marionbarker in #436
- Debounce alarm checks and improve scheduling logic by @bjorkert in #432
- Ensure overrides are visible when predictions are disabled by @bjorkert in #438
- More menu by @bjorkert in #437
- Fixes #154: Enable zoom in Nightscout view by @bjorkert in #439
- Enlarge BG text and add optional display name by @bjorkert in #441
- feat: Enhance snooze button visibility with larger size and orange color by @bjorkert in #443 expanding on an idea from @mikebash
Full Changelog: v3.0.0...v3.1.0
v3.0.0
Manual Notes: Major release from 2.8 to 3.0
LoopFollow 3.0 is a major update focused on usability and new features.
This version includes a complete rewrite of the Alarm User Interface, making it much easier to navigate and configure.
Here's a look at what's included:
- User can create multiple copies of the same type of alarm, each configured with unique settings and names, displayed alarms are characterized by type (snoozed, active, inactive)
- If you do not use Remotes, the second button on the main toolbar is restored to take you to Alarms
- Word wrap is now applied to Notes from Nightscout; these could be difficult to read in the LoopFollow display
- Improved security: Passwords and Token are hidden from view by default
- SpeakBG is enhanced: more reliable when LoopFollow is in the background using the bluetooth background method
- Trio Override is displayed appropriately (not cleared when it should not be)
- New alarm, Looping App Expire (currently only for Trio)
- Landscape mode support, can be toggled off
- Snoozer screen now has an optional Emoji illustrating the current bg value
- Lots of under the hood refactoring, cleanup and modernization - The Eureka framework is now 100% replaced by Swift UI
Please note:
- 📲 The app now requires iOS 16.6 (up from 15.6).
- 🧑💻 For those who built the dev branch specifically for the new alarm features, you might want to consider switching to the main branch now.
Thanks for being part of our community! We hope you enjoy the update.
What's Changed (Automatically Generated)
- Support for Trio External Insulin Display by @bjorkert in #409
- Add more comments at pauses for release.sh [ci skip] by @marionbarker in #415
- RemoteViewController: suppress duplicate published emissions to stop… by @bjorkert in #412
- Improved Alarm system, Snoozed screen, Landscape and more by @bjorkert in #408
- Wrap note texts by @bjorkert in #416
- Auto-scroll to selected tone in picker by @bjorkert in #418
- Restore Speak BG for Bluetooth and Improve Announcement Logic by @bjorkert in #421
- Implement Secure Inputs for Dexcom and Nightscout Credentials by @bjorkert in #419
- Make Second Tab Configurable by @bjorkert in #420
- Clear override text conditionally based on device by @bjorkert in #423
- Prevent stale "Not Looping" alarms by @bjorkert in #424
- Fix: Honor the global "Snooze All" setting by @bjorkert in #425
- Improve initial setup and UI reactivity by @bjorkert in #426
Full Changelog: v2.8.0...v3.0.0
v2.8.0
Manual Notes
This update to LoopFollow, v2.8.0:
- fixes uncommon crash reasons (PR #407 and PR #410)
- enables a new builder to run Add Identifiers (PR #411) so they can use the Browser Build method
In addition, a release script was added to assist the developers when they are releasing a new version. It automates some of the process used to ensure LoopFollow_Second and LoopFollow_Third have the same updates as LoopFollow. These changes (PR #413 and PR #414) have no effect on the function of the LoopFollow code.
What's Changed (automatically generated)
- Fix crash when ShareClient returns nil result without error by @bjorkert in #407
- Dexcom empty data guard by @bjorkert in #410
- Use a special version of fastlane to enable Add Identifiers by @marionbarker in #411
- Add a script to assist in release process for LoopFollow, LoopFollow_Second and LoopFollow_Third by @marionbarker in #413
- remove --3way and add pauses by @marionbarker in #414
Full Changelog: v2.7.0...v2.8.0
v2.7.0
Manual Notes
This update to LoopFollow, v2.7.0 does not affect the LoopFollow code itself but it does:
- Enable people to use Browser Build again when their Identifiers are already configured
- Before this update, the actions that automatically renewed certificates were not working, so some people were getting build failures - the update to fastlane 2.228.0 fixes this problem
- The GitHub action
Add Identifier
will still fail with this version - The failure is because Apple removed a capability in May 2025 and the fastlane code, used to link GitHub actions with Apple Developer credentials, is only partially updated
- If necessary, the Identifiers can be manually added to the Apple Developer site
- Automatically increment the dev version by one number for each change compared to the released code
- Whenever new features are merged to the dev branch, the version number is now incremented
- Released versions are M.N.0
- As soon as a change is made to the
dev
branch, it becomes M.N.1 for the first change, M.N.2 for the next change, etc.
Browser Builders: Disable the DO NOT RUN
Action
The process by which the dev version number is automatically incremented by the developers uses a GitHub action - similar to what is used for browser build. Once you update to this release, you will see an extra job as shown in the graphic below.
Optional
After you follow the steps in the graphic to disable the workflow, you won't see a skipped job in your fork when you do your next update.
- Select the [DO NOT RUN] action
- Click on the three dots at upper right
- Choose to disable the workflow
What's Changed (Automatic Notes)
- Add auto bump of dev version on push by @marionbarker in #401
- Update to fastlane 2.228.0 by @marionbarker in #406
Full Changelog: v2.6.0...v2.7.0
v2.6.0
Manual Notes
This update brings in one bugfix. PR #402
When we previously fixed a bug for Trio that was causing a crash, we inadvertently created a display bug for Loop. With this release, overlapping (Trio) and indefinite (Loop) overrides are now handled correctly for both OS-AID systems.
What was the problem?
- indefinite overrides created by Loop were incorrectly displayed as 5-minute events until they ended
- once terminated, they were updated with the correct duration and rendered properly
- with this update, they are rendered properly the entire time they are active
What's Changed (automatically generated)
Full Changelog: v2.5.0...v2.6.0
v2.5.0
Manual Notes
This update brings in one bugfix: PR 400: Fix for crashes related to overrides
In plain language:
- The manner in which override segments were displayed sometimes caused LoopFollow to crash
- The method was updated to prevent crashes.
What's Changed (Automatically Generated)
Full Changelog: v2.4.0...v2.5.0
v2.4.0
Manual Notes
Enable the Trio Remote Command functionality to be used when building LoopFollow with the main (released) branch.
This capability was available for testing with the closed beta testing for Trio; but to avoid confusion, it was not displayed as an option when using an app built from the main branch of LoopFollow.
Now that Trio 0.5.0 and newer is available at nightscout/Trio; users will want to be able to access those settings from a released version of LoopFollow.
This update makes that possible.
To use Trio Remote Control with Trio. Must build using the dev branch of Trio.
To configure Trio Remote Control, see https://triodocs.org/configuration/settings/features/remote-control/.
What's Changed (Automatically Generated)
Full Changelog: v2.3.1...v2.4.0
v2.3.1
Manual Notes
Starting April 21, 2025, a GitHub Build Action error in the Check Upstream and Keep Alive step was observed for the Open-Source apps that use that feature. This included Loop, Trio, LoopFollow, LoopCaregiver, and iAPS.
These apps relied on a third-party repository that kept our forked app repositories alive longer than the 60-day limit that GitHub established. GitHub disabled that repository for violating the GitHub terms of service. The loss of that repository caused all builds, manual or automatic to fail in the Check Upstream and Keep Alive section. This happens before the build action syncs the fork.
In this release, the LoopFollow repository was updated to resolve this error.
You will need to manually Update the Fork
and then use Actions to Build your app.
Other changes include
- modifications to what is found in the log
- detection of stale enacted time stamps, which are ignored
- addition of the charging indicator (that works only with Trio closed beta - coming soon to Trio)
What's Changed
- Log app version and build details by @bjorkert in #389
- Skip task scheduler logging by @bjorkert in #392
- Add logging for remote commands by @bjorkert in #390
- Ignore old enacted timestamps by @bjorkert in #391
- Display charging indicator by @bjorkert in #393
- disable keepalive-workflow because the repo is no longer available by @marionbarker in #397
Full Changelog: v2.3.0...v2.3.1
v2.3.0
Manual Notes
The first automatic build for LoopFollow and it has automatic certificate renewal included:
- Be sure to add the Variable 'ENABLE_NUKE_CERTS` and set it to true if you haven't already done so
- See LoopDocs: Add Variable
What's Changed
- Omnipod DASH heartbeat by @bjorkert in #378
- Auto update and build LoopFollow on schedule, auto renew certificates by @marionbarker in #383
- Adjust ISF Unit Detection Threshold from 15 to 16 by @bjorkert in #386
Full Changelog: v2.2.12...v2.3.0
v2.2.12
Manual Notes
LoopFollow 2.2.12 was released just one day after LoopFollow 2.2.11.
- A recent code change introduced crashes in recent versions.
- We believe we've now identified the source of the issue and have fixed it.
We're sorry for the inconvenience and appreciate your patience. Please update and rebuild the app for the best experience. Thanks for your support!
More Details
The issue was caused by the timer being accessed from both the main thread and the queue handling tasks, leading to race conditions. The fix replaces it with a DispatchSourceTimer, which runs on a dedicated dispatch queue, ensuring the timer is only accessed from the correct thread.
What's Changed
Full Changelog: v2.2.11...v2.2.12