feat: implement scheduling functionality for AgentflowV2 (#5971)
* feat: implement scheduling functionality for AgentflowV2 - Added ScheduleQueue class for managing scheduled jobs using BullMQ. - Introduced scheduleService for creating, updating, and disabling schedules. - Integrated schedule validation and cron expression handling. - Enhanced chatflow service to manage schedules for agentflows. - Added UI components for time and day selection (TimePicker, WeekDaysPicker, MonthDaysPicker). - Updated NodeInputHandler to support new input types for scheduling. - Improved validation for schedule configurations in agentflows. * feat: implement schedule management for agentflows - Refactor ScheduleQueue to utilize executeScheduleJob for job execution. - Add new endpoints for schedule status retrieval and enabling/disabling schedules in chatflows. - Update chatflow service to handle schedule creation, updates, and deletions more effectively. - Introduce DatePicker component for date input in UI. - Enhance CanvasHeader to manage schedule state and toggle functionality. - Integrate schedule validation logic to ensure proper configuration before enabling schedules. - Update dependencies to include node-cron for improved scheduling capabilities. * feat(schedule): refactor schedule services and tests for schedule job - Seperate the utils function from schedule service. - Created comprehensive unit tests for all utility functions in `utils.test.ts`, covering various scenarios for cron expression validation, visual picker validation, and schedule resolution. - Ensured proper handling of edge cases and error messages for invalid inputs. * feat(schedule): remove timestamp in schedule tabes to support sqlite - Change the way to update the existing schedule to avoid typescript issue when building. - Add merge function in mockRepo in schedule service test. * fix(schedule): add nullable to optional entity columns and entity interfaces - Add nullable: true to lastRunAt, nextRunAt, endDate on ScheduleRecord entity to match migration DDL and prevent runtime errors - Add IScheduleRecord and IScheduleTriggerLog interfaces to Interface.ts - Have entities implement their respective interfaces per codebase convention * fixed tests and hide schedule input from package/agentflow * feat: integrate IdentityManager into worker and queue management - Remove supporting cron express with 6 fields (second) - Calculate the prediction usage in cron job * feat: add support for MIN_SCHEDULE_INTERVAL_SECONDS in cron job configuration and validation * fixed broken tests * UI UX fixes for scheduler in dark mode * fix(schedule): remove unnecessary UUID generation in createOrUpdateSchedule * adds required scheduleInputMode column with text/form/none variants, ChatType.SCHEDULED, trigger-logs endpoint + drawer UI, IANA timezone dropdown, and dark-mode UX polish. * add deleteScheduleTriggerLogs endpoint and UI integration for log deletion * feat: enhance cron job handling for last day of month (L) in ScheduleBeat and related utilities Co-authored-by: Copilot <copilot@github.com> * - fix(start-node): persist declared defaults of newly-visible fields so saves don't drop required values - update ui for last day to include hints and next run datetime --------- Co-authored-by: Jackie Chui <jackie.chui@workday.com> Co-authored-by: Henry <hzj94@hotmail.com> Co-authored-by: Copilot <copilot@github.com>
H
Hoang Doan committed
ce7a811b71e88874bb22d335bc1110342fb9600f
Parent: 014d35c
Committed by GitHub <noreply@github.com>
on 5/1/2026, 9:39:20 PM