Deduplication must consider which device is in use
Aliases: active device · notification routing · watch takes notifications
What it is
Someone is at an unlocked computer; the same notification still vibrates the phone in a pocket and the watch again. Dedup that only means “keep one path, any path” keeps the wrong path. Dedup has to see which device is in use: the one being looked at and operated gets the sound or banner; the others stay quiet. When the iPhone is locked and the watch is on the wrist, notices moving to the watch is this rule; when the computer is awake and foregrounded, the banner should stay there. It chooses who gets the one path. It is not the cap on how many times something may ring, and not how residue clears after a read.
Why it happens
“In use” is a short, observable window: screen on, unlocked, recent input, on-body, or within viewing distance. A delivery system that ignores those signals can only broadcast down the device list or follow a fixed priority (phone always first). Fixed priority sounds in the wrong place on the body: the person is typing, the buzz is in the other pocket. Activity signals lag and misfire—the screensaver has not yet dimmed and the person has left; the watch mis-detects wear. Routing therefore needs hysteresis: a device just left still counts as in use for a few seconds; a device that just lit needs a keystroke or an unlock before it takes notices. When several are in use (computer awake, watch on the wrist), one total order is required—“keyboard activity prefers the computer, otherwise the wearable”—or the result is simultaneous ringing again. One wrong route and people disable the whole class rather than edit “which device is first.”
Where it stops holding
Devices with no reliable in-use signal (a kitchen tablet that stays on, a TV that is casting) must not swallow phone alerts as “in use,” or people in another room will miss them. Calls, alarms, and turn-by-turn succeed only if the body feels them; a wearable may still haptic while the computer is in use, because hands are on the keyboard and eyes may not leave the document. Privacy postures (phone face down, Focus) invert the signal: send to the more private device, not the largest screen. When signals conflict (computer unlocked but idle, phone just picked up), prefer the device with the most recent explicit input, and allow a manual “send it here” after one misroute.
Applying it
- Keep a short “in use” flag per device: unlocked with input in the last few seconds, or on-body true. On delivery, only the highest-priority one of those makes sound or a banner.
- Publish the tie-break order (for example: computer with keyboard activity > watch being worn > unlocked phone > others) and make it editable in settings, not buried inside a mirroring toggle.
- Add a few seconds of hysteresis on in-use transitions so a hand leaving the keyboard does not bounce the next notice to the phone and back.
- Verify: send a test notice while the computer is unlocked and being typed on—the banner should appear there, phone and watch should not vibrate. Lock the computer, wear the watch, send another—it should move to the watch. Pick up and unlock the phone, send a third—it should go to the phone. Extra sound on any step, or sound on a device not in use, is a routing failure.