From 1fc17a2508ceb8c3dde480180c7d9d0b1de6df54 Mon Sep 17 00:00:00 2001 From: lihan3238 Date: Tue, 5 May 2026 23:31:39 +0800 Subject: [PATCH 1/2] fix(Effect): add Refinement narrowing support for retry while option When the `while` option receives a Refinement, the output error type is now narrowed to Exclude, matching the symmetry of the existing `until` Refinement narrowing. Closes #6122 --- packages/effect/src/Effect.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/effect/src/Effect.ts b/packages/effect/src/Effect.ts index d9143c239b6..8c59a262dfd 100644 --- a/packages/effect/src/Effect.ts +++ b/packages/effect/src/Effect.ts @@ -4257,6 +4257,7 @@ export declare namespace Retry { export type Return, O>> = Effect< A, | (O extends { schedule: Schedule.Schedule } ? E + : O extends { while: Refinement } ? Exclude : O extends { until: Refinement } ? E2 : E) | (O extends { while: (...args: Array) => Effect } ? E : never) From 30e5b0276449a1353c62e49ef1e9ae6dfe3370ce Mon Sep 17 00:00:00 2001 From: lihan3238 Date: Fri, 8 May 2026 12:12:41 +0800 Subject: [PATCH 2/2] add changeset --- .changeset/fix-retry-refinement.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fix-retry-refinement.md diff --git a/.changeset/fix-retry-refinement.md b/.changeset/fix-retry-refinement.md new file mode 100644 index 00000000000..fb3d95dee0f --- /dev/null +++ b/.changeset/fix-retry-refinement.md @@ -0,0 +1,5 @@ +--- +"effect": patch +--- + +fix(Effect): add Refinement narrowing support for retry while option