Issue #3605419: Add a "Fire timer now" action to trigger a parked task timer early

Adds a way to fire a parked task's timer now, before its deadline.

A timer fires when its deadline passes on the cron sweep. Sometimes you want it now: escalate a task instead of waiting for its one-day timeout, or test a timer in development.

What changed

  • TimeoutSweep::fireNow($token) runs the same timeout action (or staged timer-rung action) the sweep would, against the given token, immediately. It reuses the sweep's transactional fire path inside the engine batch context, so it is exactly-once safe and there is no second firing code path. Firing early runs the action early; it does not skip it.
  • The orchestra_ui instance page shows a Fire timer now action on any token carrying a deadline - a parked task's timeout, or an armed timer token (a staged-ladder rung). Same permission and CSRF protection as the existing Signal action.

Tests

Kernel coverage: fireNow() resumes a task down its timeout branch before the deadline elapses, with no cron run. phpcs and cspell clean.

Merge request reports

Loading