YYClaw
465546b83b
feat(autopilots): redesign the autopilot schedule editor ( #5457 )
...
Replace the free-form trigger-config form with a structured schedule
editor built on an orthogonal cron model: separate frequency, time, and
day-of-week/day-of-month dimensions map to and from cron expressions via
a dedicated grammar and mapping layer, with validation and a
human-readable describe() summary. The grammar suite drives the editor
against a combinatorially generated corpus of 51,755 distinct cron
expressions - every token form of every field, crossed - each judged
against a reference robfig/cron v3 parser.
Add a server-side /autopilot/cron-preview endpoint (plus schema and
React Query hook) so the editor shows upcoming run times, and echo
wildcard-carrying cron lists correctly instead of collapsing them.
Supporting pieces: timezone-aware formatting helper, segmented-toggle
and debounced-value utilities, a reworked time-input, and refreshed
en/ja/ko/zh-Hans locale strings.
2026-07-17 16:44:31 +08:00
..
2026-06-17 15:18:44 +02:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-07-03 14:18:43 +08:00
2026-07-16 15:23:56 +08:00
2026-07-13 18:13:44 +08:00
2026-07-15 00:52:27 +08:00
2026-07-03 14:18:43 +08:00
2026-07-03 14:18:43 +08:00
2026-07-03 17:56:02 +08:00
2026-06-13 15:33:28 +08:00
2026-07-03 17:56:02 +08:00
2026-07-03 17:56:02 +08:00
2026-07-10 13:00:34 +08:00
2026-07-17 11:11:52 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-07-17 16:44:31 +08:00
2026-07-17 16:44:31 +08:00
2026-07-07 20:49:42 +08:00
2026-07-16 15:23:56 +08:00
2026-06-30 12:29:11 +08:00
2026-07-15 03:09:56 +08:00
2026-07-07 20:49:42 +08:00
2026-07-15 03:09:56 +08:00
2026-07-14 18:29:05 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 00:52:27 +08:00
2026-07-13 09:15:36 +08:00
2026-07-15 00:52:27 +08:00
2026-07-15 00:52:27 +08:00
2026-07-01 12:46:47 +08:00
2026-07-01 12:46:47 +08:00
2026-07-10 16:22:42 +08:00
2026-07-07 13:20:30 +08:00
2026-07-08 21:58:16 +08:00
2026-07-14 09:37:02 +08:00
2026-07-09 13:49:07 +08:00
2026-07-09 13:49:07 +08:00
2026-07-15 03:09:56 +08:00
2026-07-14 19:56:17 +08:00
2026-07-15 03:09:56 +08:00
2026-06-24 09:52:18 +08:00
2026-07-15 03:09:56 +08:00
2026-07-16 15:23:56 +08:00
2026-07-12 14:23:30 +08:00
2026-07-10 16:15:10 +08:00
2026-06-10 14:20:39 +08:00
2026-07-15 03:09:56 +08:00
2026-06-30 12:24:57 +08:00
2026-07-16 15:23:56 +08:00
2026-07-14 20:11:52 +08:00
2026-07-14 20:11:52 +08:00
2026-07-14 11:53:42 +08:00
2026-07-14 11:53:42 +08:00
2026-07-17 13:40:23 +08:00
2026-07-15 03:09:56 +08:00
2026-07-10 13:43:45 +08:00
2026-07-14 11:53:42 +08:00
2026-07-14 11:53:42 +08:00
2026-07-17 12:33:36 +08:00
2026-07-14 11:56:30 +08:00
2026-07-14 11:56:30 +08:00
2026-07-17 13:40:23 +08:00
2026-07-02 18:31:45 +08:00
2026-06-18 11:10:06 +08:00
2026-07-14 13:39:57 +08:00
2026-07-07 12:38:07 +08:00
2026-07-13 09:15:36 +08:00
2026-07-10 20:10:25 +08:00
2026-07-10 20:10:25 +08:00
2026-07-17 12:33:36 +08:00
2026-07-07 14:43:19 +08:00
2026-07-14 20:11:52 +08:00
2026-07-16 14:58:42 +08:00
2026-07-13 16:42:46 +08:00
2026-07-03 16:10:19 +08:00
2026-07-14 11:56:30 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-07-02 14:11:10 +08:00
2026-07-10 09:11:29 +08:00
2026-07-13 16:15:58 +08:00
2026-07-05 01:35:00 +08:00
2026-07-02 15:48:45 +08:00
2026-07-10 09:11:29 +08:00
2026-06-24 16:06:14 +08:00
2026-07-16 13:31:06 +08:00
2026-07-13 13:08:04 +08:00
2026-07-06 19:11:47 +08:00
2026-07-13 13:08:04 +08:00
2026-06-23 13:17:13 +08:00
2026-07-15 03:09:56 +08:00
2026-06-16 12:26:44 +08:00
2026-07-17 11:11:52 +08:00
2026-07-13 18:13:44 +08:00
2026-07-13 18:13:44 +08:00
2026-07-08 16:19:41 +08:00
2026-07-08 16:19:41 +08:00
2026-07-03 14:18:43 +08:00
2026-07-03 14:18:43 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 17:52:10 +08:00
2026-07-15 17:52:10 +08:00
2026-07-01 17:53:16 +08:00
2026-07-01 17:53:16 +08:00
2026-07-13 13:22:02 +08:00
2026-07-07 17:35:33 +08:00
2026-07-07 17:35:33 +08:00
2026-06-21 23:54:58 +08:00
2026-07-13 13:22:02 +08:00
2026-07-15 22:37:57 +08:00
2026-07-15 22:37:57 +08:00
2026-07-17 11:11:52 +08:00
2026-07-13 20:07:24 +08:00
2026-07-02 18:31:45 +08:00
2026-07-07 12:01:14 +08:00
2026-07-08 16:00:17 +08:00
2026-06-11 13:00:56 +08:00
2026-07-12 02:53:17 +08:00
2026-07-12 02:53:17 +08:00
2026-07-12 04:00:31 +08:00
2026-07-12 04:00:31 +08:00
2026-07-02 14:38:05 +08:00
2026-07-09 15:07:11 +08:00
2026-07-15 00:52:27 +08:00
2026-07-02 14:38:05 +08:00
2026-06-18 11:10:06 +08:00
2026-07-16 13:54:01 +08:00
2026-07-16 13:54:01 +08:00
2026-07-16 13:54:01 +08:00
2026-07-16 13:54:01 +08:00
2026-07-16 13:54:01 +08:00
2026-07-15 00:52:27 +08:00
2026-07-06 12:34:51 +08:00
2026-07-06 12:34:51 +08:00
2026-07-06 12:34:51 +08:00
2026-06-11 13:00:56 +08:00
2026-06-30 14:46:46 +08:00
2026-06-30 14:46:46 +08:00
2026-06-11 13:00:56 +08:00
2026-07-14 13:39:57 +08:00
2026-06-22 13:34:06 +08:00
2026-07-14 13:39:57 +08:00
2026-06-29 14:09:34 +08:00
2026-07-09 15:07:11 +08:00
2026-06-26 16:01:33 +08:00
2026-06-26 16:01:33 +08:00
2026-06-26 16:01:33 +08:00
2026-07-15 03:09:56 +08:00
2026-07-08 14:51:54 +08:00
2026-07-03 14:18:43 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-07-14 13:16:50 +08:00
2026-07-16 15:23:56 +08:00
2026-07-14 18:29:05 +08:00
2026-07-14 18:29:05 +08:00
2026-07-14 16:20:33 +08:00
2026-07-14 16:20:33 +08:00
2026-07-14 16:20:33 +08:00
2026-07-03 14:18:43 +08:00
2026-07-15 17:40:24 +08:00
2026-07-15 00:52:27 +08:00