Files
paseo/packages/app/src/utils/schedule-cadence-policy.ts
T
Mohamed BoudraandGitHub d3e1fe48f6 Scheduled and loop agents get workspaces; schedules UI speaks the user's timezone (#1909)
* fix(app): schedules UI speaks the user's timezone

* refactor(server): require explicit agent placement and bind create-agent command

* fix(server): scheduled agents get a workspace and show in the sidebar

* fix(server): loop agents get a workspace and show in the sidebar

* fix(server): preserve scheduled and loop run semantics through the create command

* fix(server): serialize all schedule record writes through the per-schedule queue

* fix(server): tighten create-agent dependency contracts

* fix(server): handle schedule restamps and loop cancellations

* fix(server): preserve scheduled and loop create semantics

* refactor(server): schedule store owns atomic mutations

* fix(server): keep schedule stamp reuse deterministic

* fix(server): handle loop workspace stamp rejection

* refactor(server): schedule store owns typed identity upsert

* fix(server): keep schedule workspace stamps server-owned

* fix(server): preserve scheduled run semantics

* refactor: required nullable workspaceId replaces placement union; pure cadence policy

* fix(server): tighten scheduled and loop agent edges

* fix(server): fail canceled scheduled runs

* fix(server): close schedule and loop cwd edges

* fix(server): refresh schedule workspace stamps

* fix(server): preserve schedule timezone on replace

* fix(server): close loop stop and cadence reset edges
2026-07-07 17:13:28 +08:00

15 lines
447 B
TypeScript

import type { ScheduleCadence } from "@getpaseo/protocol/schedule/types";
type CronCadence = Extract<ScheduleCadence, { type: "cron" }>;
export function nextCronCadence(
current: ScheduleCadence,
expression: string,
deviceTimeZone: string,
): CronCadence {
if (current.type === "cron") {
return { type: "cron", expression, timezone: current.timezone ?? "UTC" };
}
return { type: "cron", expression, timezone: deviceTimeZone };
}