What changed?
Removed the additional checks for the cases where the workflows continued as new. The check sometimes clashes with the completed status and there is no point in matching the inputs to this granularity if a wf continues as new and a workflows completed are almost similar. If there was a timeout failure in the workflow it would be before it continued as new and it makes no sense to match it.
In another scenario, the identification of the last event is not reliable. last := events[len(events)-1]
So in case of an early return or when the events have something else going on you don't actually get the real last event. if this is not reliable then we would be doing the checks unnecessarily.
Why?
In an attempt to fix the false negtaives thrown by the replayer in continue as new cases.
What changed? Removed the additional checks for the cases where the workflows continued as new. The check sometimes clashes with the completed status and there is no point in matching the inputs to this granularity if a wf continues as new and a workflows completed are almost similar. If there was a timeout failure in the workflow it would be before it continued as new and it makes no sense to match it.
In another scenario, the identification of the last event is not reliable.
last := events[len(events)-1]
So in case of an early return or when the events have something else going on you don't actually get the real last event. if this is not reliable then we would be doing the checks unnecessarily.Why? In an attempt to fix the false negtaives thrown by the replayer in continue as new cases.
How did you test it? unit tests
Potential risks more false negatives.