Skip to content

Releases: loopandlearn/LoopFollow

v4.2.0

25 Oct 20:42

Choose a tag to compare

Manual Notes

LoopFollow v4.2.0 was released on 25 October 2025

The main change is to streamline and enhance the Browser Build action (beyond what was supplied with v4.1.0):

  • rearrange the order so the check whether to build every Sunday takes a few seconds
    • longer processes are skipped when build is skipped (either no updates are detected or it is not the second Sunday of the month)
  • remove the concept of alive branches
  • remove the requirement that your fork name match the upstream repository name
  • enable any branch in your fork to be updated if the upstream repository has the same branch
    • if you choose to have a special branch in your fork set to default, the automatic check for updates works for that special branch

Other minor updates are housekeeping items:

What's Changed

  • Revise Browser Build to Remove Alive Branches by @marionbarker in #477
  • Expand and streamline build action; by @marionbarker in #480
  • BLE: Delay reconnect 2s after disconnect by @bjorkert in #467
  • Alarms: stamp 'last checked' on completion to avoid false positives by @bjorkert in #471
  • RemoteSettings: exclude Loop APNS from Team ID mismatch check by @bjorkert in #473

Full Changelog: v4.1.0...v4.2.0

v4.1.0

12 Oct 21:51

Choose a tag to compare

Manual Notes

LoopFollow v4.1 is a minor update of v4.0 that only affects people who use Browser Build.

The Browser Build schedule has been configured properly this time.

Every Sunday just after 10 am UTC, LoopFollow will request the build_LoopFollow action be executed.

  • If there is an updated version of code, a new build will be attempted
  • If it is the second Sunday of the month, the build will be attempted regardless of whether there is an update

You are responsible for making sure your Apple Developer License is valid with agreements signed

You are responsible for updating the LoopFollow Identfiers to have Push Notifications (new with v4.0).

You are responsible for installing the new build from TestFlight onto your phone

What's Changed

Full Changelog: v4.0.0...v4.1.0

v4.0.0

07 Oct 02:40

Choose a tag to compare

Manual Notes

This is a big release for LoopFollow and contains a breaking change.

Breaking Changes

All Users

  • You must add Push Notifications to LoopFollow identifiers before you will be able to build LoopFollow 4.0.0

Followers of Trio Users who use Trio Remote Control

Missing Features

Trio Users

We made a mistake. The Rec. Bolus feature for LoopFollow was reporting a value from the Trio app that was never meant to be used as a recommended bolus. (The one from Loop is OK.)

  • Users viewing a Trio URL will notice the Rec. Bolus display is always blank
    • Updates are planned for Trio and LoopFollow to provide the last recommended value from the Trio app

New Features

All Users

Modify the automated build times on GitHub to check for updates every Sunday and build 2nd Saturday of each month

  • This is another attempt to prevent GitHub not being available when our community has their builds scheduled

There are new snooze features

  • Use the volume buttons to snooze an alarm
  • Snooze status is visible on the snoozer screen briefly when you first open it with easy access to modify snooze settings

You can copy the remote control settings from one phone to another.

  • When Phone 1 is configured to follow your looper with remote control configured
  • Set up Phone 2 to follow the same URL - you don't even need a token
  • On Phone 1, under Remote Control Settings, select Export Remote Settings as QR Code
  • Use Phone 2 to take a picture of the QR code and voila - Phone 2 is now configured to follow and send remote commands to your looper

Loop Users

Overrides have a nice new modal

  • This makes it easier to see the override configuration
  • When you select an override with indefinite duration, you can modify that to a fixed duration using 15 minute increments

Trio Users

See Real-time Notifications for Trio for details about real-time notifications for remote command sent to Trio

What's Changed

  • Change input fields to be masked instead of invisible in screenshots by @codebymini in #458
  • Add passcode fallback for Loop APNS insulin by @codebymini in #460
  • upgrade rexml per dependabot security warning by @marionbarker in #464
  • Add option to silence alarm with volume button by @codebymini in #447
  • Snoozer Bar — quick global “Snooze all” in the snoozer view by @bjorkert in #459
  • Add modal for selecting duration of overrides for Loop by @codebymini in #457
  • Share settings (nightscout url and remote settings) with QR code by @codebymini in #452
  • Align remote errors by @codebymini in #462
  • Shift GitHub to check for updates every Sunday and build 2nd Saturday of each month by @marionbarker in #465
  • Remove usage of insulinReqMetric by @bjorkert in #468
  • Add small delay to TOTP warning when sending carbs/insulin by @codebymini in #469
  • Enable APNS feedback to LoopFollow for Trio remote commands by @bjorkert in #445

Full Changelog: v3.2.0...v4.0.0

v3.2.0

16 Aug 04:00

Choose a tag to compare

Manual Notes

LoopFollow version 3.2 is released.

Substantive changes:

  • LoopFollow now supports remote control for Loop using Apple Push Notifications system (similar to Trio)
    • Remote control of the Loop app for carbs, bolus and overrides is available from LoopFollow
    • For those who tested this when it was in the dev branch, a new check is added to prevent reuse of a One-Time Password
  • LoopFollowDocs were updated to go with this new version of code
  • LoopFollow Browser Build was updated to use Xcode 16.4 when Xcode 16.2 cause build failures
  • BugFix:
    • Correct logic for missed reading alert so it works again

What's Changed (Automatically Generated)

New Contributors

Full Changelog: v3.1.0...v3.2.0

v3.1.0

22 Jul 03:45

Choose a tag to compare

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.

🔹 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

07 Jul 17:05

Choose a tag to compare

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

26 Jun 23:15

Choose a tag to compare

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

12 Jun 00:02

Choose a tag to compare

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.

  1. Select the [DO NOT RUN] action
  2. Click on the three dots at upper right
  3. Choose to disable the workflow

disable-DO_NOT_RUN-action

What's Changed (Automatic Notes)

Full Changelog: v2.6.0...v2.7.0

v2.6.0

31 May 23:11

Choose a tag to compare

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

22 May 15:15

Choose a tag to compare

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