Database Schema Changes
- Migration v31.0 updates the
queue_contact_for_segment_recomputationtrigger function on every workspace database to short-circuit when the insertedcontact_timelinerow is itself a segment membership event (kind IN ('segment.joined', 'segment.left')).
Fixes
- Fix:
queue_contact_for_segment_recomputationtrigger no longer re-enqueues contacts when the insertedcontact_timelineevent is itself a segment membership change (segment.joined/segment.left). Removes a self-loop where every membership write re-queued the same contact. - Fix: Recurring tasks dispatched via HTTP now write
timeout_afterin UTC. The column isTIMESTAMP WITHOUT TIME ZONEand the scheduler compares it againsttime.Now().UTC(); on non-UTC hosts the local-time value caused the task to appear "still running" for the host's UTC offset. Same fix applied to the broadcast-pausenext_run_after. - Fix:
GetWorkspaceConnection's pool health check now uses an isolated context forpool.PingContextinstead of the caller's. A caller-context cancellation no longer triggers pool eviction.