notificationSend always fires with a 0.1s UNTimeIntervalNotificationTrigger (crates/perry-ui-macos/src/notifications.rs:41) — no way to schedule.
Scope
- New TS surface:
export function notificationSchedule(opts: {
id: string;
title: string;
body: string;
trigger: { type: "interval"; seconds: number; repeats?: boolean }
| { type: "calendar"; date: Date }
| { type: "location"; latitude: number; longitude: number; radius: number };
}): void;
export function notificationCancel(id: string): void;
- iOS/macOS:
UNTimeIntervalNotificationTrigger / UNCalendarNotificationTrigger / UNLocationNotificationTrigger.
- Android:
AlarmManager → NotificationManager for interval/calendar; Geofencing API for location.
- Windows: toast scheduling via
ToastNotifier.AddToSchedule.
- Linux/Web: best-effort; document limits.
Identifier map lives runtime-side so cancel works.
notificationSendalways fires with a 0.1sUNTimeIntervalNotificationTrigger(crates/perry-ui-macos/src/notifications.rs:41) — no way to schedule.Scope
UNTimeIntervalNotificationTrigger/UNCalendarNotificationTrigger/UNLocationNotificationTrigger.AlarmManager→NotificationManagerfor interval/calendar;GeofencingAPI for location.ToastNotifier.AddToSchedule.Identifier map lives runtime-side so
cancelworks.