Issue #3610524: Return to the process trace after an opened task is processed, instead of the inbox

Implements the operator return-to-trace, per the design on the issue.

  • New OrchestraReturn helper (orchestra.return): the orchestra_return convention, an internal-only guard, and a LocalRedirectResponse (never a destination parameter); plus a durable server-side store for the collect round-trips.
  • The instance trace (OrchestraUiController) threads its URL onto each Open link through PendingActionsFinder.
  • Direct completion surfaces honor it: interaction signal, operation (direct + guarded UserOperationForm), inbox (complete + UserTaskForm), and the review CommentForm (routed through the helper, killing its duplicated inline redirect; ReviewInteractionBase prefers the trace return over the dispatcher continuation when opened from a trace).
  • Collect round-trips (webform edit/collect, payment) remember the target keyed by the opened token and operator at open, and honor it when the token resumes (webform handler) or on the dispatcher return (payment, best-effort).

Coverage: kernel test for the helper (embed / resolve / durable trio), and a Functional test asserting the trace embeds the return and completion lands back on the trace. Docs updated (human-tasks, extending). No new translatable strings.

Follow-up #3611086 renames the misnamed continuation methods (returnUrl()->nextStepUrl()).

Merge request reports

Loading