SIGN IN SIGN UP

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