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
OrchestraReturnhelper (orchestra.return): theorchestra_returnconvention, an internal-only guard, and aLocalRedirectResponse(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 throughPendingActionsFinder. - Direct completion surfaces honor it: interaction signal, operation (direct + guarded
UserOperationForm), inbox (complete+UserTaskForm), and the reviewCommentForm(routed through the helper, killing its duplicated inline redirect;ReviewInteractionBaseprefers 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()).