Skip to content

No way to quiet one gym, area or rule without deleting it #809

Description

@hokiepokedad2

PoracleNG 5.2.1 exposes mutes over HTTP for the first time: GET, POST and DELETE on /v2/humans/{id}/mutes. PoracleWeb.NET has no concept of a mute.

What we already have, and what it is not

Pause Alerts in the user menu is the human enabled flag, toggled through start/stop. It is account-wide, permanent until resumed, and persisted. It is not a mute, and a mute is not a replacement for it.

A mute is narrower on one axis and weaker on another:

  • Scoped. gym, pokemon, area, pokestop, station, tracking (one rule by uid) or everything. Pause Alerts can only do the last of those.
  • Time-boxed. duration_min, defaulting to 60, capped at one week. Pause Alerts has no expiry.
  • Volatile. Held in memory only and cleared by a processor restart. Pause Alerts survives.

So the gap worth filling is "quiet this gym for an hour" or "quiet this one rule this afternoon" — not "go quiet", which already works.

What to build

  • A client over the three v2 calls, capability-gated. There is no v1 equivalent, so this is absent on 5.1.0.
  • Setting a mute belongs where its subject already is: on the alarm card for tracking, and wherever a gym or an area is already named. A separate mutes page that requires a user to retype an identifier is the wrong shape.
  • Somewhere to see and clear active mutes, with one action to end one early. A mute that is easy to set and hard to find is how people end up wondering why they stopped getting alerts.
  • POST returns a replaced flag when a mute for the same scope and value was extended rather than created. Say which happened.

Volatility is a UI problem, not a footnote

A mute vanishes on processor restart. Telling a user "muted until 3pm" and then quietly resuming is a broken promise, and it will happen on every deploy. Either say the expiry is not guaranteed, or do not show a countdown as if it were. Decide before building the surface.

Do not reuse the Pause Alerts banner for this. That banner means one specific thing today, and overloading it would make both states harder to read.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions