- Cron-based task scheduling with SchedulerService (create, pause, resume, delete) - One-shot executor using `claude -p` with stream-json output for rich log display - CLAUDECODE env var stripped to prevent nested session detection - JsonScheduleRepository for persistent schedule/run/log storage - Full IPC pipeline: handlers, preload bridge, API types, HttpClient stubs - ScheduleSection UI with create/edit dialog, run history, status badges - ScheduleRunLogDialog with CliLogsRichView (thinking blocks, tool cards, markdown) - Real-time run status updates via store subscription - Retry logic with configurable max retries and auto-pause on consecutive failures - CronScheduleInput with human-readable descriptions via cronstrue - 3 test suites: SchedulerService, ScheduledTaskExecutor, JsonScheduleRepository
15 lines
591 B
TypeScript
15 lines
591 B
TypeScript
import React from 'react';
|
|
|
|
import { Calendar } from 'lucide-react';
|
|
|
|
export const ScheduleEmptyState = (): React.JSX.Element => (
|
|
<div className="flex flex-col items-center justify-center gap-2 py-8 text-center">
|
|
<Calendar className="size-8 text-[var(--color-text-muted)]" />
|
|
<div className="space-y-1">
|
|
<p className="text-xs font-medium text-[var(--color-text-secondary)]">No schedules yet</p>
|
|
<p className="text-[11px] text-[var(--color-text-muted)]">
|
|
Create a schedule to run Claude tasks automatically on a cron schedule.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
);
|