- Ya
- 14 Agosti 2026, 18:13 UTC
- Mwandishi
- kamo
- Ahadi ya
- ace800d
There were two. The pair near the top of the page silenced the in-app cards; the pair at the bottom silenced the missed-message emails. Nothing on screen said they were different things, so a member setting quiet hours had to notice the second set existed and set it too — and the reasonable assumption, that the one they had already filled in covered the evening, was wrong. The window at the top is now the only one, and it writes both. They are stored by different services — in-app hours on the member's notification preferences, email hours on the ui-preference MediaService reads — so the control writes twice, which is exactly the plumbing a member should never have to know about. The two stores are reconciled once, on load, because a member can arrive with a window on one side and not the other. Whichever is set wins: an email window is adopted when the in-app side has none, so nothing anyone configured is thrown away, and otherwise the in-app window is pushed outward so the single control on screen is telling the truth about both channels. The email preference is owned by the panel now rather than by its own section. Two components debouncing writes to the same stored key would race and could persist half a shape, and MediaService reads an absent field as a default the member never chose.