GitHub check
256 KB of 550 KB loaded Download the full log (550 KB)
294 KB of earlier output not loaded
0Z
163 get: (host) =>
~~~
src/server/GitCafeCredentials.ts:176:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.invalidate")((host) => { ... })`. effect(effectFnOpportunity)
176 invalidate: (host) => Cache.invalidate(cache, normalizeHost(host)),
~~~~~~~~~~
src/server/GitCafeCredentials.ts:177:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.cliEnv")((host) => { ... })`. effect(effectFnOpportunity)
177 cliEnv: (host) =>
~~~~~~
src/server/GitCafePullRequestProvider.ts:416:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
416 Effect.map(Option.some),
~~~~~~~~~~
src/server/GitCafePullRequestProvider.ts:421:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
421 : Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/server/GitCafePullRequestProvider.ts:771:13 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
771 Effect.map(Option.some),
~~~~~~~~~~
src/server/GitCafePullRequestProvider.ts:776:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
776 : Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/server/GitCafePullRequestProvider.ts:789:15 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("readPage")((rows, after) => { ... })`. effect(effectFnOpportunity)
789 const readPage = (rows: number, after: string | null) => {
~~~~~~~~
src/server/GitCafePullRequestProvider.ts:906:13 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
906 Effect.catch((error) =>
~~~~~~~~~~~~
src/server/GitCafePullRequestProvider.ts:988:19 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
988 Effect.catch((error) =>
~~~~~~~~~~~~
~/packages/provider-muse$ tsc --noEmit
src/server/ForgejoSourceControlProvider.ts:359:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
359 getChangeRequest: (input) =>
~~~~~~~~~~~~~~~~
~/packages/provider-opencode$ tsc --noEmit
src/server/adapter.ts:434:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
434 getCapabilities: () => Effect.succeed(PiProviderCapabilitiesV2),
~~~~~~~~~~~~~~~
src/server/adapter.ts:435:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
435 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
~~~~~~~~~~~~~~~~~~~~~~~
src/server/adapter.ts:1662:31 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
1662 Effect.map(Option.some),
~~~~~~~~~~
src/server/adapter.ts:1665:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
1665 : Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/server/rpc.ts:318:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSuccess")(function*() { ... })`. effect(effectFnOpportunity)
318 onSuccess: () =>
~~~~~~~~~
src/server/rpc.ts:325:17 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
325 Effect.map(Option.some),
~~~~~~~~~~
~/packages/provider-cursor$ tsc --noEmit
src/server/adapter.ts:280:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
280 getCapabilities: () => Effect.succeed(MuseProviderCapabilitiesV2),
~~~~~~~~~~~~~~~
src/server/adapter.ts:281:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
281 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
~~~~~~~~~~~~~~~~~~~~~~~
src/server/adapter.ts:382:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TimeoutError")(function*(cause) { ... })`. effect(effectFnOpportunity)
382 TimeoutError: (cause) =>
~~~~~~~~~~~~
src/server/adapter.ts:1359:35 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
1359 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
~~~~~~~~~~
src/server/adapter.ts:1359:71 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
1359 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
~/packages/provider-grok$ tsc --noEmit
src/server/CursorAccountReader.ts:31:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CursorAccountReader.read")((credentialSource, sinceMs, untilMs) => { ... })`. effect(effectFnOpportunity)
31 read: (credentialSource, sinceMs, untilMs) =>
~~~~
src/server/CursorSdkCatalog.ts:82:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CursorSdkCatalog.read")((apiKey) => { ... })`. effect(effectFnOpportunity)
82 read: (apiKey) =>
~~~~
src/server/accountUsage.ts:358:5 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
358 Effect.catch(() =>
~~~~~~~~~~~~
src/server/adapter.ts:897:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
897 getCapabilities: () => Effect.succeed(CursorProviderCapabilitiesV2),
~~~~~~~~~~~~~~~
src/server/adapter.ts:898:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
898 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
~~~~~~~~~~~~~~~~~~~~~~~
src/server/credentialStore.ts:55:7 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
55 Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/server/credentialStore.ts:59:29 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
59 onNone: () => Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/server/credentialStore.ts:69:7 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
69 Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/server/credentialStore.ts:82:18 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
82 clear: () => Effect.runPromise(credentials.remove),
~~~~~~~~~~~~~~~~~
src/server/driver.ts:228:11 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
228 Effect.flatMap((snapshot) =>
~~~~~~~~~~~~~~
src/server/usageLimits.test.ts:74:5 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
74 Effect.gen(function* () {
~~~~~~~~~~~~~~~~~~~~~~~~~
75 yield* withNodeServices(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
115 );
~~~~~~~~
116 }),
~~~~~~
~/packages/provider-acp-registry$ tsc --noEmit
src/server/OpenCodeServerLedger.ts:147:12 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
147 return Effect.succeed(undefined);
~~~~~~~~~~~~~~~~~~~~~~~~~
src/server/OpenCodeServerLedger.ts:188:24 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
188 if (!recordable) return Effect.void;
~~~~~~
src/server/OpenCodeServerLedger.ts:206:9 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
206 return Effect.void;
~~~~~~
src/server/OpenCodeServerLedger.ts:226:7 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
226 return fs
~~~~~~
src/server/OpenCodeServerLedger.ts:309:29 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCodeServerLedger.track")(() => { ... })`. effect(effectFnOpportunity)
309 OpenCodeServerLedger.of({ track: () => Effect.succeed(Effect.void) }),
~~~~~
src/server/OpenCodeServerOwner.ts:169:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCodeServerOwner.withServer")((use) => { ... })`. effect(effectFnOpportunity)
169 withServer: (use) =>
~~~~~~~~~~
src/server/adapter.test.ts:103:39 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder)
103 const OPENCODE_TEST_SETTINGS = Schema.decodeUnknownSync(OpenCodeSettings)({});
~~~~~~~~~~~~~~~~~
src/server/adapter.ts:918:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
918 getCapabilities: () => Effect.succeed(OpenCodeProviderCapabilitiesV2),
~~~~~~~~~~~~~~~
src/server/adapter.ts:919:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
919 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
~~~~~~~~~~~~~~~~~~~~~~~
src/server/adapter.ts:987:33 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
987 const abortController = new AbortController();
~~~~~~~~~~~~~~~~~~~~~
src/server/adapter.ts:1064:31 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
1064 if (failure) return yield* Effect.fail(failure);
~~~~~
src/server/adapter.ts:1560:15 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
1560 Effect.catch(() => Effect.succeed(undefined)),
~~~~~~~~~~~~
src/server/adapter.ts:1560:34 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
1560 Effect.catch(() => Effect.succeed(undefined)),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/server/adapter.ts:3160:43 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
3160 admissionAbortController: new AbortController(),
~~~~~~~~~~~~~~~~~~~~~
src/server/adapter.ts:3320:47 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
3320 turn.admissionAbortController = new AbortController();
~~~~~~~~~~~~~~~~~~~~~
src/server/v2/OpenCode2Client.ts:149:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Client.connect")((_) => { ... })`. effect(effectFnOpportunity)
149 connect: ({ baseUrl, password }) => {
~~~~~~~
src/server/v2/OpenCode2Server.ts:142:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Server.withConnection")((use) => { ... })`. effect(effectFnOpportunity)
142 withConnection: (use) =>
~~~~~~~~~~~~~~
src/server/v2/OpenCode2Server.ts:157:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Server.withConnection")((use) => { ... })`. effect(effectFnOpportunity)
157 withConnection: (use) =>
~~~~~~~~~~~~~~
src/server/v2/adapter.ts:1507:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
1507 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
~~~~~~~~~~~~~~
src/server/v2/adapter.ts:1507:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
1507 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
~~~~~~~~~~
src/server/v2/adapter.ts:4018:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
4018 getCapabilities: () => Effect.succeed(OpenCode2ProviderCapabilities),
~~~~~~~~~~~~~~~
src/server/v2/adapter.ts:4019:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
4019 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
~~~~~~~~~~~~~~~~~~~~~~~
~/packages/source-control-definitions$ tsc --noEmit
src/server/driver.ts:171:7 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
171 Effect.flatMap((snapshot) =>
~~~~~~~~~~~~~~
src/server/xaiAcpExtension.ts:1446:15 - suggestion TS377009: The previous Effect does not fail, so this error-handling branch will never run. effect(catchUnfailableEffect)
1446 }).pipe(Effect.catch(() => Effect.void));
~~~~~~~~~~~~
src/server/xaiAcpExtension.ts:1446:15 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
1446 }).pipe(Effect.catch(() => Effect.void));
~~~~~~~~~~~~
src/server/xaiAcpExtension.ts:1527:13 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
1527 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
~/packages/client-runtime$ tsc --noEmit
src/server/AcpRegistryRuntimeCoordinator.ts:153:52 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
153 return yield* Effect.raceFirst(effect.pipe(Effect.map(Option.some)), foregroundStarted);
~~~~~~~~~~
src/server/AcpRegistrySupport.ts:1297:9 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
1297 Effect.catch((error) =>
~~~~~~~~~~~~
src/server/auth.ts:145:13 - suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption)
145 Option.isSome(result)
~~~~~~~~~~~~~
src/server/driver.ts:632:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("enrichSnapshot")((_) => { ... })`. effect(effectFnOpportunity)
632 enrichSnapshot: ({ snapshot, getSnapshot, publishSnapshot }) => {
~~~~~~~~~~~~~~
src/server/driver.ts:642:51 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
642 : enrichProviderCached(snapshot).pipe(Effect.map(Option.some))
~~~~~~~~~~
Result (22 files):
- 0 errors
- 0 warnings
- 0 hints
src/authorization/remote.test.ts:334:25 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
334 identity: Effect.succeed(Option.some({ accountId: "user_connect" })),
~~~~~~~~~~~~~~
src/authorization/remote.test.ts:339:17 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
339 id: Effect.succeed(Option.some("device-1")),
~~~~~~~~~~~~~~
src/authorization/service.ts:547:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpop")((input) => { ... })`. effect(effectFnOpportunity)
547 authorizeDpop: (input) =>
~~~~~~~~~~~~~
src/authorization/service.ts:549:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpopHttp")((input) => { ... })`. effect(effectFnOpportunity)
549 authorizeDpopHttp: (input) =>
~~~~~~~~~~~~~~~~~
src/connection/onboarding.ts:298:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ConnectionOnboarding.registerPairing")((input) => { ... })`. effect(effectFnOpportunity)
298 registerPairing: (input) =>
~~~~~~~~~~~~~~~
src/connection/onboarding.ts:304:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ConnectionOnboarding.registerSsh")((input) => { ... })`. effect(effectFnOpportunity)
304 registerSsh: (input) =>
~~~~~~~~~~~
src/connection/onboarding.ts:309:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ConnectionOnboarding.updateBearer")((input) => { ... })`. effect(effectFnOpportunity)
309 updateBearer: (input) =>
~~~~~~~~~~~~
src/connection/pullRequestRoutingPermissions.ts:138:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity)
138 get: (entry) =>
~~~
src/connection/pullRequestRoutingPermissions.ts:143:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity)
143 set: (entry, permission) => {
~~~
src/connection/pullRequestRoutingPermissions.ts:159:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity)
159 forget: (environmentId) =>
~~~~~~
src/connection/registry.test.ts:1392:15 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
1392 ? Effect.succeed(undefined)
~~~~~~~~~~~~~~~~~~~~~~~~~
src/connection/registry.test.ts:1476:15 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
1476 ? Effect.succeed(undefined)
~~~~~~~~~~~~~~~~~~~~~~~~~
src/connection/registry.test.ts:1489:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
1489 : Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/platform/orchestrationCache.test.ts:110:15 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
110 }).pipe(Effect.map(Option.some));
~~~~~~~~~~
src/state/boundedThreadSnapshotHttp.test.ts:123:27 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder)
123 const snapshot = Schema.decodeUnknownSync(BoundedJson)(boundedBody(true));
~~~~~~~~~~~~~~~~~
src/state/boundedThreadSnapshotHttp.ts:72:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadSnapshotLoader.ThreadSnapshotLoader.load")((prepared, threadId) => { ... })`. effect(effectFnOpportunity)
72 load: (prepared: PreparedConnection, threadId: ThreadId) => {
~~~~
src/state/commandPermissions.ts:56:13 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
56 Effect.catch(() => Effect.succeed(Option.none<AuthSessionState>())),
~~~~~~~~~~~~
src/state/commandPermissions.ts:62:20 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
62 return yield* Effect.fail(
~~~~~
src/state/outdatedServerUpdate.ts:57:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("execute")((target, atomRegistry) => { ... })`. effect(effectFnOpportunity)
57 execute: (target: OutdatedServerUpdateTarget, atomRegistry) => {
~~~~~~~
src/state/pullRequestDiffHttp.ts:90:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestDiffLoader.load")((prepared, input) => { ... })`. effect(effectFnOpportunity)
90 load: (prepared, input) =>
~~~~
src/state/queryPersistence.ts:34:28 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder)
34 return yield* Schema.decodeUnknownEffect(codec)(stored.value).pipe(
~~~~~~~~~~~~~~~~~~~
src/state/queryPersistence.ts:35:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
35 Effect.map(Option.some),
~~~~~~~~~~
src/state/server.ts:726:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("execute")((target, atomRegistry) => { ... })`. effect(effectFnOpportunity)
726 execute: (target, atomRegistry) => {
~~~~~~~
src/state/server.ts:1171:11 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
1171 Effect.flatMap((summary) =>
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:240:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
240 loadShell: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:246:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
246 loadThread: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:249:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
249 loadServerConfig: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:251:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
251 loadVcsRefs: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:258:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
258 load: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:379:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
379 loadShell: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:388:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
388 loadThread: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:391:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
391 loadServerConfig: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:393:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
393 loadVcsRefs: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:400:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
400 load: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:499:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
499 loadShell: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:505:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
505 loadThread: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:508:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
508 loadServerConfig: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:510:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
510 loadVcsRefs: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:517:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
517 load: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:596:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
596 loadShell: () => Effect.succeed(Option.some(cachedSnapshot)),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:598:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
598 loadThread: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:601:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
601 loadServerConfig: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:603:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
603 loadVcsRefs: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:610:21 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
610 load: () => Effect.succeed(Option.some(httpSnapshot)),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:660:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
660 loadShell: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:662:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
662 loadThread: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:665:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
665 loadServerConfig: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shell-sync.test.ts:667:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
667 loadVcsRefs: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/state/shellSnapshotHttp.ts:108:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ShellSnapshotLoader.load")((prepared, options) => { ... })`. effect(effectFnOpportunity)
108 load: (prepared, options) =>
~~~~
src/state/threadHistoryController.ts:52:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.register")((environmentId, threadId, handler) => { ... })`. effect(effectFnOpportunity)
52 register: (environmentId, threadId, handler) =>
~~~~~~~~
src/state/threadHistoryController.ts:64:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.unregister")((registration) => { ... })`. effect(effectFnOpportunity)
64 unregister: (registration) =>
~~~~~~~~~~
src/state/threadHistoryController.ts:79:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.loadEarlier")((environmentId, threadId, throughEntryId) => { ... })`. effect(effectFnOpportunity)
79 loadEarlier: (environmentId, threadId, throughEntryId) =>
~~~~~~~~~~~
src/state/threadHistoryController.ts:89:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.reconcilePendingWork")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
89 reconcilePendingWork: (environmentId, threadId) =>
~~~~~~~~~~~~~~~~~~~~
src/state/threads-sync.test.ts:374:18 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder)
374 Schema.decodeUnknownEffect(schema)(stale).pipe(
~~~~~~~~~~~~~~~~~~~
src/state/threads-sync.test.ts:1520:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
1520 : { loadCached: Effect.succeed(Option.some(saved!)) },
~~~~~~~~~~~~~~
src/state/vcsAction.ts:447:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("execute")((input, registry) => { ... })`. effect(effectFnOpportunity)
447 execute: (input: RunVcsStackedActionInput, registry) => {
~~~~~~~
~/apps/mobile$ tsc --noEmit
~/infra/relay$ tsc --noEmit
~/apps/web$ tsc --noEmit
~/apps/desktop$ tsc --noEmit
src/agentActivity/ApnsDeliveryQueue.ts:220:11 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ApnsDeliveryQueueSender.send")((body) => { ... })`. effect(effectFnOpportunity)
220 send: (body) =>
~~~~
src/agentActivity/FcmDeliveryQueueConsumer.ts:12:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onFailure")(function*(error) { ... })`. effect(effectFnOpportunity)
12 onFailure: (error) =>
~~~~~~~~~
src/environments/CloudflareApiPause.ts:59:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CloudflareApiPause.pauseUntil")((untilMillis) => { ... })`. effect(effectFnOpportunity)
59 pauseUntil: (untilMillis) =>
~~~~~~~~~~
src/http/Api.ts:190:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity)
190 onNone: () =>
~~~~~~
src/previewTunnelSweep.test.ts:53:11 - suggestion TS377124: `Effect.provideService` provides this inline single-service layer directly. effect(provideLayerSucceedToProvideService)
53 }).pipe(Effect.provide(Layer.succeed(HttpClient.HttpClient, cloudflare.client)));
~~~~~~~~~~~~~~
src/worker.ts:92:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpPlatform.HttpPlatform.fileResponse")(() => { ... })`. effect(effectFnOpportunity)
92 fileResponse: () => Effect.die("Relay API does not serve filesystem responses"),
~~~~~~~~~~~~
src/worker.ts:93:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpPlatform.HttpPlatform.fileWebResponse")(() => { ... })`. effect(effectFnOpportunity)
93 fileWebResponse: () => Effect.die("Relay API does not serve file responses"),
~~~~~~~~~~~~~~~
src/worker.ts:238:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.hold")((_) => { ... })`. effect(effectFnOpportunity)
238 hold: ({ endpointKey, baseUrl, hook }) =>
~~~~
src/worker.ts:240:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.wake")((_) => { ... })`. effect(effectFnOpportunity)
240 wake: ({ endpointKey, baseUrl }) =>
~~~~
src/worker.ts:242:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.clear")((_) => { ... })`. effect(effectFnOpportunity)
242 clear: ({ endpointKey }) =>
~~~~~
src/worker.ts:271:15 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("FcmDeliveryQueueSender.FcmDeliveryQueueSender.send")((body) => { ... })`. effect(effectFnOpportunity)
271 send: (body) =>
~~~~
src/app/DesktopAppActivation.ts:385:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppActivation.complete")((response) => { ... })`. effect(effectFnOpportunity)
385 complete: (response) => Effect.sync(() => broker.complete(response)),
~~~~~~~~
src/app/DesktopClerk.test.ts:300:27 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
300 currentMainOrFirst: Effect.succeed(Option.some(window)),
~~~~~~~~~~~~~~
src/app/DesktopObservability.ts:459:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(logFile) { ... })`. effect(effectFnOpportunity)
459 onSome: (logFile) =>
~~~~~~
src/app/DesktopObservability.ts:589:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendOutputLogFactory.forInstance")((id) => { ... })`. effect(effectFnOpportunity)
589 forInstance: (id) => makeForId(id),
~~~~~~~~~~~
src/app/DesktopWebLinks.test.ts:29:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
29 currentMainOrFirst: Effect.succeed(Option.some(window)),
~~~~~~~~~~~~~~
src/app/DesktopWebLinks.ts:72:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWebLinks.receive")((url) => { ... })`. effect(effectFnOpportunity)
72 receive: (url) =>
~~~~~~~
src/app/DesktopWebLinks.ts:77:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWebLinks.setRendererReady")((ready) => { ... })`. effect(effectFnOpportunity)
77 setRendererReady: (ready) =>
~~~~~~~~~~~~~~~~
src/backend/DesktopBackendManager.ts:1046:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(run) { ... })`. effect(effectFnOpportunity)
1046 onSome: (run) =>
~~~~~~
src/backend/DesktopBackendPool.ts:294:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity)
294 get: (id) =>
~~~
src/backend/DesktopBackendPool.ts:329:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity)
329 get: (id) => Effect.succeed(Option.fromNullishOr(byId.get(id))),
~~~
src/backend/DesktopBackendPool.ts:332:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.register")(() => { ... })`. effect(effectFnOpportunity)
332 register: () => Effect.die("DesktopBackendPool.layerTest does not support register"),
~~~~~~~~
src/backend/DesktopBackendPool.ts:333:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.unregister")(() => { ... })`. effect(effectFnOpportunity)
333 unregister: () => Effect.die("DesktopBackendPool.layerTest does not support unregister"),
~~~~~~~~~~
src/electron/ElectronApp.ts:138:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.exit")((code) => { ... })`. effect(effectFnOpportunity)
138 exit: (code) =>
~~~~
src/electron/ElectronApp.ts:142:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.relaunch")((options) => { ... })`. effect(effectFnOpportunity)
142 relaunch: (options) =>
~~~~~~~~
src/electron/ElectronApp.ts:146:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setPath")((name, path) => { ... })`. effect(effectFnOpportunity)
146 setPath: (name, path) =>
~~~~~~~
src/electron/ElectronApp.ts:150:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setName")((name) => { ... })`. effect(effectFnOpportunity)
150 setName: (name) =>
~~~~~~~
src/electron/ElectronApp.ts:154:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAboutPanelOptions")((options) => { ... })`. effect(effectFnOpportunity)
154 setAboutPanelOptions: (options) =>
~~~~~~~~~~~~~~~~~~~~
src/electron/ElectronApp.ts:158:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAppUserModelId")((id) => { ... })`. effect(effectFnOpportunity)
158 setAppUserModelId: (id) =>
~~~~~~~~~~~~~~~~~
src/electron/ElectronApp.ts:163:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAsDefaultProtocolClient")((protocol, path, args) => { ... })`. effect(effectFnOpportunity)
163 setAsDefaultProtocolClient: (protocol, path, args) =>
~~~~~~~~~~~~~~~~~~~~~~~~~~
src/electron/ElectronApp.ts:170:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDesktopName")((desktopName) => { ... })`. effect(effectFnOpportunity)
170 setDesktopName: (desktopName) =>
~~~~~~~~~~~~~~
src/electron/ElectronApp.ts:177:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDockIcon")((iconPath) => { ... })`. effect(effectFnOpportunity)
177 setDockIcon: (iconPath) =>
~~~~~~~~~~~
src/electron/ElectronApp.ts:181:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.appendCommandLineSwitch")((switchName, value) => { ... })`. effect(effectFnOpportunity)
181 appendCommandLineSwitch: (switchName, value) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/electron/ElectronApp.ts:189:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.onBeforeQuitForUpdate")((listener) => { ... })`. effect(effectFnOpportunity)
189 onBeforeQuitForUpdate: (listener) =>
~~~~~~~~~~~~~~~~~~~~~
src/electron/ElectronApp.ts:199:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.removeCommandLineSwitch")((switchName) => { ... })`. effect(effectFnOpportunity)
199 removeCommandLineSwitch: (switchName) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/electron/ElectronDialog.ts:169:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronDialog.showMessageBox")((options, owner) => { ... })`. effect(effectFnOpportunity)
169 showMessageBox: (options, owner) =>
~~~~~~~~~~~~~~
src/electron/ElectronDialog.ts:185:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronDialog.showErrorBox")((title, content) => { ... })`. effect(effectFnOpportunity)
185 showErrorBox: (title, content) =>
~~~~~~~~~~~~
src/electron/ElectronMenu.ts:190:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.setApplicationMenu")((template) => { ... })`. effect(effectFnOpportunity)
190 setApplicationMenu: (template) =>
~~~~~~~~~~~~~~~~~~
src/electron/ElectronMenu.ts:204:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.popupTemplate")((input) => { ... })`. effect(effectFnOpportunity)
204 popupTemplate: (input) =>
~~~~~~~~~~~~~
src/electron/ElectronMenu.ts:222:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.showContextMenu")((input) => { ... })`. effect(effectFnOpportunity)
222 showContextMenu: (input) =>
~~~~~~~~~~~~~~~
src/electron/ElectronPowerMonitor.ts:82:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronPowerMonitor.getSystemIdleState")((idleThresholdSeconds) => { ... })`. effect(effectFnOpportunity)
82 getSystemIdleState: (idleThresholdSeconds) =>
~~~~~~~~~~~~~~~~~~
src/electron/ElectronSafeStorage.ts:77:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronSafeStorage.encryptString")((value) => { ... })`. effect(effectFnOpportunity)
77 encryptString: (value) =>
~~~~~~~~~~~~~
src/electron/ElectronSafeStorage.ts:82:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronSafeStorage.decryptString")((value) => { ... })`. effect(effectFnOpportunity)
82 decryptString: (value) =>
~~~~~~~~~~~~~
src/electron/ElectronShell.ts:66:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openExternal")((rawUrl) => { ... })`. effect(effectFnOpportunity)
66 openExternal: (rawUrl) =>
~~~~~~~~~~~~
src/electron/ElectronShell.ts:77:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openSystemSettings")((pane) => { ... })`. effect(effectFnOpportunity)
77 openSystemSettings: (pane) =>
~~~~~~~~~~~~~~~~~~
src/electron/ElectronShell.ts:84:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.copyText")((text) => { ... })`. effect(effectFnOpportunity)
84 copyText: (text) =>
~~~~~~~~
src/electron/ElectronTheme.ts:34:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronTheme.setSource")((theme) => { ... })`. effect(effectFnOpportunity)
34 setSource: (theme) =>
~~~~~~~~~
src/electron/ElectronTheme.ts:41:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronTheme.onUpdated")((listener) => { ... })`. effect(effectFnOpportunity)
41 onUpdated: (listener) =>
~~~~~~~~~
src/electron/ElectronUpdater.ts:85:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setFeedURL")((options) => { ... })`. effect(effectFnOpportunity)
85 setFeedURL: (options) =>
~~~~~~~~~~
src/electron/ElectronUpdater.ts:90:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAutoDownload")((value) => { ... })`. effect(effectFnOpportunity)
90 setAutoDownload: (value) =>
~~~~~~~~~~~~~~~
src/electron/ElectronUpdater.ts:95:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAutoInstallOnAppQuit")((value) => { ... })`. effect(effectFnOpportunity)
95 setAutoInstallOnAppQuit: (value) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/electron/ElectronUpdater.ts:100:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setChannel")((channel) => { ... })`. effect(effectFnOpportunity)
100 setChannel: (channel) =>
~~~~~~~~~~
src/electron/ElectronUpdater.ts:105:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAllowPrerelease")((value) => { ... })`. effect(effectFnOpportunity)
105 setAllowPrerelease: (value) =>
~~~~~~~~~~~~~~~~~~
src/electron/ElectronUpdater.ts:111:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAllowDowngrade")((value) => { ... })`. effect(effectFnOpportunity)
111 setAllowDowngrade: (value) =>
~~~~~~~~~~~~~~~~~
src/electron/ElectronUpdater.ts:116:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setFullChangelog")((value) => { ... })`. effect(effectFnOpportunity)
116 setFullChangelog: (value) =>
~~~~~~~~~~~~~~~~
src/electron/ElectronUpdater.ts:121:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setDisableDifferentialDownload")((value) => { ... })`. effect(effectFnOpportunity)
121 setDisableDifferentialDownload: (value) =>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/electron/ElectronUpdater.ts:140:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.quitAndInstall")((_) => { ... })`. effect(effectFnOpportunity)
140 quitAndInstall: ({ isSilent, isForceRunAfter }) =>
~~~~~~~~~~~~~~
src/electron/ElectronUpdater.ts:154:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.on")((eventName, listener) => { ... })`. effect(effectFnOpportunity)
154 on: (eventName, listener) => {
~~
src/electron/ElectronWindow.ts:210:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.create")((options) => { ... })`. effect(effectFnOpportunity)
210 create: (options) => {
~~~~~~
src/electron/ElectronWindow.ts:242:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.setMain")((window) => { ... })`. effect(effectFnOpportunity)
242 setMain: (window) => Ref.set(mainWindowRef, Option.some(window)),
~~~~~~~
src/electron/ElectronWindow.ts:243:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.clearMain")((window) => { ... })`. effect(effectFnOpportunity)
243 clearMain: (window) =>
~~~~~~~~~
src/electron/ElectronWindow.ts:253:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.prepareReveal")((window) => { ... })`. effect(effectFnOpportunity)
253 prepareReveal: (window) =>
~~~~~~~~~~~~~
src/electron/ElectronWindow.ts:263:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.reveal")((window) => { ... })`. effect(effectFnOpportunity)
263 reveal: (window) =>
~~~~~~
src/settings/DesktopAppSettings.ts:524:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity)
524 setMainWindowBounds: (bounds, isMaximized) =>
~~~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:536:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity)
536 setServerExposureMode: (mode) =>
~~~~~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:540:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity)
540 setTailscaleServe: (input) =>
~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:544:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity)
544 setUpdateChannel: (channel) =>
~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:548:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
548 setWslBackendEnabled: (enabled) =>
~~~~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:552:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity)
552 setWslDistro: (distro) =>
~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:558:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity)
558 setWslOnly: (enabled) =>
~~~~~~~~~~
src/settings/DesktopAppSettings.ts:562:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
562 setLocalEnvironmentEnabled: (enabled) =>
~~~~~~~~~~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:597:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity)
597 setMainWindowBounds: (bounds, isMaximized) =>
~~~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:599:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity)
599 setServerExposureMode: (mode) =>
~~~~~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:601:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity)
601 setTailscaleServe: (input) => update((settings) => setTailscaleServe(settings, input)),
~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:602:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity)
602 setUpdateChannel: (channel) => update((settings) => setUpdateChannel(settings, channel)),
~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:603:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
603 setWslBackendEnabled: (enabled) =>
~~~~~~~~~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:605:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity)
605 setWslDistro: (distro) => update((settings) => setWslDistro(settings, distro)),
~~~~~~~~~~~~
src/settings/DesktopAppSettings.ts:606:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity)
606 setWslOnly: (enabled) => update((settings) => setWslOnly(settings, enabled)),
~~~~~~~~~~
src/settings/DesktopAppSettings.ts:607:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
607 setLocalEnvironmentEnabled: (enabled) =>
~~~~~~~~~~~~~~~~~~~~~~~~~~
src/settings/DesktopClientSettings.ts:197:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopClientSettings.set")((settings) => { ... })`. effect(effectFnOpportunity)
197 set: (settings) =>
~~~
src/settings/DesktopClientSettings.ts:231:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopClientSettings.set")((settings) => { ... })`. effect(effectFnOpportunity)
231 set: (settings) => Ref.set(settingsRef, Option.some(settings)),
~~~
src/snapShot/DesktopSnapShot.ts:1721:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.setAnimationDestination")((id, destination) => { ... })`. effect(effectFnOpportunity)
1721 setAnimationDestination: (id, destination) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/snapShot/DesktopSnapShot.ts:1732:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.dismissAnimation")((id) => { ... })`. effect(effectFnOpportunity)
1732 dismissAnimation: (id) =>
~~~~~~~~~~~~~~~~
src/snapShot/DesktopSnapShot.ts:1737:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.acknowledge")((id) => { ... })`. effect(effectFnOpportunity)
1737 acknowledge: (id) =>
~~~~~~~~~~~
src/ssh/DesktopSshEnvironment.ts:136:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.discoverHosts")((input) => { ... })`. effect(effectFnOpportunity)
136 discoverHosts: (input) =>
~~~~~~~~~~~~~
src/ssh/DesktopSshEnvironment.ts:141:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.resolveHost")((alias) => { ... })`. effect(effectFnOpportunity)
141 resolveHost: (alias) =>
~~~~~~~~~~~
src/ssh/DesktopSshEnvironment.ts:146:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.ensureEnvironment")((target, ensureOptions) => { ... })`. effect(effectFnOpportunity)
146 ensureEnvironment: (target, ensureOptions) =>
~~~~~~~~~~~~~~~~~
src/ssh/DesktopSshEnvironment.ts:154:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.disconnectEnvironment")((target) => { ... })`. effect(effectFnOpportunity)
154 disconnectEnvironment: (target) =>
~~~~~~~~~~~~~~~~~~~~~
src/updates/DesktopUpdates.ts:1162:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopUpdates.installPrepared")((expectedVersion) => { ... })`. effect(effectFnOpportunity)
1162 installPrepared: (expectedVersion) => installWithExpectedVersion(expectedVersion),
~~~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1073:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")(() => { ... })`. effect(effectFnOpportunity)
1073 preWarm: () => Effect.void,
~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1074:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.windowsToWslPath")((distro, windowsPath) => { ... })`. effect(effectFnOpportunity)
1074 windowsToWslPath: (distro, windowsPath) =>
~~~~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1076:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getUserHome")((distro) => { ... })`. effect(effectFnOpportunity)
1076 getUserHome: (distro) => Effect.succeed(stub.getUserHome?.(distro) ?? Option.none<string>()),
~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1077:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getDistroIp")((distro) => { ... })`. effect(effectFnOpportunity)
1077 getDistroIp: (distro) => Effect.succeed(stub.getDistroIp?.(distro) ?? Option.none<string>()),
~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1078:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity)
1078 prepareRuntime: (distro, archive) =>
~~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1085:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
1085 pruneRuntimes: (distro, runtimeId) => stub.pruneRuntimes?.(distro, runtimeId) ?? Effect.void,
~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1086:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
1086 invalidateRuntime: (distro, runtimeId) =>
~~~~~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1088:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity)
1088 probeRuntime: (distro, linuxAppRoot) =>
~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1092:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity)
1092 ensureNodePty: (distro, linuxAppRoot, options) =>
~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1154:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")((distro) => { ... })`. effect(effectFnOpportunity)
1154 preWarm: (distro) =>
~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1159:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity)
1159 prepareRuntime: (distro, archive) =>
~~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1163:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
1163 pruneRuntimes: (distro, runtimeId) =>
~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1167:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
1167 invalidateRuntime: (distro, runtimeId) =>
~~~~~~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1171:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity)
1171 probeRuntime: (distro, linuxAppRoot) =>
~~~~~~~~~~~~
src/wsl/DesktopWslEnvironment.ts:1175:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity)
1175 ensureNodePty: (distro, linuxAppRoot, options) =>
~~~~~~~~~~~~~
src/connection/platform.ts:794:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentOwnedDataCleanup.clear")((environmentId) => { ... })`. effect(effectFnOpportunity)
794 clear: (environmentId) =>
~~~~~
src/connection/platform.ts:804:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentRpcRequestObserver.observe")((_) => { ... })`. effect(effectFnOpportunity)
804 observe: ({ environmentId, environmentLabel, method }) =>
~~~~~~~
src/connection/storage.ts:546:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity)
546 get: (entry) =>
~~~
src/connection/storage.ts:573:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity)
573 set: (entry, permission) => {
~~~
src/connection/storage.ts:593:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity)
593 forget: (environmentId) => write(environmentId, null),
~~~~~~
src/connection/storage.ts:638:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.register")((registration, routes) => { ... })`. effect(effectFnOpportunity)
638 register: (registration, routes) =>
~~~~~~~~
src/connection/storage.ts:642:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setRoutes")((environmentId, routes) => { ... })`. effect(effectFnOpportunity)
642 setRoutes: (environmentId, routes) =>
~~~~~~~~~
src/connection/storage.ts:646:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.remove")((environmentId) => { ... })`. effect(effectFnOpportunity)
646 remove: (environmentId) =>
~~~~~~
src/connection/storage.ts:650:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setEnabled")((environmentId, enabled) => { ... })`. effect(effectFnOpportunity)
650 setEnabled: (environmentId, enabled) =>
~~~~~~~~~~
src/connection/storage.ts:727:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadShell")((environmentId) => { ... })`. effect(effectFnOpportunity)
727 loadShell: (environmentId) =>
~~~~~~~~~
src/connection/storage.ts:763:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadServerConfig")((environmentId) => { ... })`. effect(effectFnOpportunity)
763 loadServerConfig: (environmentId) =>
~~~~~~~~~~~~~~~~
src/connection/storage.ts:797:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
797 loadThread: (environmentId, threadId) =>
~~~~~~~~~~
src/connection/storage.ts:846:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity)
846 loadVcsRefs: (environmentId, cwd) =>
~~~~~~~~~~~
src/connection/storage.ts:888:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity)
888 removeVcsRefs: (environmentId, cwd) =>
~~~~~~~~~~~~~
src/connection/storage.ts:894:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clearVcsRefs")((environmentId) => { ... })`. effect(effectFnOpportunity)
894 clearVcsRefs: (environmentId) =>
~~~~~~~~~~~~
src/connection/storage.ts:900:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
900 removeThread: (environmentId, threadId) =>
~~~~~~~~~~~~
src/connection/storage.ts:906:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clear")((environmentId) => { ... })`. effect(effectFnOpportunity)
906 clear: (environmentId) =>
~~~~~
~/apps/server$ tsc --noEmit
scripts/acp-mock-agent.ts:939:16 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
939 yield* Effect.sleep("1200 millis")
~~~~~~~~~~~~~~~~~~~~~~~~~~~
940 .pipe(
~~~~~~~~~~~~~~~~
...
952 )
~~~~~~~~~~~
953 .pipe(Effect.forkDetach);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scripts/record-codex-app-server-replay-fixture.ts:1167:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("logger")((event) => { ... })`. effect(effectFnOpportunity)
1167 logger: (event) => {
~~~~~~
scripts/record-grok-acp-replay-fixture.ts:370:38 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder)
370 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
~~~~~~~~~~~~~~~~~
src/assets/AssetAccess.test.ts:975:42 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder)
975 const { resource } = yield* Schema.decodeUnknownEffect(AssetCreateUrlInput)({
~~~~~~~~~~~~~~~~~~~
src/auth/EnvironmentAuth.ts:1377:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentAuth.getDescriptor")(() => { ... })`. effect(effectFnOpportunity)
1377 getDescriptor: () =>
~~~~~~~~~~~~~
src/auth/EnvironmentAuthPolicy.ts:55:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentAuthPolicy.getDescriptor")(() => { ... })`. effect(effectFnOpportunity)
55 getDescriptor: () =>
~~~~~~~~~~~~~
src/auth/McpOAuth.ts:530:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpHttpServer.McpClientAuthenticator.authenticate")((request) => { ... })`. effect(effectFnOpportunity)
530 authenticate: (request) =>
~~~~~~~~~~~~
src/cli/thread.ts:468:11 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
468 : Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/cloud/CliTokenManager.ts:326:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpClientError")(function*(cause) { ... })`. effect(effectFnOpportunity)
326 HttpClientError: (cause) =>
~~~~~~~~~~~~~~~
src/cloud/CloudLink.lifecycle.test.ts:166:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
166 latest: Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/cloud/CloudLink.test.ts:99:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
99 latest: Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/cloud/ManagedEndpointRuntime.ts:762:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CloudManagedEndpointRuntime.requestRecovery")((config) => { ... })`. effect(effectFnOpportunity)
762 requestRecovery: (config) => Queue.offer(recoveryRequests, config).pipe(Effect.asVoid),
~~~~~~~~~~~~~~~
src/cloud/http.test.ts:81:67 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
81 Layer.mock(ConnectReachability.ConnectReachability)({ latest: Effect.succeed(Option.none()) }),
~~~~~~~~~~~~~~
src/cloud/selfUpdate.ts:371:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSelfUpdate.commitDesktopUpdate")((requestId, onHandoffAccepted) => { ... })`. effect(effectFnOpportunity)
371 commitDesktopUpdate: (requestId, onHandoffAccepted) =>
~~~~~~~~~~~~~~~~~~~
src/device/DeviceService.ts:807:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceService.updateTool")((tool) => { ... })`. effect(effectFnOpportunity)
807 updateTool: (tool) =>
~~~~~~~~~~
src/device/DeviceService.ts:822:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceService.easAccount")(() => { ... })`. effect(effectFnOpportunity)
822 easAccount: () =>
~~~~~~~~~~
src/device/EasDeviceHost.ts:865:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceHost.DeviceHost.ensureAgentReady")((onPhase) => { ... })`. effect(effectFnOpportunity)
865 ensureAgentReady: (onPhase) =>
~~~~~~~~~~~~~~~~
src/device/easProjectId.ts:181:7 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
181 Effect.map(Option.some),
~~~~~~~~~~
src/environment/DirectEndpoints.ts:158:31 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DirectEndpoints.resolve")(() => { ... })`. effect(effectFnOpportunity)
158 return DirectEndpoints.of({ resolve: () => resolve });
~~~~~~~
src/environment/RemoteOpenTargets.ts:81:33 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteOpenTargets.resolveTargets")(() => { ... })`. effect(effectFnOpportunity)
81 return RemoteOpenTargets.of({ resolveTargets: () => resolveTargets });
~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:302:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.isRepository")((cwd) => { ... })`. effect(effectFnOpportunity)
302 isRepository: (cwd) =>
~~~~~~~~~~~~
src/git/GitWorkflowService.ts:315:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.hasCommit")((input) => { ... })`. effect(effectFnOpportunity)
315 hasCommit: (input) =>
~~~~~~~~~
src/git/GitWorkflowService.ts:327:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.hasRefNamed")((input) => { ... })`. effect(effectFnOpportunity)
327 hasRefNamed: (input) =>
~~~~~~~~~~~
src/git/GitWorkflowService.ts:346:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.status")((input) => { ... })`. effect(effectFnOpportunity)
346 status: (input) =>
~~~~~~
src/git/GitWorkflowService.ts:352:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.localStatus")((input) => { ... })`. effect(effectFnOpportunity)
352 localStatus: (input) =>
~~~~~~~~~~~
src/git/GitWorkflowService.ts:360:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.remoteStatus")((input, options) => { ... })`. effect(effectFnOpportunity)
360 remoteStatus: (input, options) =>
~~~~~~~~~~~~
src/git/GitWorkflowService.ts:369:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.pullCurrentBranch")((cwd) => { ... })`. effect(effectFnOpportunity)
369 pullCurrentBranch: (cwd) =>
~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:373:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.runStackedAction")((input, options) => { ... })`. effect(effectFnOpportunity)
373 runStackedAction: (input, options) =>
~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:388:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.preparePullRequestThread")((input) => { ... })`. effect(effectFnOpportunity)
388 preparePullRequestThread: (input) =>
~~~~~~~~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:399:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.listRefs")((input) => { ... })`. effect(effectFnOpportunity)
399 listRefs: (input) =>
~~~~~~~~
src/git/GitWorkflowService.ts:405:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.createWorktree")((input, options) => { ... })`. effect(effectFnOpportunity)
405 createWorktree: (input, options) =>
~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:409:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.listLocalBranchNames")((cwd) => { ... })`. effect(effectFnOpportunity)
409 listLocalBranchNames: (cwd) =>
~~~~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:413:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.fetchRemote")((input) => { ... })`. effect(effectFnOpportunity)
413 fetchRemote: (input) =>
~~~~~~~~~~~
src/git/GitWorkflowService.ts:417:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.remoteExists")((input) => { ... })`. effect(effectFnOpportunity)
417 remoteExists: (input) =>
~~~~~~~~~~~~
src/git/GitWorkflowService.ts:421:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.remoteBranchExists")((input) => { ... })`. effect(effectFnOpportunity)
421 remoteBranchExists: (input) =>
~~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:425:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.resolveRemoteTrackingCommit")((input) => { ... })`. effect(effectFnOpportunity)
425 resolveRemoteTrackingCommit: (input) =>
~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:429:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.resolveWorktreeBaseRemote")((input) => { ... })`. effect(effectFnOpportunity)
429 resolveWorktreeBaseRemote: (input) =>
~~~~~~~~~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:433:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.fetchWorktreeBaseCommit")((input) => { ... })`. effect(effectFnOpportunity)
433 fetchWorktreeBaseCommit: (input) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:437:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.removeWorktree")((input) => { ... })`. effect(effectFnOpportunity)
437 removeWorktree: (input) =>
~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:441:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.pruneWorktrees")((input) => { ... })`. effect(effectFnOpportunity)
441 pruneWorktrees: (input) =>
~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:445:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.deleteLocalBranch")((input) => { ... })`. effect(effectFnOpportunity)
445 deleteLocalBranch: (input) =>
~~~~~~~~~~~~~~~~~
src/git/GitWorkflowService.ts:449:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.createRef")((input) => { ... })`. effect(effectFnOpportunity)
449 createRef: (input) =>
~~~~~~~~~
src/git/GitWorkflowService.ts:457:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.switchRef")((input) => { ... })`. effect(effectFnOpportunity)
457 switchRef: (input) =>
~~~~~~~~~
src/git/GitWorkflowService.ts:463:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitWorkflowService.renameBranch")((input) => { ... })`. effect(effectFnOpportunity)
463 renameBranch: (input) =>
~~~~~~~~~~~~
src/guest/GuestShareService.test.ts:598:9 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
598 return guestShares.submit(
~~~~~~
src/htmlRender/headlessChrome.ts:268:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("receive")((raw) => { ... })`. effect(effectFnOpportunity)
268 const receive = (raw: string) => {
~~~~~~~
src/mcp/AcpMcpStdioBridge.ts:277:7 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen)
277 try {
~~~~~
278 parsed = JSON.parse(line);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
280 return yield* respondWithError(null, "Parse error", -32700);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
281 }
~~~~~~~
src/mcp/AcpMcpStdioBridge.ts:317:7 - suggestion TS377099: `Effect.ignoreCause` expresses ignored failure more directly than `Effect.catchCause` returning `Effect.void`. effect(catchToIgnore)
317 Effect.catchCause(() => Effect.void),
~~~~~~~~~~~~~~~~~
src/mcp/McpDeviceToolkit.test.ts:105:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
105 getById: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/mcp/McpHttpServer.ts:403:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("previewSnapshotFailure")(<E>(cause) => { ... })`. effect(effectFnOpportunity)
403 const previewSnapshotFailure = <E>(cause: Cause.Cause<E>) => {
~~~~~~~~~~~~~~~~~~~~~~
src/mcp/McpHttpServer.ts:906:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpServer.McpServer.addTool")((options) => { ... })`. effect(effectFnOpportunity)
906 addTool: (options) =>
~~~~~~~
src/mcp/McpSessionRegistry.testkit.ts:22:20 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
22 resolve: () => Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/mcp/McpToolAccess.ts:105:7 - suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen)
105 Effect.flatMap(() => writingCaller),
~~~~~~~~~~~~~~
src/mcp/OrchestratorMcpService.ts:2451:39 - suggestion TS377088: This generator applies the same inline `Effect.mapError(...)` to every yielded effect. Keep that `Effect.mapError(...)` inline and hoist it once to the generator result: `Effect.gen(...).pipe(Effect.mapError(...))`, or `Effect.fn(function*(){ ... }, Effect.mapError(...))`. effect(redundantMapError)
2451 const cancelOrphan = Effect.gen(function* () {
~~~~~~~~~
src/mcp/OrchestratorMcpService.ts:2466:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2466 .pipe(Effect.mapError(threadManagementFailure));
~~~~~~~~~~~~~~~
src/mcp/OrchestratorMcpService.ts:2469:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2469 .pipe(Effect.mapError(threadManagementFailure));
~~~~~~~~~~~~~~~
src/mcp/PreviewAutomationBroker.ts:650:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity)
650 onNone: () =>
~~~~~~
src/mcp/WorktreeMcpService.test.ts:353:3 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
353 Effect.gen(function* () {
~~~~~~~~~~~~~~~~~~~~~~~~~
354 return yield* WorktreeMcpService.WorktreeMcpService;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
355 }).pipe(Effect.provide(harness.layer));
~~~~
src/mcp/toolkits/pullRequests/handlers.ts:223:27 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
223 const thread = yield* engine
~~~~~~
224 .getThreadShell(threadId)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
225 .pipe(Effect.map(Option.fromNullishOr))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
226 .pipe(Effect.mapError((cause) => new Failure({ cause })));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/mcpApps/McpAppModelContext.ts:94:27 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpAppModelContext.set")(() => { ... })`. effect(effectFnOpportunity)
94 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
~~~
src/mcpApps/McpAppModelContext.ts:94:51 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpAppModelContext.forThread")(() => { ... })`. effect(effectFnOpportunity)
94 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
~~~~~~~~~
src/observability/BrowserTraceCollector.ts:16:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("BrowserTraceCollector.record")((records) => { ... })`. effect(effectFnOpportunity)
16 record: (records) =>
~~~~~~
src/observability/EventLoopMonitor.ts:38:49 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
38 defaultValue: () => ({ latestNoticeableStall: Effect.succeed(undefined) }),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/AcpRegistryAdapterV2.testkit.ts:30:32 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder)
30 const REPLAY_SETTINGS = Schema.decodeUnknownSync(AcpRegistrySettings)({
~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:48:17 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
48 defaultModel: Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:169:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
169 defaultModel: Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:306:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
306 defaultModel: Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts:542:23 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
542 defaultModel: Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1010:26 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
1010 const controller = new AbortController();
~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1361:37 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
1361 const requestEvent = yield* runtime.events
~~~~~~~~~~~~~~
1362 .pipe(
~~~~~~~~~~~~~~~~
...
1365 )
~~~~~~~~~~~
1366 .pipe(Effect.forkScoped);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1367:28 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
1367 const controller = new AbortController();
~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1390:37 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
1390 const cancelledController = new AbortController();
~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4084:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
4084 getCapabilities: () => Effect.succeed(ClaudeProviderCapabilitiesV2),
~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4085:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
4085 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeAgentSdkQueryRunner.test.ts:199:17 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
199 signal: new AbortController().signal,
~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/ClaudeTaskOutputTail.ts:59:17 - suggestion TS377121: This Effect first-completion race has exactly one sleep- or delay-based timer arm. `Effect.timeoutOrElse` expresses the timeout and fallback directly. effect(raceFirstWithSleepToTimeout)
59 const pause = Effect.raceFirst(
~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/CodexAdapterV2.ts:1703:25 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
1703 threadId === null ? Effect.succeed(undefined) : mcpSessions.read(threadId);
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/CodexAdapterV2.ts:1710:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
1710 getCapabilities: () => Effect.succeed(CodexProviderCapabilitiesV2),
~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/CodexAdapterV2.ts:1711:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
1711 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/CodexAdapterV2.ts:2987:19 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
2987 Effect.catch(() => Effect.succeed(null)),
~~~~~~~~~~~~
src/orchestration-v2/Adapters/CodexAdapterV2.ts:2988:19 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2988 Effect.flatMap((response) =>
~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/CodexAdapterV2.ts:3010:19 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
3010 Effect.catch(() => Effect.void),
~~~~~~~~~~~~
src/orchestration-v2/Adapters/CodexAdapterV2.ts:7177:26 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
7177 return yield* Effect.fail(failedTermination.error);
~~~~~
src/orchestration-v2/Adapters/GrokAdapterV2.testkit.ts:33:38 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder)
33 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
~~~~~~~~~~~~~~~~~
src/orchestration-v2/Adapters/MuseAdapterV2.testkit.ts:409:38 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder)
409 const DEFAULT_MUSE_SETTINGS = Schema.decodeUnknownSync(MuseSettings)({ enabled: true });
~~~~~~~~~~~~~~~~~
src/orchestration-v2/CheckpointCaptureService.ts:235:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CheckpointCaptureServiceV2.execute")((input) => { ... })`. effect(effectFnOpportunity)
235 execute: (input) =>
~~~~~~~
src/orchestration-v2/CheckpointRestoreSafety.test.ts:104:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
104 get: () => Effect.succeed(Option.some({ workspaceRoot: parent } as never)),
~~~~~~~~~~~~~~
src/orchestration-v2/CheckpointRestoreSafety.ts:40:13 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
40 Effect.catch((error) =>
~~~~~~~~~~~~
src/orchestration-v2/CheckpointRestoreSafety.ts:80:17 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
80 Effect.catch((error) =>
~~~~~~~~~~~~
src/orchestration-v2/CheckpointRollbackService.test.ts:232:22 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
232 return Effect.succeed(Option.some({ workspaceRoot } as never));
~~~~~~~~~~~~~~
src/orchestration-v2/ClaudeAutomaticDelivery.integration.test.ts:142:28 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
142 const batchAbort = new AbortController();
~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/CommandOutputHub.test.ts:166:5 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
166 Effect.flatMap((frame) =>
~~~~~~~~~~~~~~
src/orchestration-v2/CommandReceiptStore.ts:164:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
164 onNone: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/orchestration-v2/CommandReceiptStore.ts:167:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
167 ? Effect.succeed(Option.none())
~~~~~~~~~~~~~~
src/orchestration-v2/CommandReceiptStore.ts:168:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
168 : fromApplicationReceipt(receipt).pipe(Effect.map(Option.some)),
~~~~~~~~~~
src/orchestration-v2/CommandReceiptStore.ts:183:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
183 ? Effect.succeed(Option.none())
~~~~~~~~~~~~~~
src/orchestration-v2/CommandReceiptStore.ts:192:25 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
192 }).pipe(Effect.map(Option.some)),
~~~~~~~~~~
src/orchestration-v2/EffectOutbox.ts:423:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
423 ? Effect.succeed(Option.none())
~~~~~~~~~~~~~~
src/orchestration-v2/EffectOutbox.ts:424:39 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
424 : rowToEffect(row).pipe(Effect.map(Option.some));
~~~~~~~~~~
src/orchestration-v2/EffectWorker.test.ts:109:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
109 get: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/orchestration-v2/EffectWorker.test.ts:342:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
342 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
~~~~~~~~~~~~~~
src/orchestration-v2/EffectWorker.test.ts:409:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
409 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
~~~~~~~~~~~~~~
src/orchestration-v2/EffectWorker.test.ts:476:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
476 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
~~~~~~~~~~~~~~
src/orchestration-v2/EffectWorker.test.ts:477:18 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
477 get: () => Effect.succeed(Option.some(claimedEffect)),
~~~~~~~~~~~~~~
src/orchestration-v2/EffectWorker.ts:98:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestrationEffectExecutorV2.execute")((effect, options) => { ... })`. effect(effectFnOpportunity)
98 execute: (effect, options) => {
~~~~~~~
src/orchestration-v2/EffectWorker.ts:180:17 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
180 Effect.catch((cause) =>
~~~~~~~~~~~~
src/orchestration-v2/EventStore.ts:110:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EventStoreV2.append")((input) => { ... })`. effect(effectFnOpportunity)
110 append: (input) =>
~~~~~~
src/orchestration-v2/EventStore.ts:120:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EventStoreV2.appendProjectEvent")((event) => { ... })`. effect(effectFnOpportunity)
120 appendProjectEvent: (event) =>
~~~~~~~~~~~~~~~~~~
src/orchestration-v2/EventStore.ts:131:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EventStoreV2.latestSequence")((input) => { ... })`. effect(effectFnOpportunity)
131 latestSequence: (input) =>
~~~~~~~~~~~~~~
src/orchestration-v2/FoundationPersistence.test.ts:1788:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
1788 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
~~~~~~~~~~~~~~
src/orchestration-v2/FoundationPersistence.test.ts:1790:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
1790 Effect.succeed(
~~~~~~~~~~~~~~
src/orchestration-v2/FoundationPersistence.test.ts:2660:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2660 nextClaimableAt: Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/orchestration-v2/FoundationPersistence.test.ts:2877:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2877 nextClaimableAt: Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:11976:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
11976 Effect.flatMap((planned) =>
~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12397:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.restartContinuationPending")((run) => { ... })`. effect(effectFnOpportunity)
12397 restartContinuationPending: (run) =>
~~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12399:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.awaitRestartContinuation")((run) => { ... })`. effect(effectFnOpportunity)
12399 awaitRestartContinuation: (run) =>
~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12402:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.autoArmLimitRecovery")((input) => { ... })`. effect(effectFnOpportunity)
12402 autoArmLimitRecovery: (input) =>
~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12430:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.searchThread")((input) => { ... })`. effect(effectFnOpportunity)
12430 searchThread: (input) =>
~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12438:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadHistoryPage")((threadId, cursor, throughEntryId, conversationOnly) => { ... })`. effect(effectFnOpportunity)
12438 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12442:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity)
12442 getTimelinePage: (threadId, options) =>
~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12446:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity)
12446 getMessageCount: (threadId) =>
~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12450:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity)
12450 getTurnItem: (input) =>
~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12458:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity)
12458 getThreadRecords: (threadId, fields, filter) =>
~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12462:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadProjection")((threadId) => { ... })`. effect(effectFnOpportunity)
12462 getThreadProjection: (threadId) =>
~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12466:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getCheckpointContext")((threadId) => { ... })`. effect(effectFnOpportunity)
12466 getCheckpointContext: (threadId) =>
~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12470:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshot")((threadId) => { ... })`. effect(effectFnOpportunity)
12470 getThreadSnapshot: (threadId) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12474:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshotWindow")((threadId, options) => { ... })`. effect(effectFnOpportunity)
12474 getThreadSnapshotWindow: (threadId, options) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12478:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
12478 getShellSnapshot: (options) =>
~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12480:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.listActiveSubagentThreadIds")(() => { ... })`. effect(effectFnOpportunity)
12480 listActiveSubagentThreadIds: () =>
~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12482:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.listOlderSettledThreads")((query) => { ... })`. effect(effectFnOpportunity)
12482 listOlderSettledThreads: (query) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12484:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.readShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
12484 readShellSnapshot: (options) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12491:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadShell")((threadId) => { ... })`. effect(effectFnOpportunity)
12491 getThreadShell: (threadId) =>
~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12495:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.findGuestShareThreadId")((shareId) => { ... })`. effect(effectFnOpportunity)
12495 findGuestShareThreadId: (shareId) =>
~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/Orchestrator.ts:12497:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadEventSequence")((threadId) => { ... })`. effect(effectFnOpportunity)
12497 getThreadEventSequence: (threadId) =>
~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/ProjectSettingsUpgrade.integration.test.ts:160:28 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
160 getInstance: () => Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/ProjectStore.ts:269:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectStoreV2.getShell")((projectId) => { ... })`. effect(effectFnOpportunity)
269 getShell: (projectId) => get(projectId).pipe(Effect.map(Option.map(toShell))),
~~~~~~~~
src/orchestration-v2/ProjectStore.ts:270:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectStoreV2.listShells")((options) => { ... })`. effect(effectFnOpportunity)
270 listShells: (options) =>
~~~~~~~~~~
src/orchestration-v2/ProjectionControlReads.test.ts:279:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
279 Effect.succeed(
~~~~~~~~~~~~~~
src/orchestration-v2/ProviderAdapterRegistry.ts:78:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapterRegistryV2.get")((instanceId) => { ... })`. effect(effectFnOpportunity)
78 get: (instanceId) =>
~~~
src/orchestration-v2/ProviderAdapterRegistry.ts:135:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapterRegistryV2.list")(() => { ... })`. effect(effectFnOpportunity)
135 list: () =>
~~~~
src/orchestration-v2/ProviderEventIngestor.ts:117:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderTurnAnalytics.record")((properties) => { ... })`. effect(effectFnOpportunity)
117 record: (properties: Readonly<Record<string, unknown>>) =>
~~~~~~
src/orchestration-v2/ProviderEventIngestor.ts:833:15 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
833 Effect.flatMap((storedEvents) =>
~~~~~~~~~~~~~~
src/orchestration-v2/ProviderSessionManager.test.ts:1153:19 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
1153 : Effect.succeed(Option.some(makeBrowserAccessProject(requestedProjectId))),
~~~~~~~~~~~~~~
src/orchestration-v2/ProviderTurnStartService.test.ts:148:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
148 Effect.succeed(
~~~~~~~~~~~~~~
src/orchestration-v2/ProviderTurnStartService.test.ts:701:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
701 Effect.succeed(Option.some({ workspaceRoot: "/tmp/native-account-project" } as never)),
~~~~~~~~~~~~~~
src/orchestration-v2/ProviderTurnStartService.testkit.ts:14:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
14 getById: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/orchestration-v2/ProviderTurnStartService.ts:204:39 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
204 Effect.catchCause(() => Effect.succeed(undefined)),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/ProviderTurnStartService.ts:510:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
510 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/ProviderTurnStartService.ts:1291:7 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
1291 return runExecution.startRootRun({
~~~~~~
src/orchestration-v2/PullRequestWatchReactor.ts:467:53 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
467 ? pullRequests.activity(reference).pipe(Effect.map(Option.some))
~~~~~~~~~~
src/orchestration-v2/ResourceCleanupService.ts:49:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupScheduledTasks")((threadId) => { ... })`. effect(effectFnOpportunity)
49 cleanupScheduledTasks: (threadId: ThreadId) =>
~~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/ResourceCleanupService.ts:58:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupTerminals")((threadId) => { ... })`. effect(effectFnOpportunity)
58 cleanupTerminals: (threadId: string) =>
~~~~~~~~~~~~~~~~
src/orchestration-v2/ResourceCleanupService.ts:66:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupPreviews")((threadId) => { ... })`. effect(effectFnOpportunity)
66 cleanupPreviews: (threadId: string) =>
~~~~~~~~~~~~~~~
src/orchestration-v2/ResourceCleanupService.ts:74:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ResourceCleanupService.cleanupAttachments")((attachmentIds) => { ... })`. effect(effectFnOpportunity)
74 cleanupAttachments: (attachmentIds: ReadonlyArray<string>) =>
~~~~~~~~~~~~~~~~~~
src/orchestration-v2/RunExecutionService.test.ts:1836:16 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
1836 ).pipe(Effect.map(Option.some)),
~~~~~~~~~~
src/orchestration-v2/RunExecutionService.ts:929:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
929 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/RuntimePolicy.test.ts:90:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
90 Effect.succeed(
~~~~~~~~~~~~~~
src/orchestration-v2/RuntimePolicy.ts:54:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RuntimePolicyV2.resolve")((input) => { ... })`. effect(effectFnOpportunity)
54 resolve: (input) =>
~~~~~~~
src/orchestration-v2/RuntimeRequestService.test.ts:29:7 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
29 Effect.succeed(
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadLaunchService.test.ts:189:33 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
189 getByWorkspaceRoot: () => Effect.succeed(Option.some(project)),
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadLaunchService.test.ts:220:32 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
220 folderForThread: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadLifecycleService.ts:91:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.archive")((input) => { ... })`. effect(effectFnOpportunity)
91 archive: (input) =>
~~~~~~~
src/orchestration-v2/ThreadLifecycleService.ts:97:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.unarchive")((input) => { ... })`. effect(effectFnOpportunity)
97 unarchive: (input) =>
~~~~~~~~~
src/orchestration-v2/ThreadLifecycleService.ts:103:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.delete")((input) => { ... })`. effect(effectFnOpportunity)
103 delete: (input) =>
~~~~~~
src/orchestration-v2/ThreadLifecycleService.ts:109:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.updateMetadata")((input) => { ... })`. effect(effectFnOpportunity)
109 updateMetadata: (input) =>
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadLifecycleService.ts:118:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.setRuntimeMode")((input) => { ... })`. effect(effectFnOpportunity)
118 setRuntimeMode: (input) =>
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadLifecycleService.ts:125:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.setInteractionMode")((input) => { ... })`. effect(effectFnOpportunity)
125 setInteractionMode: (input) =>
~~~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadLifecycleService.ts:132:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadLifecycleService.setModelSelection")((input) => { ... })`. effect(effectFnOpportunity)
132 setModelSelection: (input) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:710:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
710 Effect.flatMap((projection) =>
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:727:5 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
727 ensureProjectionTranscript(input.threadId)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
728 .pipe(Effect.andThen(orchestrator.getThreadRecords(input.threadId, fields, filter)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
747 ),
~~~~~~~~~~
748 );
~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:738:9 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
738 Effect.flatMap((projection) =>
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:1199:43 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
1199 if (failures[0] !== undefined) return yield* Effect.fail(failures[0]);
~~~~~
src/orchestration-v2/ThreadManagementService.ts:1210:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.searchThread")((input) => { ... })`. effect(effectFnOpportunity)
1210 searchThread: (input) =>
~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:1215:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getThreadHistoryPage")((threadId, cursor, throughEntryId, conversationOnly) => { ... })`. effect(effectFnOpportunity)
1215 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
~~~~~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:1221:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity)
1221 getTimelinePage: (threadId, options) =>
~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:1225:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity)
1225 getMessageCount: (threadId) =>
~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:1229:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity)
1229 getTurnItem: (input) =>
~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:1234:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity)
1234 getThreadRecords: (threadId, fields, filter) =>
~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadManagementService.ts:1276:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("LegacyV1ThreadImporter.LegacyV1ThreadImporter.ensureTranscript")(() => { ... })`. effect(effectFnOpportunity)
1276 ensureTranscript: () => Effect.succeed({ importedThreadCount: 0, importedMessageCount: 0 }),
~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadPullRequestService.test.ts:118:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
118 getShell: () => Effect.succeed(Option.some(project)),
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadPullRequestService.test.ts:237:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
237 getShell: () => Effect.succeed(Option.some(project)),
~~~~~~~~~~~~~~
src/orchestration-v2/ThreadPullRequestService.ts:322:17 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
322 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadSettlementService.ts:353:11 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
353 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadSettlementService.ts:510:11 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
510 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadSettlementService.ts:528:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
528 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/ThreadSettlementService.ts:593:9 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
593 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/orchestration-v2/TurnItemPositionStore.ts:106:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TurnItemPositionStoreV2.normalize")((item, runOrdinal) => { ... })`. effect(effectFnOpportunity)
106 normalize: (item, runOrdinal) =>
~~~~~~~~~
src/orchestration-v2/http.test.ts:54:23 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeSync` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownSync`. effect(preferTypedSchemaDecoder)
54 const thread = Schema.decodeUnknownSync(OrchestrationV2AppThread)({
~~~~~~~~~~~~~~~~~
src/orchestration-v2/http.ts:248:11 - suggestion TS377012: This Effect generator contains `try/catch`; in this context, error handling is expressed with Effect APIs such as Effect.try, Effect.tryPromise, Effect.catch, Effect.catchTag). effect(tryCatchInEffectGen)
248 try {
~~~~~
249 decodeThreadHistoryCursor(args.query.cursor);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
253 return yield* failEnvironmentInternal("orchestration_thread_history_failed", cause);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
254 }
~~~~~~~~~~~
src/orchestration-v2/runtimeLayer.test.ts:120:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
120 getById: () => Effect.succeed(Option.none()),
~~~~~~~~~~~~~~
src/orchestration-v2/runtimeLayer.test.ts:997:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
997 Effect.succeed(
~~~~~~~~~~~~~~
src/orchestration-v2/testkit/CommandOutputRecorder.ts:37:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CommandOutputHub.CommandOutputHub.append")((input) => { ... })`. effect(effectFnOpportunity)
37 append: (input) =>
~~~~~~
src/orchestration-v2/testkit/OrchestratorScenario.ts:282:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("awaitDispatch")(function*(key) { ... })`. effect(effectFnOpportunity)
282 const awaitDispatch = (key: string) =>
~~~~~~~~~~~~~
src/orchestration-v2/testkit/ProviderReplayHarness.ts:445:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadTitleRegenerationService.ThreadTitleRegenerationService.execute")(() => { ... })`. effect(effectFnOpportunity)
445 execute: () => Effect.void,
~~~~~~~
src/persistence/PullRequestFilesViewed.ts:87:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestFilesViewedRepository.list")((input) => { ... })`. effect(effectFnOpportunity)
87 list: (input) =>
~~~~
src/persistence/PullRequestFilesViewed.ts:97:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestFilesViewedRepository.set")((input) => { ... })`. effect(effectFnOpportunity)
97 set: (input) =>
~~~
src/persistence/PullRequestReviewGuides.ts:54:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestReviewGuideRepository.get")((key) => { ... })`. effect(effectFnOpportunity)
54 get: (key) =>
~~~
src/persistence/PullRequestReviewGuides.ts:64:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestReviewGuideRepository.put")((key, guide) => { ... })`. effect(effectFnOpportunity)
64 put: (key, guide) =>
~~~
src/persistence/initializeV2Database.ts:45:9 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
45 Effect.catch((error) =>
~~~~~~~~~~~~
src/preview/DesktopBrowserChannel.ts:67:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.awaitAttached")(() => { ... })`. effect(effectFnOpportunity)
67 awaitAttached: () => Effect.succeed(false),
~~~~~~~~~~~~~
src/preview/DesktopBrowserChannel.ts:70:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.isAttached")(() => { ... })`. effect(effectFnOpportunity)
70 isAttached: () => Effect.succeed(false),
~~~~~~~~~~
src/preview/DesktopBrowserChannel.ts:71:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.endpoint")(() => { ... })`. effect(effectFnOpportunity)
71 endpoint: () => Effect.die("No desktop app is attached to this server."),
~~~~~~~~
src/preview/DesktopBrowserChannel.ts:72:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.pointer")(() => { ... })`. effect(effectFnOpportunity)
72 pointer: () => Effect.void,
~~~~~~~
src/preview/DesktopBrowserChannel.ts:185:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.awaitAttached")((key, timeout) => { ... })`. effect(effectFnOpportunity)
185 awaitAttached: (key, timeout) =>
~~~~~~~~~~~~~
src/preview/DesktopBrowserChannel.ts:207:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.isAttached")((key) => { ... })`. effect(effectFnOpportunity)
207 isAttached: (key) => Effect.sync(() => attachedTabs.has(keyOf(key))),
~~~~~~~~~~
src/preview/DesktopBrowserChannel.ts:209:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.pointer")((key, pointer) => { ... })`. effect(effectFnOpportunity)
209 pointer: (key, pointer) => command({ type: "pointer", ...key, ...pointer }),
~~~~~~~
src/preview/ServerBrowser.ts:472:23 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
472 executable: () => Effect.runPromise(previewBrowser.executable),
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:678:9 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
678 ? Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:687:25 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
687 const scope = await Effect.runPromise(Scope.make());
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:689:30 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
689 const endpoint = await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:699:17 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
699 await Effect.runPromise(Scope.close(scope, Exit.void));
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:703:13 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
703 await Effect.runPromise(Scope.close(scope, Exit.void));
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1185:11 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1185 await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1678:17 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1678 : await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1742:21 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1742 ? await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1745:58 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
1745 ServerBrowserTabNotFoundError: () => Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1751:38 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1751 const { sessions } = await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1778:19 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1778 await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1809:21 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1809 await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1873:13 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1873 await Effect.runPromise(manager.close({ threadId: tab.threadId, tabId: tab.tabId }));
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1940:15 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1940 await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:1952:32 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
1952 const snapshot = await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowser.ts:2198:15 - suggestion TS377074: `Effect.runPromise` is called inside an Effect with a separate services invocation. In this context, child Effects run with the surrounding services, which can be accessed through `Effect.context` and `Effect.runPromiseWith`. effect(runEffectInsideEffect)
2198 await Effect.runPromise(
~~~~~~~~~~~~~~~~~
src/preview/ServerBrowserStream.ts:179:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("receive")((chunk) => { ... })`. effect(effectFnOpportunity)
179 const receive = (chunk: Uint8Array | string) => {
~~~~~~~
src/preview/ServerBrowserStream.ts:209:5 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
209 Effect.catch(() => Effect.succeed(HttpServerResponse.empty())),
~~~~~~~~~~~~
src/process/externalLauncher.ts:822:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.resolveAvailableEditors")(() => { ... })`. effect(effectFnOpportunity)
822 resolveAvailableEditors: () => cachedAvailableEditors,
~~~~~~~~~~~~~~~~~~~~~~~
src/process/externalLauncher.ts:823:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.resolveFileManagerRevealKind")(() => { ... })`. effect(effectFnOpportunity)
823 resolveFileManagerRevealKind: () =>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/process/externalLauncher.ts:827:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.launchBrowser")((target) => { ... })`. effect(effectFnOpportunity)
827 launchBrowser: (target) =>
~~~~~~~~~~~~~
src/process/externalLauncher.ts:831:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.launchEditor")((input) => { ... })`. effect(effectFnOpportunity)
831 launchEditor: (input) =>
~~~~~~~~~~~~
src/project/AgentSessionImporter.test.ts:212:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
212 Effect.succeed(
~~~~~~~~~~~~~~
src/project/ManagedProjectFolders.ts:333:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
333 ? Effect.succeed(Option.some(folderFor(id.slice(-8))))
~~~~~~~~~~~~~~
src/project/ManagedProjectFolders.ts:335:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
335 ? Effect.succeed(Option.some(fullFolder))
~~~~~~~~~~~~~~
src/project/ProjectCloneTracker.ts:421:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.start")((input, hooks) => { ... })`. effect(effectFnOpportunity)
421 start: (input, hooks) => locked(start(input, hooks)),
~~~~~
src/project/ProjectCloneTracker.ts:422:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.cancel")((projectId) => { ... })`. effect(effectFnOpportunity)
422 cancel: (projectId) => locked(cancel(projectId)),
~~~~~~
src/project/ProjectCloneTracker.ts:423:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.retry")((projectId) => { ... })`. effect(effectFnOpportunity)
423 retry: (projectId) => locked(retry(projectId)),
~~~~~
src/project/ProjectCloneTracker.ts:424:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.discard")((projectId) => { ... })`. effect(effectFnOpportunity)
424 discard: (projectId) => locked(discard(projectId)),
~~~~~~~
src/provider/CodexChatGptHandoff.ts:21:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.get")((key) => { ... })`. effect(effectFnOpportunity)
21 get: (key) => Effect.sync(() => Option.fromUndefinedOr(bytes.get(key))),
~~~
src/provider/CodexChatGptHandoff.ts:22:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.set")((key, value) => { ... })`. effect(effectFnOpportunity)
22 set: (key, value) =>
~~~
src/provider/CodexChatGptHandoff.ts:26:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.remove")((key) => { ... })`. effect(effectFnOpportunity)
26 remove: (key) =>
~~~~~~
src/provider/CodexChatGptHandoff.ts:30:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.create")(() => { ... })`. effect(effectFnOpportunity)
30 create: () => Effect.die("Handoff does not create persistent secrets."),
~~~~~~
src/provider/CodexChatGptHandoff.ts:31:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ServerSecretStore.ServerSecretStore.getOrCreateRandom")(() => { ... })`. effect(effectFnOpportunity)
31 getOrCreateRandom: () => Effect.die("Handoff uses the destination environment identity."),
~~~~~~~~~~~~~~~~~
src/provider/CodexInstallation.ts:205:26 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder)
205 return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(
~~~~~~~~~~~~~~~~~~~
src/provider/CodexProvider.ts:559:11 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
559 ? Effect.succeed(undefined)
~~~~~~~~~~~~~~~~~~~~~~~~~
src/provider/ModelManifest.ts:270:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ModelCatalog.ModelCatalog.current")((driverKind) => { ... })`. effect(effectFnOpportunity)
270 current: (driverKind) =>
~~~~~~~
src/provider/ProviderAuthService.test.ts:284:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
284 return yield* Effect.fail(
~~~~~
src/provider/ProviderAuthService.ts:209:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAuthService.importProfile")((input) => { ... })`. effect(effectFnOpportunity)
209 importProfile: (input) =>
~~~~~~~~~~~~~
src/provider/ProviderHostLive.ts:39:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderHost.ProviderHost.credentials")((namespace, bindingId) => { ... })`. effect(effectFnOpportunity)
39 credentials: (namespace, bindingId) =>
~~~~~~~~~~~
src/pullRequest/PullRequestService.ts:2937:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2937 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/pullRequest/PullRequestService.ts:3338:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
3338 Effect.catchCause((cause) =>
~~~~~~~~~~~~~~~~~
src/pullRequest/PullRequestService.ts:3574:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestService.listStats")((input) => { ... })`. effect(effectFnOpportunity)
3574 listStats: (input) =>
~~~~~~~~~
src/relay/AgentAwarenessRelay.test.ts:273:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
273 Effect.succeed(
~~~~~~~~~~~~~~
src/relay/AgentAwarenessRelay.ts:846:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AgentAwarenessRelay.requestCatchUp")(() => { ... })`. effect(effectFnOpportunity)
846 requestCatchUp: () => Queue.offer(catchUpRequests, undefined).pipe(Effect.asVoid),
~~~~~~~~~~~~~~
src/resourceTelemetry/DesktopTelemetryReceiver.ts:640:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.requestDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity)
640 requestDesktopUpdate: (requestId) =>
~~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/DesktopTelemetryReceiver.ts:646:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.commitDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity)
646 commitDesktopUpdate: (requestId) =>
~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/DesktopTelemetryReceiver.ts:648:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.cancelDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity)
648 cancelDesktopUpdate: (requestId) =>
~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/DesktopTelemetryReceiver.ts:697:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.setDiagnosticsDemand")(() => { ... })`. effect(effectFnOpportunity)
697 setDiagnosticsDemand: () => Effect.void,
~~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/DesktopTelemetryReceiver.ts:698:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.requestDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity)
698 requestDesktopUpdate: () => Effect.void,
~~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/DesktopTelemetryReceiver.ts:699:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.commitDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity)
699 commitDesktopUpdate: () => Effect.void,
~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/DesktopTelemetryReceiver.ts:700:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.cancelDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity)
700 cancelDesktopUpdate: () => Effect.void,
~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/NativeTelemetryClient.ts:1091:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.readHistory")(() => { ... })`. effect(effectFnOpportunity)
1091 readHistory: () =>
~~~~~~~~~~~
src/resourceTelemetry/NativeTelemetryClient.ts:1097:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.setExternalProcesses")(() => { ... })`. effect(effectFnOpportunity)
1097 setExternalProcesses: () => Effect.void,
~~~~~~~~~~~~~~~~~~~~
src/resourceTelemetry/NativeTelemetryClient.ts:1098:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.setHostPowerState")(() => { ... })`. effect(effectFnOpportunity)
1098 setHostPowerState: () => Effect.void,
~~~~~~~~~~~~~~~~~
src/scheduledTasks/ScheduledTaskService.ts:1112:31 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
1112 ? Effect.succeed(undefined)
~~~~~~~~~~~~~~~~~~~~~~~~~
src/secrets/SecretRequests.test.ts:175:30 - suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
175 const results = yield* Effect.all(
~~~~~~~~~~
src/server.ts:489:5 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
489 return Effect.gen(function* () {
~~~~~~
src/serverRuntimeStartup.test.ts:209:25 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
209 prepareTrial: Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/serverSettings.test.ts:413:30 - suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
413 const results = yield* Effect.all(
~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:199:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity)
199 listChangeRequests: (input) =>
~~~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:204:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
204 getChangeRequest: (input) =>
~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:209:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
209 createChangeRequest: (input) =>
~~~~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:214:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity)
214 getRepositoryCloneUrls: (input) =>
~~~~~~~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:219:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity)
219 createRepository: (input) => provider.createRepository(input),
~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:220:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity)
220 getDefaultBranch: (input) =>
~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:225:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
225 checkoutChangeRequest: (input) =>
~~~~~~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlProviderRegistry.ts:340:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProviderRegistry.resolve")((input) => { ... })`. effect(effectFnOpportunity)
340 resolve: (input) => resolveHandle(input).pipe(Effect.map((handle) => handle.provider)),
~~~~~~~
src/sourceControl/SourceControlRepositoryService.ts:385:7 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
385 Effect.catch((sshError) =>
~~~~~~~~~~~~
src/sourceControl/SourceControlRepositoryService.ts:524:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.lookupRepository")((input) => { ... })`. effect(effectFnOpportunity)
524 lookupRepository: (input) =>
~~~~~~~~~~~~~~~~
src/sourceControl/SourceControlRepositoryService.ts:526:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.prepareClone")((input) => { ... })`. effect(effectFnOpportunity)
526 prepareClone: (input) =>
~~~~~~~~~~~~
src/sourceControl/SourceControlRepositoryService.ts:533:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.cloneRepository")((input, options) => { ... })`. effect(effectFnOpportunity)
533 cloneRepository: (input, options) =>
~~~~~~~~~~~~~~~
src/sourceControl/SourceControlRepositoryService.ts:540:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.discardClone")((destinationPath) => { ... })`. effect(effectFnOpportunity)
540 discardClone: (destinationPath) =>
~~~~~~~~~~~~
src/sourceControl/SourceControlRepositoryService.ts:544:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.publishRepository")((input) => { ... })`. effect(effectFnOpportunity)
544 publishRepository: (input) =>
~~~~~~~~~~~~~~~~~
src/storageCleanup.ts:695:14 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
695 return yield* Effect.fail(
~~~~~
src/telemetry/AnalyticsService.ts:102:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AnalyticsService.record")(() => { ... })`. effect(effectFnOpportunity)
102 record: () => Effect.void,
~~~~~~
src/telemetry/AnalyticsService.ts:104:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AnalyticsService.recordOwners")(() => { ... })`. effect(effectFnOpportunity)
104 recordOwners: () => Effect.void,
~~~~~~~~~~~~
src/telemetry/AnalyticsService.ts:316:62 - suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen)
316 yield* Effect.forever(Effect.sleep(FLUSH_INTERVAL_MS).pipe(Effect.flatMap(() => flushWhenDue)), {
~~~~~~~~~~~~~~
src/textGeneration/CodexTextGeneration.ts:85:13 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
85 .pipe(Effect.catch(() => Effect.void));
~~~~~~~~~~~~
src/textGeneration/TextGeneration.ts:60:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateCommitMessage")((input) => { ... })`. effect(effectFnOpportunity)
60 generateCommitMessage: (input) =>
~~~~~~~~~~~~~~~~~~~~~
src/textGeneration/TextGeneration.ts:64:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generatePrContent")((input) => { ... })`. effect(effectFnOpportunity)
64 generatePrContent: (input) =>
~~~~~~~~~~~~~~~~~
src/textGeneration/TextGeneration.ts:68:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateBranchName")((input) => { ... })`. effect(effectFnOpportunity)
68 generateBranchName: (input) =>
~~~~~~~~~~~~~~~~~~
src/textGeneration/TextGeneration.ts:72:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateReviewGuide")((input) => { ... })`. effect(effectFnOpportunity)
72 generateReviewGuide: (input) =>
~~~~~~~~~~~~~~~~~~~
src/textGeneration/TextGeneration.ts:76:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TextGeneration.generateThreadTitle")((input) => { ... })`. effect(effectFnOpportunity)
76 generateThreadTitle: (input) =>
~~~~~~~~~~~~~~~~~~~
src/usage/UsageService.ts:165:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("UsageService.readSummary")((input) => { ... })`. effect(effectFnOpportunity)
165 readSummary: (input) =>
~~~~~~~~~~~
src/usage/UsageService.ts:626:9 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
626 usageInstances(driver, settings)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
627 .pipe(
~~~~~~~~~~~~~~~~
...
648 Effect.provideContext(readerContext),
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
649 ),
~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:3964:9 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
3964 Effect.flatMap((result) =>
~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4448:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.commit")((cwd, subject, body, options) => { ... })`. effect(effectFnOpportunity)
4448 commit: (cwd, subject, body, options) =>
~~~~~~
src/vcs/GitVcsDriverCore.ts:4450:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pushCurrentBranch")((cwd, fallbackBranch, options) => { ... })`. effect(effectFnOpportunity)
4450 pushCurrentBranch: (cwd, fallbackBranch, options) =>
~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4452:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pullCurrentBranch")((cwd) => { ... })`. effect(effectFnOpportunity)
4452 pullCurrentBranch: (cwd) => withListRefsInvalidation(cwd, pullCurrentBranch(cwd)),
~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4460:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createWorktree")((input, options) => { ... })`. effect(effectFnOpportunity)
4460 createWorktree: (input, options) =>
~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4462:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRefIntoBranch")((input) => { ... })`. effect(effectFnOpportunity)
4462 fetchRefIntoBranch: (input) => withListRefsInvalidation(input.cwd, fetchRefIntoBranch(input)),
~~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4465:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.refreshCheckedOutBranch")((input) => { ... })`. effect(effectFnOpportunity)
4465 refreshCheckedOutBranch: (input) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4467:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.ensureRemote")((input) => { ... })`. effect(effectFnOpportunity)
4467 ensureRemote: (input) => withListRefsInvalidation(input.cwd, ensureRemote(input)),
~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4470:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemote")((input) => { ... })`. effect(effectFnOpportunity)
4470 fetchRemote: (input) =>
~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4485:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchWorktreeBaseCommit")((input) => { ... })`. effect(effectFnOpportunity)
4485 fetchWorktreeBaseCommit: (input) =>
~~~~~~~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4487:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteBranch")((input) => { ... })`. effect(effectFnOpportunity)
4487 fetchRemoteBranch: (input) => withListRefsInvalidation(input.cwd, fetchRemoteBranch(input)),
~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4488:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteTrackingBranch")((input) => { ... })`. effect(effectFnOpportunity)
4488 fetchRemoteTrackingBranch: (input) =>
~~~~~~~~~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4490:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.setBranchUpstream")((input) => { ... })`. effect(effectFnOpportunity)
4490 setBranchUpstream: (input) => withListRefsInvalidation(input.cwd, setBranchUpstream(input)),
~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4491:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.removeWorktree")((input) => { ... })`. effect(effectFnOpportunity)
4491 removeWorktree: (input) => withListRefsInvalidation(input.cwd, removeWorktree(input)),
~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4492:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pruneWorktrees")((input) => { ... })`. effect(effectFnOpportunity)
4492 pruneWorktrees: (input) => withListRefsInvalidation(input.cwd, pruneWorktrees(input)),
~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4493:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.deleteLocalBranch")((input) => { ... })`. effect(effectFnOpportunity)
4493 deleteLocalBranch: (input) => withListRefsInvalidation(input.cwd, deleteLocalBranch(input)),
~~~~~~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4494:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.renameBranch")((input) => { ... })`. effect(effectFnOpportunity)
4494 renameBranch: (input) => withListRefsInvalidation(input.cwd, renameBranch(input)),
~~~~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4495:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createRef")((input) => { ... })`. effect(effectFnOpportunity)
4495 createRef: (input) => withListRefsInvalidation(input.cwd, createRef(input)),
~~~~~~~~~
src/vcs/GitVcsDriverCore.ts:4496:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.switchRef")((input) => { ... })`. effect(effectFnOpportunity)
4496 switchRef: (input) => withListRefsInvalidation(input.cwd, switchRef(input)),
~~~~~~~~~
src/vcs/VcsStatusBroadcaster.ts:153:5 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
153 return serverSettings.getSettings.pipe(
~~~~~~
src/workspace/WorkspaceFileSystem.ts:170:15 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
170 }).pipe(Effect.catch(() => Effect.succeed(undefined)));
~~~~~~~~~~~~
src/workspace/WorkspaceFileSystem.ts:170:34 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
170 }).pipe(Effect.catch(() => Effect.succeed(undefined)));
~~~~~~~~~~~~~~~~~~~~~~~~~
src/ws.test.ts:497:47 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
497 resolveFileManagerRevealKind: () => Effect.succeed(undefined),
~~~~~~~~~~~~~~~~~~~~~~~~~
src/ws.ts:1401:23 - suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption)
1401 return yield* Option.match(project, {
~~~~~~~~~~~~
src/ws.ts:2398:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
2398 return yield* Effect.fail(
~~~~~
src/ws.ts:2407:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
2407 return yield* Effect.fail(
~~~~~
src/ws.ts:2415:24 - suggestion TS377019: This `yield* Effect.fail(...)` passes a yieldable error value. `yield*` represents that value directly without wrapping it in `Effect.fail`. effect(unnecessaryFailYieldableError)
2415 return yield* Effect.fail(
~~~~~
---
vp run: 0/34 cache hit (0%), 34/34 successful. @t3tools/oxlint-plugin-t3code#typecheck (and 1 more) not cached because they modified their inputs. (Run `vp run --last-details` for full details)
Post job cleanup.
Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
Post job cleanup.
##[start-action display=Cache full pnpm store;id=__c88648dc-9da0-48ef-924d-1236bc633701.__actions_cache]
Post job cleanup.
Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-1af206af93d733fa7c4e35fa5de35961f61c0d15b9f10a3bf0b6b76380c4d2df, not saving cache.
##[end-action id=__c88648dc-9da0-48ef-924d-1236bc633701.__actions_cache;outcome=success;conclusion=success;duration_ms=104]
##[start-action display=Cache Vite+;id=__c88648dc-9da0-48ef-924d-1236bc633701.vp_cache]
Post job cleanup.
Cache hit occurred on the primary key vite-plus-home-v2-Linux-X64-1.4.0-node26.12.1-pnpm@12.14.0, not saving cache.
##[end-action id=__c88648dc-9da0-48ef-924d-1236bc633701.vp_cache;outcome=success;conclusion=success;duration_ms=65]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/8a61e079-8718-46ef-80a4-e72584b8de01' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
Removing SSH command configuration
[command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
Warning: The process '/usr/local/bin/git' failed with exit code 128
A job completed hook has been configured by the self-hosted runner administrator
▸ Run '/job_completed.sh'
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 136
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 582
BLACKSMITH_CHECK_RUN_ID: 121182441794
BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck
GITHUB_ACTIONS_CACHE_MODE: write
Docker container cache not activated, skipping hash computation.
No active SSH sessions detected. Proceeding with shutdown immediately.
Cleaning up orphan processes