Push Suppression (Experimental Feature) #150
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds an opt-in push suppression feature to cut down on mobile notifications when a user is actively using another client. It's currently marked as experimental and is disabled by default.
What's new
suppress_push_when_active = true/syncper user in memory./synccalls update that timestamp automatically.Online=> If all match, push delivery is suppressed; otherwise, notifications are sent as usual.
Why the heuristic?
Initially, I tried implementing this using presence alone, but that turned out to be too "sticky".
Presence keeps users marked as
Onlinefor ~5 minutes (default config) after they stop syncing, so mobile notifications stayed suppressed much longer than intended.This update adds a simple heuristic based on the gap since the last
/syncrequest. With this, push notifications resume after ~30 seconds of inactivity without changing presence idle timers or requiring extra presence updates.Notes
Next steps / ideas?