Skip to content

Apple: per-day wake times are edited on the alarm screen but only move the wind-down reminder #1864

Open

Description

@ryanbr

Found while giving Android per-day wake times for its phone alarm (#1858).

What the setting does today

WindDownNudge.perDayWakeOverrides has exactly two readers:

  • wakeMinutes(forWeekday:) → nudgeMinuteOfDay(forWeekday:) → the wind-down nudge fan-out;
  • SmartAlarmView, which edits them.

Nothing else reads them. The alarm backup itself takes a single time plus a day set:

static func scheduleSmartAlarmBackupNotification(minutes: Int, weekdays: Set<Int>, …)

So a per-day override moves the evening reminder and leaves the wake on the default time.

Why that is worse than not offering it

The control lives in SmartAlarmView — the alarm screen — beside the wake time. Someone who sets "Tuesday 03:30" there has every reason to expect to be woken at 03:30 on Tuesday. They will be woken at the default time instead, with only the reminder shifting, and nothing on screen says so.

That is the same complaint that produced #1858 on Android, one platform over: a user asked for 04:45 on three days and 03:30 on two, could not express it, and reasonably concluded the feature was broken. Here it looks expressible and silently is not.

Options, since this is a scope decision rather than an obvious bug

  1. Honour the overrides in the backup notification. It already fans out per-weekday ids (smartAlarmBackupIds, and it clears both shapes), so the structure is there — each weekday trigger would take that day's own time instead of the shared minutes. This is what Android now does.
  2. Scope the control to what it actually affects — move it under the wind-down section, or label it as the reminder's schedule.
  3. Leave it, if the backup notification is deliberately kept simple because iOS cannot ring a real alarm and the strap buzz is the real wake.

Worth a decision either way: the current state is the one option that misleads.

Related

Also worth noting for whoever picks this up: Android now stores per-day overrides in TWO places — NoopPrefs.smartAlarmDayOverrides (strap, #554) and SmartAlarmStore.targetOverrides (phone, #1859) — while Apple has one. Same "dow:minute" encoding and validation on all three, so there is no format drift, but the question of whether one set should drive both alarms is open on both platforms.

Activity

  1. added a commit that references this issue on Sep 6, 2026
    c455b37
  2. evoveotech commented on Sep 10, 2026

    @evoveotech

    Verified fixed: scheduleSmartAlarmBackupNotification now accepts overrides: [Int: Int] and fans out to per-weekday triggers at each day's own wake time. Explicit #1864 comments in Strand/App/AppModel.swift lines 1372-1395.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions