Issue #3605377: Add an "until" timer mode (deadline from a process variable)

Adds an until timer mode whose deadline is an absolute timestamp read from a process variable, for processes that must wait until a moment known only at runtime (authorize a deposit a lead before arrival, remind N days before a slot).

What changed

  • A node timeout gains until (a process variable name). When set it takes precedence over duration/anchor: the parked token's deadline becomes the timestamp that variable holds, and Orchestra's existing timer cron resumes it, exactly as for a duration timeout.
  • The variable may hold a Unix timestamp or an ISO-8601 datetime string (parsed as UTC).
  • An optional signed until_offset shifts the deadline: -P2D waits two days before the date, PT1H an hour after. So "remind N before" needs no second variable.
  • A missing or unreadable value parks the task with no deadline and logs a warning; a past value resumes on the next sweep. The deadline is fixed at park time, like a duration timeout (changing the variable later does not move it unless the node re-parks).

Why it is small

A parked token already carries an absolute Unix deadline that the cron sweep resumes; until only computes that timestamp from a variable instead of now + duration. So the sweep, the token field and the resume path are untouched: the change is the deadline-computation seam (WorkflowEngine::parkDeadline() plus two small helpers), the Timeout node-feature editor (two fields + offset validation), the config schema, the French translation and docs.

Tests

Kernel coverage in TimeoutTest: a variable deadline parks at the right moment; a negative offset waits before the date; an ISO-8601 string parses as UTC; a missing variable parks with no deadline. phpcs and cspell clean.

Merge request reports

Loading