Load the latest 80 messages first and fetch older pages on scroll-up via before_id, instead of pulling thousands of rows up front.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align administrator session deletion with the administrator chat view so
sessions surfaced through channel_session_v2 can be removed without a
ui_session_owner row.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace hardcoded Asia/Shanghai with host IANA timezone detection for new scheduled jobs across tools, admin API, gateway cron, and store layer.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce persisted cron/interval jobs, gateway scheduler loop, worker turns,
and admin CRUD/edit UI. Route proactive reminders via the originating chat
channel (WhatsApp vs WeChat), harden Weixin outbound with durable queue and
PG-compatible polling, and fix chat UI to show each scheduled reminder separately.
Co-authored-by: Cursor <cursoragent@cursor.com>