* fix: prevent schedule pool connection exhaustion Schedules were disabling themselves after upgrading from v1.605.0 to v1.614.0 due to pool connection deadlock. The root cause was fetch_authed_from_permissioned_as acquiring a pool connection inside push() while a transaction already held one, exhausting the pool under pressure. Fix: pre-compute Authed before db.begin() for the normal path, and reuse the transaction connection via fetch_authed_from_permissioned_as_conn for the on_behalf_of_email path. Peak pool usage drops from 2 to 1 for all schedule push paths. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: replace pool exhaustion tests with comprehensive schedule push tests Replace the 16 pool-specific tests with 19 tests covering all schedule push code paths: script/flow scheduling, on_behalf_of_email (script and flow), retry wrapping, duplicate detection, invalid timezone/cron/args, script/flow not found, paused schedules, clock shift detection, disabled schedule, path mismatch, push failure disabling schedule, and trigger metadata. Also simplify the obo_authed pattern in push_scheduled_job to use a single match assignment instead of two bindings with .or() chaining. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
4.1 KiB
4.1 KiB