completeIfActive method
Completes an active run without replacing a prior terminal outcome.
Implementation
@override
Future<bool> completeIfActive(String runId, Object? result) async {
final state = _runs[runId];
if (state == null || state.isTerminal) return false;
_removeWatcherForRun(runId);
_runs[runId] = state.copyWith(
status: WorkflowStatus.completed,
result: result,
resumeAt: null,
waitTopic: null,
suspensionData: const <String, Object?>{},
ownerId: null,
leaseExpiresAt: null,
updatedAt: _clock.now(),
);
for (final entry in _due.values) {
entry.remove(runId);
}
return true;
}