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 overduration/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_offsetshifts the deadline:-P2Dwaits two days before the date,PT1Han 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.