Four bugs this week had the same shape: the app said one thing internally and did another, and nothing crashed to tell me.
The wake word, "Jarvis", would silently stop working the moment you left the Home tab, because the listener was scoped to Home’s own view lifecycle instead of the app’s, so switching tabs quietly killed it with no error, no toast, nothing. Voice replies stopped being spoken entirely, because the Settings toggle for "speak replies" existed in the UI and was completely ignored by the code that actually calls speak(). Attendee lists on calendar events collapsed RSVP status down to a bare name string in two separate places, the calendar view and the Day Ahead agenda, and in the second one an object shaped attendee would silently drop the entire agenda item rather than just losing the RSVP badge. And every voice error, whatever the actual cause, rendered as the same bare word under a heading that repeated it, because the display code read the wrong field of the error state, so a denied microphone permission looked identical to a dropped network connection.
None of these needed a debugger to find, they needed someone to actually use the feature the way a normal person would and notice it was wrong. Also fixed the same week: native Home was quietly missing fields the API had been sending all along, body rings, Whoop strain, MorphoScan composition, the Day Ahead pre brief, because they were documented in the parity audit but never actually added to the shared context model.