fix(esg): cancellation-aware ErrorClassifier.IsTransient overload — caller-cancelled work can never classify transient

Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
Joseph Doherty
2026-07-10 04:32:51 -04:00
parent 0ee9975111
commit 37cf7c1a44
3 changed files with 26 additions and 1 deletions
@@ -64,4 +64,13 @@ public class ErrorClassifierTests
Assert.IsType<TransientExternalSystemException>(ex);
Assert.Equal("test message", ex.Message);
}
[Fact]
public void IsTransient_CallerCancelledOce_IsNotTransient()
{
var cts = new CancellationTokenSource();
cts.Cancel();
Assert.False(ErrorClassifier.IsTransient(new OperationCanceledException(), cts.Token));
Assert.True(ErrorClassifier.IsTransient(new OperationCanceledException(), CancellationToken.None));
}
}