This is the solution I came up with. It should work with 10.1+

````

ReplacePart[list, 
 Rule[#, 0] & /@ First /@ SequencePosition[list, {-1, 1}]]

(* {0, 1, 0, 1, 1, 1, -1, -1, 0, 1} *)

````

The length of the `Trace` is 4. Oddly, considering its messy implementation, this is shorter than the length of the `Trace` for the solution in Titus's answer, which is 5.

````

Length@Trace@
 ReplacePart[list, 
 Rule[#, 0] & /@ First /@ SequencePosition[list, {-1, 1}]]
Length@Trace@SequenceReplace[list, {-1, 1} :> Sequence[0, 1]]

(* 4 *)
(* 5 *)

````

The solution is also somehow faster, this might be given due to the shorter length of the `Trace`. That would mean that it scales better than that of Titus's solution.

````

ReplacePart[list, 
 Rule[#, 0] & /@ First /@ SequencePosition[list, {-1, 1}]] // 
 RepeatedTiming // First
SequenceReplace[list, {-1, 1} :> Sequence[0, 1]] // 
 RepeatedTiming // First


(* 0.000034 *)
(* 0.000078 *)

````

Hope you find that this helps for the version that you are on.