• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lsm / neokai / 25635713532

10 May 2026 05:56PM UTC coverage: 82.442% (+0.01%) from 82.43%
25635713532

push

github

web-flow
feat: add scheduled task creation UI to SpaceCreateTaskDialog (#1848)

* feat: add scheduled task creation UI to SpaceCreateTaskDialog

Add an optional "Schedule this task" section to the existing task creation
dialog with support for both one-time (at) and recurring (cron) schedules.

- Toggle switch to enable/disable scheduling (off by default)
- Trigger type selector: One-time vs Recurring
- One-time: datetime-local picker with future-time validation
- Recurring: cron expression input with preset buttons (@hourly, @daily,
  @weekly, @monthly) and inline validation
- Timezone dropdown with common IANA zones (defaults to UTC)
- Live preview of the schedule configuration
- Submit button label changes to "Create Schedule" when enabled
- Calls spaceStore.createSchedule() when scheduling is enabled
- Includes lightweight frontend cron validator (5-field + shortcuts)
- Updates tests to cover all new schedule creation flows

* fix: address review feedback on scheduled task creation UI

- Parse one-time runAt using selected timezone via Intl.DateTimeFormat
  instead of browser-local new Date(), preventing wrong fire times when
  browser TZ differs from selected TZ
- Hide timezone selector for one-time triggers (only meaningful for cron)
- Fix cron range regexes to accept multi-digit upper bounds (1-31, 12-23)
- Accept 6-field cron (with seconds) and Croner extensions (L, LW, month
  names, weekday names) in frontend validation
- Allow @midnight shortcut and Sunday value 7 in weekday field
- Format one-time preview using selected timezone via toLocaleString
- Add test verifying schedule state resets on dialog close/reopen

* fix: use new Date(value).getTime() for at trigger datetime-local input

For one-time (at) triggers, the datetime-local input inherently uses
the browser's local timezone. Using parseDatetimeInTimezone(val, 'UTC')
incorrectly interpreted the input as UTC, causing the displayed value
to jump for non-UTC users. Now we use new Date(val).getT... (continued)

8309 of 11589 branches covered (71.7%)

Branch coverage included in aggregate %.

64 of 72 new or added lines in 1 file covered. (88.89%)

65078 of 77427 relevant lines covered (84.05%)

290.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.48
/packages/web/src/components/space/SpaceCreateTaskDialog.tsx


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc