Stopped the agent from dropping tool calls mid-turn. Failures fail loudly now instead of going silent.
Three fixes that landed close together. The agent loop used to occasionally drop the reply text when a tool call came alongside it, or exit a turn with an unexecuted tool call still pending. Both fixed, and the loop now throws instead of swallowing the case so it shows up in logs.
Plus a debugging pass on a missing-SMS report: every inbound webhook hit is now recorded before any rejection, so "Sendblue never sent it" and "we rejected it" stop looking the same from our side.