f63c9559c4
- creation binds to the token's env scope; client mismatch is rejected; the chat snapshot is never consulted (watches + alert endpoints) - the 3-active-watch cap is atomic per chat (advisory lock + concurrent test) - tick generation travels in the payload and is claimed atomically — a retry can't fork the chain; the check endpoint no longer bumps the counter - unknown 401/403 on check retries instead of stranding an active row; a 5-minute sweeper expires overdue watches as unverified_at_expiry - chat deletion cancels its watches in one transaction - unread wake signals require delivered status - the silent dashboard watch-creation action is removed - alert fanout is one job per channel with a stable webhook event id - expired banners with terminal_unsatisfied say the condition can no longer happen instead of 'no answer'