Skip to content

Releases: loopandlearn/LoopFollow

v2.3.1

Choose a tag to compare

@marionbarker marionbarker released this 23 Apr 04:04

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

Full Changelog: v2.3.0...v2.3.1

v2.3.0

Choose a tag to compare

@marionbarker marionbarker released this 04 Apr 00:06

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

Full Changelog: v2.2.12...v2.3.0

v2.2.12

Choose a tag to compare

@marionbarker marionbarker released this 11 Mar 19:51

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

v2.2.11

Choose a tag to compare

@marionbarker marionbarker released this 10 Mar 15:45

Manual Notes

📢 LoopFollow 2.2.11 is here! 🚀

This update brings some exciting new features and improvements to make LoopFollow even more reliable and helpful.

Warning - we only thought we had fixed the intermittent crashes with v2.2.11. We tried again with v2.2.12 and we think we got it. So please skip 2.2.11 and build 2.2.12 to get all the new items mentioned here without the crash issues.

Here’s what’s new:

🔋 Battery Drop Alarm – A new alarm that can alert you if the battery is draining faster than usual. Perfect for catching situations like a forgotten flashlight left on!

🎨 Contact Improvements – You can now choose colors for contacts and have the option to display trend and delta in separate contact cards for better clarity.

⏳ Expected BG Delay

  • For Bluetooth heartbeat devices, the expected BG delay value is reported to help you choose the device that provides the shortest delay in BG readings for the looper's CGM
  • This is especially useful if you are saving your old G7 Sensors so you have a choice
  • Pro-tip: note the Bluetooth device name for the G7 Sensor that is in use and when you remove it, write it on the used G7 sensor

🔧 Stability & Logging Enhancements – (we did fix some crash reasons but missed one)

  • ✅ Improved internal task management to reduce crashes.

  • ✅ Added logging when an alarm is triggered to help with troubleshooting.

Enjoy the new features!

What's Changed

New Contributors

Full Changelog: v2.2.10...v2.2.11

v2.2.10

Choose a tag to compare

@marionbarker marionbarker released this 22 Feb 16:16

Manual Notes

  • This release restores the display of prediction lines generated by Trio version 0.2.3 and earlier
    • The prediction lines display for Trio 0.2.3 and earlier was modified by mistake in v2.2.9

What's Changed

Full Changelog: v2.2.9...v2.2.10

v2.2.9

Choose a tag to compare

@marionbarker marionbarker released this 01 Feb 23:17

Manual Notes

Highlights of this update.

  • Add ability to Set and Cancel Overrides on the Loop phone (when properly configured)
  • Add ability to use an external bluetooth device (such as RileyLink or expired Dexcom device) to act as a heartbeat and save phone battery while making alarms more reliable
  • Add a logging capability with files that can be examined or shared
  • Various bug fixes and code improvements

Please refer to the Loop and Learn documentation page for more information on how to configure and use the LoopFollow app.

What's Changed

  • Update Browser Build files to fastlane 2.225.0, macos 15 and Xcode 16.2 by @marionbarker in #346
  • Fallback on suggested if enacted is not present by @bjorkert in #345
  • Fix crash by safely handling optional casting for ‘duration’ by @bjorkert in #347
  • Fix date parsing for Temp Basals using ISO8601DateFormatter by @bjorkert in #350
  • Bluetooth Heartbeat by @bjorkert in #351
  • Bugfix, show delta string with +- sign in notifications by @bjorkert in #367
  • Prevent Rec. Bolus Alarm from Repeating by @bjorkert in #364
  • Limit displayed override duration to 'Hours of Prediction' after current time by @bjorkert in #363
  • Enable Setting and Canceling Loop Overrides by @bjorkert in #362
  • Improved Duplicate Handling in Nightscout BG Data Processing by @bjorkert in #365
  • Alert missed reading stepvalue change by @bjorkert in #366
  • Adapt LoopFollow to Trio 1.0’s Updated Device Status Upload Behavior by @bjorkert in #368

Thanks also to @dsnallfot for his help.

Full Changelog: v2.2.8...v2.2.9

V2.2.8

Choose a tag to compare

@marionbarker marionbarker released this 23 Dec 21:20

Manual Notes

This year’s Christmas gift from Loop and Learn is the ability to display up to 3 different BG values in real-time on your Apple Watch via LoopFollow. On newer versions of watchOS, calendar updates no longer work, so instead, contact cards are used, where the image updates with the value. Update the app and follow the instructions below to get started.

To use the new Contact Feature:

  1. In LoopFollow Settings/Integrations/Contact, select Enable Contact BG Updates
  2. Search for the Loop-Follow-BG contact.
    • Contact name is based upon the app display name, making it possible to use three instances of LoopFollow showing three different bg values on the watch face.
  3. Add the LoopFollow-BG contact to your Apple watch face using the Watch app on your phone

Merry Christmas & Happy New Year!

Note that many features mentioned in the automated list below are in preparation for the next release of Trio. These features are only available for those doing the private testing for that release and are hidden from people using the released LoopFollow code. The LoopFollow remote support for Trio 0.2.2 is unchanged by these features.

What's Changed

Full Changelog: v2.2.7...v2.2.8

v2.2.7

Choose a tag to compare

@marionbarker marionbarker released this 27 Oct 15:15

Manual Notes

  1. Use Units from the Profile Store Instead of the Top-Level Units
  2. Time Zone Support for Profile Data Based on Looper's Time Zone

Details for 1:

  • The units used within the profile's store (store.units) can differ from the units specified at the main level (profileData.units) when using Loop.
  • Since the units are primarily used for interpreting profile data (e.g., basal rates, carb ratios), it makes sense to prioritize the units specified within the profile store.
  • This change modifies the code to use the units from the profile's default store (store.units) when loading profile data.

Details for 2:

The person running the LoopFollow app can be in a different time zone than the person running the app which is being followed.

  • When the looper is in a different time zone than the LoopFollow user, it's important to use the looper's time zone for accurate schedule-based setting displays (e.g., carb ratio, target range, basal rates).
  • This change updates the code to use the time zone specified in the profile (store.timezone) when determining the current profile data.

Thanks to Odd Stoltenberg for reporting these two issues.

What's Changed

Full Changelog: v2.2.6...v2.2.7

v2.2.6

Choose a tag to compare

@marionbarker marionbarker released this 29 Sep 15:53

What's Changed

Full Changelog: v2.2.5...v2.2.6

v2.2.5

Choose a tag to compare

@marionbarker marionbarker released this 08 Aug 16:45

Manual Notes

This release is a bit bigger than usual. Let’s go through what’s new:

Changes

Item Description
🔔 Alarms Alarms have moved from the tab menu into settings.
📲 Information Display Settings These have been completely rewritten in SwiftUI, resulting in a new layout of the screen. It maintains the same functionality as before, allowing you to enable/disable info display items and rearrange them by pressing and holding.

New Features

Item Description
🔄 Remote Setting and Cancellation of Temp Target for Trio with Presets This new remote functionality is located in the second tab menu position, where Alarms used to be. Note that the remote command requires the roles “careportal, readable” set on the token used. In the future, this space can be also used for setting overrides for Loop users. Temporary targets will appear as an override in the graph, displayed with a green banner, and will trigger the override start/stop alarms if enabled.
🔐 NS Status OK NS Status shows if Read or Read and Write is allowed. Write is enabled if the token has careportal or admin roles.

Info Display Items Improvements

Item Description
💡 Basal Displays both scheduled and current basal rates. If the current basal is the scheduled one, only one value is shown. For example, “0.9 -> 0" for a zero temp basal. This applies to both Trio and Loop.
🕒 IAGE A new item showing insulin age based on the Insulin Cartridge Change event.
📊 ISF For Trio, displays as scheduled -> current ISF. If the current ISF is equal to scheduled, only one value is shown. For Loop, the scheduled ISF is displayed.
📅 Updated For Trio, displays when the information was uploaded to Nightscout.
🎯 Target For Trio, displays as scheduled -> current target. If the current target is equal to scheduled, only one value is shown. For Loop, the current target range is displayed. If the low and high values in the range are the same, it shows as a single value.
💉 TDD For Trio, showing TDD, which only displays if Dynamic ISF is enabled in Trio.
🥕 CR Displays the current carb ratio for both Loop and Trio.

Bug Fixes

Item Description
🔄 Looping Symbol Restored for Trio.

Technical Updates

Item Description
🔧 Resolved Xcode log error message "Logging Error: Failed to initialize logging system. Log messages may be missing.”
📈 Maintain Support Bumped rexml from 3.2.9 to 3.3.2.
📱 iOS 15.6 or newer required Minimum iOS requirement is now 15.6 (up from 13.4). This change is necessary to use newer features in Swift and should not affect any users since all devices capable of running 13.4 can upgrade to 15.6. We aim to keep the requirements as low as possible to support older devices.
🛠️ Mac Build Added support for building with Xcode in detached mode (not in a branch or tag).

Final comments

As usual, this version is available for Mac Xcode and Browser Build (and in up to three instances if you need to follow more than one looper). Don’t hesitate to give us feedback on this new release!

Happy Looping! 😊

What's Changed

Full Changelog: v2.2.4...v2.2.5