| @@ -75,16 +75,17 @@ | ||
| 75 | 75 | wp_cache_flush(); |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | 78 | ################################################################# |
| 79 | - // Schedule AI Cache Cleanup Cron /////////////////////////////// | |
| 80 | - WPF()->ai_client->schedule_cache_cleanup(); | |
| 79 | + // Reconcile AI crons against current connection state. | |
| 80 | + // Connected tenants get the recurring AI maintenance crons; everyone | |
| 81 | + // else (free installs that never enabled AI, disconnected accounts) gets | |
| 82 | + // stale AI events cleared out of wp_options.cron. | |
| 83 | + WPF()->ai_client->sync_cron_state(); | |
| 81 | 84 | |
| 82 | - // Schedule daily subscription sync (updates cached subscription status) | |
| 83 | - WPF()->ai_client->schedule_daily_subscription_sync(); | |
| 84 | - | |
| 85 | - // Schedule AI Moderation Log Cleanup Cron | |
| 86 | - \wpforo\classes\AIContentModeration::get_instance()->schedule_moderation_cleanup(); | |
| 85 | + // Schedule Email Queue Cleanup Cron (non-AI, always on) | |
| 86 | + WPF()->email_queue->schedule_cleanup_cron(); | |
| 87 | + WPF()->email_queue->reset_stuck_processing(); | |
| 87 | 88 | |
| 88 | 89 | // Note: AI Pending Topics Indexing Cron is scheduled when user |
| 89 | 90 | // enables auto-indexing in the admin settings (disabled by default) |
| 90 | 91 | } |