PR #1812 landed the adoption seam: every approval_request is mirrored into OpenRegister's shared task service, decisions close the mirror, and the shared sweep owns the mirror's expiry. The remainder of the convergence, tracked here (openspec change hitl-on-shared-tasks, tasks.md section 2):
Depends on: ConductionNL/openregister#3338 (merged) — task-expiry-and-outcomes.
PR #1812 landed the adoption seam: every approval_request is mirrored into OpenRegister's shared task service, decisions close the mirror, and the shared sweep owns the mirror's expiry. The remainder of the convergence, tracked here (openspec change
hitl-on-shared-tasks, tasks.md section 2):TaskTransitionedEventfor mirrored tasks (appIdintegriq, metadataapprovalRequestId) and resolve the approval_request task-first; then retireApprovalTimeoutSweepJobfor mirrored rows (keep it for pre-seam rows without ataskUuid).ApprovalsControllerto the resume orchestration (rehydrate + re-invoke), with the two-layer authorization moving to the task's candidate-group model.ApprovalService::notifyApprovers()(avoids the current double-notification for mirrored approvals).ApprovalServicehas no IL10N yet).Depends on: ConductionNL/openregister#3338 (merged) —
task-expiry-and-outcomes.