trpc-query-used-for-write-violates-idempotency-contract

In tRPC, query procedures map to GET semantics and must be idempotent reads; using a query to trigger side effects (e.g., creating notification rows, sending reminders) is a contract violation. The TaskFlow reminders endpoint was a query that wrote notifications, meaning reminders only fire when a user manually opens the app and the endpoint is hit. Any background trigger (cron, webhook) that needs to write must be a mutation.