What changed

Every DopaLoop release, what it changed, and why. No marketing vocabulary, no roadmap promises, just what actually shipped.

Releases and what they actually do

This page is my changelog with every version, what it changed, and why. I am not trying to sell you anything here. I describe what actually shipped, including the bugs I fixed and the things I removed from older versions because they technically did not deliver what I had promised. If something here looks off, write me.

  1. v1.2.0

    Live on the App Store

    Tell me in one sentence how your day went instead of making eight taps. Plus anchors via NFC or QR code and Apple Health right in onboarding.

    One sentence instead of eight taps

    Tell me in one sentence how your day went. "All done, it was good." Or "nothing today." I propose what that means for the habits you had planned, you tap once, and that is it. Nothing is written until you confirm, and afterwards you get five seconds to undo. If you record in the app, recognition happens on your device. Through Siri, Apple recognises the sentence and hands me only the text.

    The rating comes along too

    When you talk about exactly one thing, I pick up the rating as well: "Just went running, it was good" records a 4 instead of a neutral value. With several I leave it, because one can have gone well and the next one badly. And if I cannot make anything of your sentence, I say so and show you what I heard, rather than doing nothing at all.

    The bad day costs exactly what the good one does

    Same view, same labels, one tap. No struck-through habits, no "0 of 5", no error color. If the sad answer cost more than the happy one, you would stop giving it.

    Anchors, Apple Health, and two fixes

    Anchors are new: NFC stickers and QR codes that stand for a habit. One on the pill box, one by the front door. Tapping it records the check-in. You can print the QR codes straight from the app, page-sized or small to cut out. Apple Health now enters sleep, steps, and workouts on its own, and I offer that during onboarding instead of leaving it three levels deep in Settings. Siri listens for "Day check-in in DopaLoop". Fixed: if you went through "Browse templates" during onboarding and picked a goal there, you ended up with an empty app, nothing was created. Sorry if that was you. And the evening notification buttons used to do nothing, that was a bug, it is gone.

  2. v1.1.19

    Live on the App Store

    Onboarding is shorter, and the progress indicator now counts intensity, not just whether you checked in.

    One step fewer in onboarding

    The check-in at the very end is gone, because almost everyone skipped it, and they were right to: there is nothing to report about a habit you created thirty seconds ago. Your first real check-in now shows a short note next to the scale explaining why there are five levels instead of a checkbox. Nothing to dismiss, it disappears on its own.

    A number that finally means something

    The progress indicator used to count only whether you checked in, not how much you managed. A 5 and a 1 looked the same. That is fixed, and it applies retroactively to your whole history. If you do a 1 every day, you stay steady and are not shown as slipping. Only real change moves the needle.

  3. v1.1.18

    Live on the App Store

    Onboarding ends with a 14-day timeline instead of a sales screen, and without a subscription you keep a real app.

    A gentler start

    Onboarding now ends with a simple 14-day timeline instead of a sales screen, so you can dive straight into your first goal.

    Room to grow without a subscription

    Even without a subscription afterward, you keep a real app: one goal, three habits, and check-ins always work, no matter what. No empty screen after onboarding.

  4. v1.1.17

    Live on the App Store

    Brain Dump thoughts are never lost, getting started after onboarding feels gentler, and the paywall appears at most once a day.

    Brain Dump loses nothing anymore

    Your Brain Dump thoughts are never lost now, no matter your subscription status. Before, a paywall gate could swallow a voice recording or text before it was saved.

    Fewer interruptions

    Getting started right after onboarding feels gentler, and the app asks about a subscription at most once a day, not several times in a row.

  5. v1.1.16

    Live on the App Store

    Polish: small improvements and stability fixes to make getting started with DopaLoop even smoother.

    Polish

    Small improvements and stability fixes to make getting started with DopaLoop even smoother. No new features, just less friction.

  6. v1.1.15

    Live on the App Store

    New onboarding, Gentle Mode, weekly habits, and RSD First Aid without installing.

    New onboarding

    You pick your goal first, confirm a few habits that fit, and make your first entry right away. No test, no pressure. This is what DopaLoop feels like from the start.

    Gentle Mode

    On hard days the app eases off automatically. Streaks and percentages quietly disappear, and the next day everything is back to normal. You will find it in Settings.

    Weekly habits

    Some things you collect over the week, like three times per week. Which day does not matter. No day is required.

    RSD First Aid without installing

    A link opens the four steps right when you need them. Also fixed: a bug that could freeze the dashboard on iOS 26.

  7. v1.1.14

    In TestFlight

    Real Alarm is finally selectable. Tapping the card now triggers the iOS authorization dialog instead of just sitting there.

    The dead-end bug from v1.1.13

    On a fresh iOS 26 device, the first tap on "Real Alarm" did nothing. The card was dimmed because AlarmKit authorization was still pending — but the tap that should have asked for that authorization never went through. SwiftUI swallowed the tap before the auth flow could run. Dead end. Now: a tap surfaces the iOS dialog, a yes activates the tier immediately, a no leaves your previous choice in place.

    On iOS below 26 the card stays hard-disabled

    AlarmKit simply does not exist there. The card is visible so you know it will be available on iOS 26, but it does not respond to taps.

  8. v1.1.13

    In TestFlight

    Reminder tier configurable per habit — even when the habit is attached to a Morning or Evening Routine.

    Pick the tier where you need it

    Before, you could only pick the tier (Gentle, Time Sensitive, Real Alarm) for habits with a custom reminder time. If your habit was attached only to a routine, the choice was hidden in global Settings — with no hint from the habit screen. Now you see a dedicated tier picker for each active source inside the habit (Morning Routine, Evening Routine, custom time). That way you can escalate one important habit to Real Alarm without making the whole routine louder for every other habit in it.

    Global default still applies

    The setting in Notifications is still the default for every participating habit. Picking a tier on a habit only overrides that one habit — everything else keeps following the global default. A "Reset to global default" button keeps the choice reversible.

    Anchor concept removed

    The old description "Real Alarm — for anchor routines only" hinted at a feature that never existed in the code. There was no "anchor habit" flag, no toggle, no gate. The new text says what it means: "Breaks through Silent Mode too. Reserve this tier for a few important routines."

  9. v1.1.12

    In TestFlight

    The tier names collided between "how loud" and "how persistent" — the persistence tiers now have distinct names.

    Duplicate names fixed

    With the two axes from v1.1.8, the picker suddenly showed "Gentle" twice and "Time Sensitive" twice — once for the loudness of the first reminder, once for the persistence of the repeats. Confusing. The axes are now clearly separated: loudness = Gentle / Time Sensitive / Real Alarm. Persistence = Just once / Repeats / Frequent / Relentless.

    More honest descriptions

    In v1.1.8 the tiers "Frequent" and "Relentless" had the same 15-minute cadence as "Repeats". The descriptions now say so plainly, instead of promising a tighter cadence the code does not actually deliver. If you had picked a tier before, the behavior is unchanged — only the name is clearer.

  10. v1.1.11

    In TestFlight

    Two correctness fixes: the authorization dialog was popping up at launch, and stale AlarmKit alarms were lingering after a tier change.

    No more authorization dialog at launch

    In v1.1.10 the AlarmKit authorization dialog appeared right at the first app launch. The cause was an observer subscribed to AlarmKit status changes during app init — and iOS interpreted that subscription itself as an authorization request. The observer is gone. Instead: a synchronous read at startup (which does not trigger the dialog) plus a manual refresh when you bring the app back to the foreground. The dialog now only appears when you actually tap "Real Alarm".

    Stale alarms cleaned up when you switch tiers

    If you downgraded a habit from "Real Alarm" to "Time Sensitive", the old AlarmKit alarm stayed armed — alongside the new notification. You could have been reminded twice. Now switching tiers cleans up the other backend before scheduling the new one.

  11. v1.1.10

    In TestFlight

    Lock Screen buttons on AlarmKit alarms: Done and Skip today work right from the lock screen.

    Action buttons on the alarm alert

    When a "Real Alarm" (iOS 26+) goes off, you can now tap Done right on the Lock Screen — the habit is checked off with default intensity — or Skip today, which stops the alarm without breaking your streak. Both actions run via App Intents, so you do not need to open the app.

  12. v1.1.9

    In TestFlight

    AlarmKit is in. On iOS 26+ you can now actually pick "Real Alarm" — and the alarm then breaks through Silent Mode too.

    What AlarmKit is

    AlarmKit is Apple's new framework for interruption-capable alarms — the same category as the system Clock app. Unlike regular notifications, they ring through Silent Mode and Focus too. iOS requires its own authorization for them, granted per app.

    Where it lands in DopaLoop

    The "Real Alarm" tier no longer falls back to "Time Sensitive" — it uses AlarmKit directly. On first tap, iOS asks for authorization. If you decline, the habit falls back to "Time Sensitive" and the tier shows as dimmed.

    What changes on iOS below 26

    Nothing. The "Real Alarm" card stays with the "iOS 26+" hint and is not selectable. Existing habits behave exactly as before.

  13. v1.1.8

    In TestFlight

    Two separate tiers per habit: how loud the first reminder should be, and how persistent the repeats become.

    Two axes instead of one

    Before this release the tier of a habit was a single dial. You picked between Gentle, Time Sensitive, Persistent, and Live Activity. The problem: the loudness of the first reminder and the frequency of the repeats are two separate things that were trapped inside one selection. Now there are two pickers: one for "how loud should the first reminder be" (Gentle, Time Sensitive, or on iOS 26 a real alarm) and one for "how persistent should it get if I do not check in". Both work independently. Existing habits keep their behavior exactly. If you had picked Persistent before, you will see no difference.

    Routine reminders can be time-sensitive now too

    In Settings you can set morning and evening routines to Gentle or Time Sensitive separately. Previously only habit-specific reminders could use the time-sensitive channel. If you want your morning routine to break through Focus modes because it matters that much, you can now set it.

    Preparing for real alarms (iOS 26+)

    You will see a third option "Real Alarm" with an "iOS 26+" badge in the tier picker. It is visible but not yet selectable. The next update enables this option and it will then break through Silent Mode too, for anchor routines like medication or wake-up only. Apple does not require a separate application for this capability (despite rumors to the contrary), only an honest usage description in the app configuration.

    Under the hood

    The reminder system got a new routing layer (ReminderScheduler) that decides between standard notifications, time-sensitive notifications, and alarm mechanisms. None of that is visible to you directly, apart from the new pickers. But future versions can build on this without sprinkling AlarmKit branches across the rest of the code.

  14. v1.1.7

    Live on the App Store

    Three fixes from the Issue #126 audit: Live Activity no longer triggers on save, permission prompt for routines, App Store copy aligned again.

    Live Activity no longer appears too early

    The Lock Screen Live Activity used to appear when you saved a habit, not when the reminder was due. Same shape as the watch haptic fix from v1.1.6: a side effect firing at the wrong time. Full Lock Screen support is coming with AlarmKit (iOS 26+).

    Permission prompt for routine reminders too

    If you enabled only the morning or evening routine for a habit, DopaLoop previously did not ask for the notification permission. Your routine reminders could silently never fire. The app scheduled them, iOS quietly dropped them because the permission was missing. The soft prompt now appears in this case too.

    App Store description aligned again

    The tier names in the App Store description no longer matched the ones in the app after I had renamed them in v1.1.6. The store now reads what you actually see in Settings.

  15. v1.1.6

    Live on the App Store

    Honest reminders. Watch haptic bug fixed, misleading tier names corrected, RSD-friendly hint when too many sources are active.

    Watch haptic no longer fires on save

    The Apple Watch used to vibrate when you saved or edited a habit, not when the reminder was actually due. That haptic was firing at the wrong place and should never have been there. A local notification cannot run code in the background, so it cannot trigger a watch haptic at fire time. I described this more honestly: watch alerts come through the system mirror, not through a DopaLoop-specific haptic channel.

    Tier names now say what they are

    The four reminder tiers are now Gentle, Time Sensitive, Persistent, and Live Activity. Previously they were Standard, Time Sensitive, "Time Sensitive + Watch Vibration", and Cheerleader Mode. The old names promised behavior the system did not deliver. I removed watch crescendos and sound chords from the descriptions because I could not guarantee them.

    Hint when too many reminder sources are active

    When you enable morning routine, evening routine, and a custom time for the same habit at once, the app now shows a gentle hint: more reminders does not mean more success. For most habits, one source is enough — usually the morning or evening routine. This is not a block, just a note. If you really need three reminders, you can keep them.

Older versions before v1.1.6 are not listed here. This changelog starts with the reminder refactor, the point where I began checking every UI claim against what the app actually does. Before that point, some descriptions were less honest than they should have been.