Files
v10/packages
Christian PillsburyandClaude Opus 4.8 5154c424f9 refactor(spf): simplify Reschedule to single-arg by carrying previous/signal on Task
Collapse `Reschedule<T>` from `(task, previous, signal) => ...` to
`(task) => PromiseLike<boolean>`. One `delayedReschedule` instance is shared
across the video + audio runners, so per-recurrence state can't live in its
closure — the task is the only per-recurrence carrier, so both dropped params
move onto it:

- `task.signal` exposes the task's composed signal. RecurringRunner drops its
  separate `#abort` AbortController: the task is now the sole cancellation
  channel and loop ownership is task-identity, not an AbortController token.
- `task.previous` is carried by `clone()` as lineage
  (`#previous = this.#value ?? this.#previous`), reproducing the last-*successful*
  value semantics (an errored cycle inherits the prior good value) with no
  bookkeeping in the runner — `#loop` no longer threads previous/result.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 09:59:24 -07:00
..