GitHub check
256 KB of 527 KB loaded Download the full log (527 KB)
271 KB of earlier output not loaded
RequestCli.ts:603:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.listIterations")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8867678Z
2026-10-23T23:34:07.8867732Z 603 listIterations: (input) =>
2026-10-23T23:34:07.8867866Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8867937Z
2026-10-23T23:34:07.8868315Z src/server/AzureDevOpsPullRequestCli.ts:613:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.listIterationChanges")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8868742Z
2026-10-23T23:34:07.8868807Z 613 listIterationChanges: (input) => {
2026-10-23T23:34:07.8868958Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8869041Z
2026-10-23T23:34:07.8869411Z src/server/AzureDevOpsPullRequestCli.ts:640:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.readItemContent")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8869834Z
2026-10-23T23:34:07.8869889Z 640 readItemContent: (input) =>
2026-10-23T23:34:07.8870032Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8870107Z
2026-10-23T23:34:07.8870563Z src/server/AzureDevOpsPullRequestCli.ts:663:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.setPullRequestReviewers")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8871000Z
2026-10-23T23:34:07.8871065Z 663 setPullRequestReviewers: (input) =>
2026-10-23T23:34:07.8871217Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8871302Z
2026-10-23T23:34:07.8871681Z src/server/AzureDevOpsPullRequestCli.ts:688:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.runPullRequestAction")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8872106Z
2026-10-23T23:34:07.8872169Z 688 runPullRequestAction: (input) =>
2026-10-23T23:34:07.8872323Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8872405Z
2026-10-23T23:34:07.8872787Z src/server/AzureDevOpsPullRequestCli.ts:707:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AzureDevOpsPullRequestCli.updatePullRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8873207Z
2026-10-23T23:34:07.8873267Z 707 updatePullRequest: (input) =>
2026-10-23T23:34:07.8873414Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8873487Z
2026-10-23T23:34:07.8873920Z src/server/AzureDevOpsSourceControlProvider.ts:81:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8874394Z
2026-10-23T23:34:07.8874455Z 81 listChangeRequests: (input) => {
2026-10-23T23:34:07.8874600Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8874752Z
2026-10-23T23:34:07.8875181Z src/server/AzureDevOpsSourceControlProvider.ts:109:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8875657Z
2026-10-23T23:34:07.8875712Z 109 getChangeRequest: (input) =>
2026-10-23T23:34:07.8875856Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8875929Z
2026-10-23T23:34:07.8876391Z src/server/AzureDevOpsSourceControlProvider.ts:127:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8876874Z
2026-10-23T23:34:07.8876939Z 127 createChangeRequest: (input) => {
2026-10-23T23:34:07.8877088Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8877169Z
2026-10-23T23:34:07.8877620Z src/server/AzureDevOpsSourceControlProvider.ts:156:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8878116Z
2026-10-23T23:34:07.8878178Z 156 getRepositoryCloneUrls: (input) =>
2026-10-23T23:34:07.8878332Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8878417Z
2026-10-23T23:34:07.8878839Z src/server/AzureDevOpsSourceControlProvider.ts:173:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8879316Z
2026-10-23T23:34:07.8879374Z 173 createRepository: (input) =>
2026-10-23T23:34:07.8879516Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8879593Z
2026-10-23T23:34:07.8880019Z src/server/AzureDevOpsSourceControlProvider.ts:190:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8880494Z
2026-10-23T23:34:07.8880618Z 190 getDefaultBranch: (input) =>
2026-10-23T23:34:07.8880764Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8880840Z
2026-10-23T23:34:07.8881272Z src/server/AzureDevOpsSourceControlProvider.ts:204:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8881757Z
2026-10-23T23:34:07.8881821Z 204 checkoutChangeRequest: (input) =>
2026-10-23T23:34:07.8881974Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8882059Z
2026-10-23T23:34:07.8882062Z
2026-10-23T23:34:07.8882123Z ~/packages/provider-pi$ tsc --noEmit
2026-10-23T23:34:07.8882536Z src/server/GitCafeCredentials.ts:170:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.get")((host) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8882900Z
2026-10-23T23:34:07.8882956Z 170 get: (host) =>
2026-10-23T23:34:07.8883075Z ~~~
2026-10-23T23:34:07.8883140Z
2026-10-23T23:34:07.8883472Z src/server/GitCafeCredentials.ts:183:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.invalidate")((host) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8883844Z
2026-10-23T23:34:07.8883953Z 183 invalidate: (host) => Cache.invalidate(cache, normalizeHost(host)),
2026-10-23T23:34:07.8884150Z ~~~~~~~~~~
2026-10-23T23:34:07.8884220Z
2026-10-23T23:34:07.8884543Z src/server/GitCafeCredentials.ts:184:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.cliEnv")((host) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8884977Z
2026-10-23T23:34:07.8885031Z 184 cliEnv: (host) =>
2026-10-23T23:34:07.8885157Z ~~~~~~
2026-10-23T23:34:07.8885219Z
2026-10-23T23:34:07.8885496Z src/server/GitCafePullRequestProvider.ts:341:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8885812Z
2026-10-23T23:34:07.8885871Z 341 Effect.map(Option.some),
2026-10-23T23:34:07.8886055Z ~~~~~~~~~~
2026-10-23T23:34:07.8886130Z
2026-10-23T23:34:07.8886401Z src/server/GitCafePullRequestProvider.ts:346:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8886707Z
2026-10-23T23:34:07.8886776Z 346 : Effect.succeed(Option.none()),
2026-10-23T23:34:07.8886944Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8887030Z
2026-10-23T23:34:07.8887302Z src/server/GitCafePullRequestProvider.ts:655:13 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8887621Z
2026-10-23T23:34:07.8887684Z 655 Effect.map(Option.some),
2026-10-23T23:34:07.8887834Z ~~~~~~~~~~
2026-10-23T23:34:07.8887913Z
2026-10-23T23:34:07.8888177Z src/server/GitCafePullRequestProvider.ts:660:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8888483Z
2026-10-23T23:34:07.8888555Z 660 : Effect.succeed(Option.none()),
2026-10-23T23:34:07.8888723Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8888812Z
2026-10-23T23:34:07.8889135Z src/server/GitCafePullRequestProvider.ts:673:15 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("readPage")((rows, after) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8889498Z
2026-10-23T23:34:07.8889593Z 673 const readPage = (rows: number, after: string | null) => {
2026-10-23T23:34:07.8889782Z ~~~~~~~~
2026-10-23T23:34:07.8889860Z
2026-10-23T23:34:07.8890310Z src/server/GitCafePullRequestProvider.ts:790:13 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.8890730Z
2026-10-23T23:34:07.8890789Z 790 Effect.catch((error) =>
2026-10-23T23:34:07.8890937Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8891015Z
2026-10-23T23:34:07.8891386Z src/server/GitCafePullRequestProvider.ts:868:19 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.8891798Z
2026-10-23T23:34:07.8891863Z 868 Effect.catch((error) =>
2026-10-23T23:34:07.8892018Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8892109Z
2026-10-23T23:34:07.8892112Z
2026-10-23T23:34:07.8892176Z ~/packages/provider-muse$ tsc --noEmit
2026-10-23T23:34:07.8892701Z src/server/ForgejoSourceControlProvider.ts:340:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8893170Z
2026-10-23T23:34:07.8893231Z 340 getChangeRequest: (input) =>
2026-10-23T23:34:07.8893371Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8893449Z
2026-10-23T23:34:07.8893451Z
2026-10-23T23:34:07.8893519Z ~/packages/provider-opencode$ tsc --noEmit
2026-10-23T23:34:07.8893971Z src/server/adapter.ts:440:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8894367Z
2026-10-23T23:34:07.8894549Z 440 getCapabilities: () => Effect.succeed(PiProviderCapabilitiesV2),
2026-10-23T23:34:07.8894748Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8894825Z
2026-10-23T23:34:07.8895195Z src/server/adapter.ts:441:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8895606Z
2026-10-23T23:34:07.8895737Z 441 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-23T23:34:07.8895968Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8896086Z
2026-10-23T23:34:07.8896321Z src/server/adapter.ts:1694:31 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8896602Z
2026-10-23T23:34:07.8896680Z 1694 Effect.map(Option.some),
2026-10-23T23:34:07.8896855Z ~~~~~~~~~~
2026-10-23T23:34:07.8896963Z
2026-10-23T23:34:07.8897198Z src/server/adapter.ts:1697:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8897478Z
2026-10-23T23:34:07.8897553Z 1697 : Effect.succeed(Option.none()),
2026-10-23T23:34:07.8897735Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8897838Z
2026-10-23T23:34:07.8898108Z src/server/rpc.ts:334:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSuccess")(function*() { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8898424Z
2026-10-23T23:34:07.8898479Z 334 onSuccess: () =>
2026-10-23T23:34:07.8898604Z ~~~~~~~~~
2026-10-23T23:34:07.8898674Z
2026-10-23T23:34:07.8898901Z src/server/rpc.ts:342:17 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8899173Z
2026-10-23T23:34:07.8899234Z 342 Effect.map(Option.some),
2026-10-23T23:34:07.8899390Z ~~~~~~~~~~
2026-10-23T23:34:07.8899475Z
2026-10-23T23:34:07.8899477Z
2026-10-23T23:34:07.8899609Z ~/packages/provider-cursor$ tsc --noEmit
2026-10-23T23:34:07.8900064Z src/server/adapter.ts:284:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8900553Z
2026-10-23T23:34:07.8900660Z 284 getCapabilities: () => Effect.succeed(MuseProviderCapabilitiesV2),
2026-10-23T23:34:07.8900866Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8900941Z
2026-10-23T23:34:07.8901302Z src/server/adapter.ts:285:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8901719Z
2026-10-23T23:34:07.8901851Z 285 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-23T23:34:07.8902077Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8902170Z
2026-10-23T23:34:07.8902461Z src/server/adapter.ts:388:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("TimeoutError")(function*(cause) { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8902796Z
2026-10-23T23:34:07.8902857Z 388 TimeoutError: (cause) =>
2026-10-23T23:34:07.8903003Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8903086Z
2026-10-23T23:34:07.8903318Z src/server/adapter.ts:1366:35 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8903596Z
2026-10-23T23:34:07.8903735Z 1366 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-23T23:34:07.8903974Z ~~~~~~~~~~
2026-10-23T23:34:07.8904178Z
2026-10-23T23:34:07.8904415Z src/server/adapter.ts:1366:71 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8904690Z
2026-10-23T23:34:07.8904825Z 1366 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-23T23:34:07.8905080Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8905207Z
2026-10-23T23:34:07.8905210Z
2026-10-23T23:34:07.8905274Z ~/packages/provider-grok$ tsc --noEmit
2026-10-23T23:34:07.8905682Z 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)
2026-10-23T23:34:07.8906056Z
2026-10-23T23:34:07.8906120Z 147 return Effect.succeed(undefined);
2026-10-23T23:34:07.8906275Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8906368Z
2026-10-23T23:34:07.8906798Z 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)
2026-10-23T23:34:07.8907263Z
2026-10-23T23:34:07.8907329Z 188 if (!recordable) return Effect.void;
2026-10-23T23:34:07.8907491Z ~~~~~~
2026-10-23T23:34:07.8907577Z
2026-10-23T23:34:07.8907999Z src/server/OpenCodeServerLedger.ts:208: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)
2026-10-23T23:34:07.8908467Z
2026-10-23T23:34:07.8908523Z 208 return Effect.void;
2026-10-23T23:34:07.8908655Z ~~~~~~
2026-10-23T23:34:07.8908727Z
2026-10-23T23:34:07.8909229Z src/server/OpenCodeServerLedger.ts:228: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)
2026-10-23T23:34:07.8909692Z
2026-10-23T23:34:07.8909738Z 228 return fs
2026-10-23T23:34:07.8909856Z ~~~~~~
2026-10-23T23:34:07.8909924Z
2026-10-23T23:34:07.8910248Z src/server/OpenCodeServerLedger.ts:311:29 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCodeServerLedger.track")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8910618Z
2026-10-23T23:34:07.8910734Z 311 OpenCodeServerLedger.of({ track: () => Effect.succeed(Effect.void) }),
2026-10-23T23:34:07.8910944Z ~~~~~
2026-10-23T23:34:07.8911037Z
2026-10-23T23:34:07.8911373Z 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)
2026-10-23T23:34:07.8911756Z
2026-10-23T23:34:07.8911808Z 169 withServer: (use) =>
2026-10-23T23:34:07.8911940Z ~~~~~~~~~~
2026-10-23T23:34:07.8912011Z
2026-10-23T23:34:07.8912432Z 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)
2026-10-23T23:34:07.8912901Z
2026-10-23T23:34:07.8913029Z 103 const OPENCODE_TEST_SETTINGS = Schema.decodeUnknownSync(OpenCodeSettings)({});
2026-10-23T23:34:07.8913261Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8913372Z
2026-10-23T23:34:07.8913724Z src/server/adapter.ts:938:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8914187Z
2026-10-23T23:34:07.8914309Z 938 getCapabilities: () => Effect.succeed(OpenCodeProviderCapabilitiesV2),
2026-10-23T23:34:07.8914515Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8914590Z
2026-10-23T23:34:07.8914957Z src/server/adapter.ts:939:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8915366Z
2026-10-23T23:34:07.8915498Z 939 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-23T23:34:07.8915727Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8915809Z
2026-10-23T23:34:07.8916169Z src/server/adapter.ts:1011:33 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
2026-10-23T23:34:07.8916539Z
2026-10-23T23:34:07.8916623Z 1011 const abortController = new AbortController();
2026-10-23T23:34:07.8916810Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8916920Z
2026-10-23T23:34:07.8917274Z src/server/adapter.ts:1088: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)
2026-10-23T23:34:07.8917665Z
2026-10-23T23:34:07.8917746Z 1088 if (failure) return yield* Effect.fail(failure);
2026-10-23T23:34:07.8917929Z ~~~~~
2026-10-23T23:34:07.8918023Z
2026-10-23T23:34:07.8918336Z src/server/adapter.ts:1584:15 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
2026-10-23T23:34:07.8918684Z
2026-10-23T23:34:07.8918771Z 1584 Effect.catch(() => Effect.succeed(undefined)),
2026-10-23T23:34:07.8918945Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8919102Z
2026-10-23T23:34:07.8919380Z src/server/adapter.ts:1584:34 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.8919700Z
2026-10-23T23:34:07.8919779Z 1584 Effect.catch(() => Effect.succeed(undefined)),
2026-10-23T23:34:07.8919970Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8920081Z
2026-10-23T23:34:07.8920396Z src/server/adapter.ts:3194:43 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
2026-10-23T23:34:07.8925963Z
2026-10-23T23:34:07.8926110Z 3194 admissionAbortController: new AbortController(),
2026-10-23T23:34:07.8926313Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8926425Z
2026-10-23T23:34:07.8926738Z src/server/adapter.ts:3354:47 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
2026-10-23T23:34:07.8927089Z
2026-10-23T23:34:07.8927183Z 3354 turn.admissionAbortController = new AbortController();
2026-10-23T23:34:07.8927385Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8927496Z
2026-10-23T23:34:07.8927811Z src/server/v2/OpenCode2Client.ts:158:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Client.connect")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8928164Z
2026-10-23T23:34:07.8928231Z 158 connect: ({ baseUrl, password }) => {
2026-10-23T23:34:07.8928378Z ~~~~~~~
2026-10-23T23:34:07.8928549Z
2026-10-23T23:34:07.8928880Z src/server/v2/OpenCode2Server.ts:160:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Server.withConnection")((use) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8929248Z
2026-10-23T23:34:07.8929304Z 160 withConnection: (use) =>
2026-10-23T23:34:07.8929438Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8929514Z
2026-10-23T23:34:07.8929835Z src/server/v2/OpenCode2Server.ts:175:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OpenCode2Server.withConnection")((use) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8930199Z
2026-10-23T23:34:07.8930252Z 175 withConnection: (use) =>
2026-10-23T23:34:07.8930380Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8930451Z
2026-10-23T23:34:07.8930685Z src/server/v2/adapter.ts:1544:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8930963Z
2026-10-23T23:34:07.8931097Z 1544 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-23T23:34:07.8931326Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8931421Z
2026-10-23T23:34:07.8931660Z src/server/v2/adapter.ts:1544:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8931941Z
2026-10-23T23:34:07.8932071Z 1544 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-23T23:34:07.8932308Z ~~~~~~~~~~
2026-10-23T23:34:07.8932419Z
2026-10-23T23:34:07.8932773Z src/server/v2/adapter.ts:4137:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8933167Z
2026-10-23T23:34:07.8933280Z 4137 getCapabilities: () => Effect.succeed(OpenCode2ProviderCapabilities),
2026-10-23T23:34:07.8933482Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8933625Z
2026-10-23T23:34:07.8933992Z src/server/v2/adapter.ts:4138:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8934400Z
2026-10-23T23:34:07.8934529Z 4138 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-23T23:34:07.8934751Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8934833Z
2026-10-23T23:34:07.8934836Z
2026-10-23T23:34:07.8934910Z ~/packages/provider-acp-registry$ tsc --noEmit
2026-10-23T23:34:07.8935396Z 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)
2026-10-23T23:34:07.8935809Z
2026-10-23T23:34:07.8935881Z 31 read: (credentialSource, sinceMs, untilMs) =>
2026-10-23T23:34:07.8936075Z ~~~~
2026-10-23T23:34:07.8936139Z
2026-10-23T23:34:07.8936445Z 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)
2026-10-23T23:34:07.8936796Z
2026-10-23T23:34:07.8936845Z 82 read: (apiKey) =>
2026-10-23T23:34:07.8936962Z ~~~~
2026-10-23T23:34:07.8937023Z
2026-10-23T23:34:07.8937327Z src/server/accountUsage.ts:360:5 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
2026-10-23T23:34:07.8937672Z
2026-10-23T23:34:07.8937723Z 360 Effect.catch(() =>
2026-10-23T23:34:07.8937924Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8937995Z
2026-10-23T23:34:07.8938342Z src/server/adapter.ts:904:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8938735Z
2026-10-23T23:34:07.8938847Z 904 getCapabilities: () => Effect.succeed(CursorProviderCapabilitiesV2),
2026-10-23T23:34:07.8939045Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8939117Z
2026-10-23T23:34:07.8939477Z src/server/adapter.ts:905:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8939882Z
2026-10-23T23:34:07.8940008Z 905 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-23T23:34:07.8940328Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8940410Z
2026-10-23T23:34:07.8940905Z 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)
2026-10-23T23:34:07.8941430Z
2026-10-23T23:34:07.8941484Z 55 Effect.runPromise(
2026-10-23T23:34:07.8941613Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8941688Z
2026-10-23T23:34:07.8941977Z 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)
2026-10-23T23:34:07.8942306Z
2026-10-23T23:34:07.8942379Z 59 onNone: () => Effect.succeed(undefined),
2026-10-23T23:34:07.8942550Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8942653Z
2026-10-23T23:34:07.8943231Z 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)
2026-10-23T23:34:07.8943753Z
2026-10-23T23:34:07.8943806Z 69 Effect.runPromise(
2026-10-23T23:34:07.8943931Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8944004Z
2026-10-23T23:34:07.8944479Z 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)
2026-10-23T23:34:07.8944997Z
2026-10-23T23:34:07.8945073Z 82 clear: () => Effect.runPromise(credentials.remove),
2026-10-23T23:34:07.8945244Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8945335Z
2026-10-23T23:34:07.8945698Z 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)
2026-10-23T23:34:07.8946129Z
2026-10-23T23:34:07.8946188Z 228 Effect.flatMap((snapshot) =>
2026-10-23T23:34:07.8946336Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8946415Z
2026-10-23T23:34:07.8946620Z src/server/usageLimits.test.ts:74:5 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-23T23:34:07.8946871Z
2026-10-23T23:34:07.8946926Z 74 Effect.gen(function* () {
2026-10-23T23:34:07.8947059Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8947195Z 75 yield* withNodeServices(
2026-10-23T23:34:07.8947329Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8947455Z ...
2026-10-23T23:34:07.8947552Z 115 );
2026-10-23T23:34:07.8947654Z ~~~~~~~~
2026-10-23T23:34:07.8947847Z 116 }),
2026-10-23T23:34:07.8947947Z ~~~~~~
2026-10-23T23:34:07.8948006Z
2026-10-23T23:34:07.8948008Z
2026-10-23T23:34:07.8948069Z ~/packages/client-runtime$ tsc --noEmit
2026-10-23T23:34:07.8948526Z src/server/driver.ts:174:7 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.8948922Z
2026-10-23T23:34:07.8948980Z 174 Effect.flatMap((snapshot) =>
2026-10-23T23:34:07.8949119Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8949192Z
2026-10-23T23:34:07.8949452Z src/server/xaiAcpExtension.ts:1507:15 - suggestion TS377009: The previous Effect does not fail, so this error-handling branch will never run. effect(catchUnfailableEffect)
2026-10-23T23:34:07.8949750Z
2026-10-23T23:34:07.8949820Z 1507 }).pipe(Effect.catch(() => Effect.void));
2026-10-23T23:34:07.8949978Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8950063Z
2026-10-23T23:34:07.8950343Z src/server/xaiAcpExtension.ts:1507:15 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
2026-10-23T23:34:07.8950664Z
2026-10-23T23:34:07.8950734Z 1507 }).pipe(Effect.catch(() => Effect.void));
2026-10-23T23:34:07.8950888Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8950969Z
2026-10-23T23:34:07.8951348Z src/server/xaiAcpExtension.ts:1588:13 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.8951766Z
2026-10-23T23:34:07.8951826Z 1588 Effect.catchCause((cause) =>
2026-10-23T23:34:07.8951981Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8952067Z
2026-10-23T23:34:07.8952069Z
2026-10-23T23:34:07.8952345Z src/server/AcpRegistryRuntimeCoordinator.ts:154:52 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8952664Z
2026-10-23T23:34:07.8952879Z 154 return yield* Effect.raceFirst(effect.pipe(Effect.map(Option.some)), foregroundStarted);
2026-10-23T23:34:07.8953131Z ~~~~~~~~~~
2026-10-23T23:34:07.8953241Z
2026-10-23T23:34:07.8953597Z src/server/AcpRegistrySupport.ts:1301:9 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.8953992Z
2026-10-23T23:34:07.8954047Z 1301 Effect.catch((error) =>
2026-10-23T23:34:07.8954182Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8954256Z
2026-10-23T23:34:07.8954570Z src/server/auth.ts:146:13 - suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption)
2026-10-23T23:34:07.8954929Z
2026-10-23T23:34:07.8954984Z 146 Option.isSome(result)
2026-10-23T23:34:07.8955122Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.8955204Z
2026-10-23T23:34:07.8955477Z src/server/driver.ts:640:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("enrichSnapshot")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8955792Z
2026-10-23T23:34:07.8955898Z 640 enrichSnapshot: ({ snapshot, getSnapshot, publishSnapshot }) => {
2026-10-23T23:34:07.8956119Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8956194Z
2026-10-23T23:34:07.8956422Z src/server/driver.ts:650:51 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8956694Z
2026-10-23T23:34:07.8956800Z 650 : enrichProviderCached(snapshot).pipe(Effect.map(Option.some))
2026-10-23T23:34:07.8957082Z ~~~~~~~~~~
2026-10-23T23:34:07.8957190Z
2026-10-23T23:34:07.8957192Z
2026-10-23T23:34:07.8957441Z src/authorization/remote.test.ts:232:25 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8957730Z
2026-10-23T23:34:07.8957847Z 232 identity: Effect.succeed(Option.some({ accountId: "user_connect" })),
2026-10-23T23:34:07.8958058Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8958151Z
2026-10-23T23:34:07.8958393Z src/authorization/remote.test.ts:237:17 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8958678Z
2026-10-23T23:34:07.8958758Z 237 id: Effect.succeed(Option.some("device-1")),
2026-10-23T23:34:07.8958927Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8959011Z
2026-10-23T23:34:07.8959369Z src/authorization/service.ts:553:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpop")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8959773Z
2026-10-23T23:34:07.8959828Z 553 authorizeDpop: (input) =>
2026-10-23T23:34:07.8959960Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.8960030Z
2026-10-23T23:34:07.8960392Z src/authorization/service.ts:555:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpopHttp")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8960794Z
2026-10-23T23:34:07.8960850Z 555 authorizeDpopHttp: (input) =>
2026-10-23T23:34:07.8960993Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8961066Z
2026-10-23T23:34:07.8961412Z src/connection/githubRoutingPermissions.ts:138:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8961805Z
2026-10-23T23:34:07.8961854Z 138 get: (entry) =>
2026-10-23T23:34:07.8961967Z ~~~
2026-10-23T23:34:07.8962031Z
2026-10-23T23:34:07.8962462Z src/connection/githubRoutingPermissions.ts:143:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8962873Z
2026-10-23T23:34:07.8962928Z 143 set: (entry, permission) => {
2026-10-23T23:34:07.8963068Z ~~~
2026-10-23T23:34:07.8963131Z
2026-10-23T23:34:07.8963492Z src/connection/githubRoutingPermissions.ts:159:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8963899Z
2026-10-23T23:34:07.8963955Z 159 forget: (environmentId) =>
2026-10-23T23:34:07.8964092Z ~~~~~~
2026-10-23T23:34:07.8964157Z
2026-10-23T23:34:07.8964495Z 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)
2026-10-23T23:34:07.8964872Z
2026-10-23T23:34:07.8964926Z 298 registerPairing: (input) =>
2026-10-23T23:34:07.8965063Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8965137Z
2026-10-23T23:34:07.8965459Z 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)
2026-10-23T23:34:07.8965827Z
2026-10-23T23:34:07.8965880Z 304 registerSsh: (input) =>
2026-10-23T23:34:07.8966045Z ~~~~~~~~~~~
2026-10-23T23:34:07.8966112Z
2026-10-23T23:34:07.8966438Z 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)
2026-10-23T23:34:07.8966878Z
2026-10-23T23:34:07.8966936Z 309 updateBearer: (input) =>
2026-10-23T23:34:07.8967069Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8967137Z
2026-10-23T23:34:07.8967427Z 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)
2026-10-23T23:34:07.8967758Z
2026-10-23T23:34:07.8967820Z 1392 ? Effect.succeed(undefined)
2026-10-23T23:34:07.8967972Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8968066Z
2026-10-23T23:34:07.8968351Z 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)
2026-10-23T23:34:07.8968680Z
2026-10-23T23:34:07.8968740Z 1476 ? Effect.succeed(undefined)
2026-10-23T23:34:07.8968887Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8968979Z
2026-10-23T23:34:07.8969265Z 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)
2026-10-23T23:34:07.8969595Z
2026-10-23T23:34:07.8969662Z 1489 : Effect.succeed(undefined),
2026-10-23T23:34:07.8969827Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8969927Z
2026-10-23T23:34:07.8970194Z src/platform/orchestrationCache.test.ts:104:15 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8970507Z
2026-10-23T23:34:07.8970566Z 104 }).pipe(Effect.map(Option.some));
2026-10-23T23:34:07.8970718Z ~~~~~~~~~~
2026-10-23T23:34:07.8970797Z
2026-10-23T23:34:07.8971267Z 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)
2026-10-23T23:34:07.8971711Z
2026-10-23T23:34:07.8971808Z 72 load: (prepared: PreparedConnection, threadId: ThreadId) => {
2026-10-23T23:34:07.8971988Z ~~~~
2026-10-23T23:34:07.8972048Z
2026-10-23T23:34:07.8972365Z 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)
2026-10-23T23:34:07.8972723Z
2026-10-23T23:34:07.8972830Z 56 Effect.catch(() => Effect.succeed(Option.none<AuthSessionState>())),
2026-10-23T23:34:07.8973026Z ~~~~~~~~~~~~
2026-10-23T23:34:07.8973104Z
2026-10-23T23:34:07.8973469Z 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)
2026-10-23T23:34:07.8973877Z
2026-10-23T23:34:07.8973934Z 62 return yield* Effect.fail(
2026-10-23T23:34:07.8974076Z ~~~~~
2026-10-23T23:34:07.8974150Z
2026-10-23T23:34:07.8974466Z 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)
2026-10-23T23:34:07.8974822Z
2026-10-23T23:34:07.8974922Z 57 execute: (target: OutdatedServerUpdateTarget, atomRegistry) => {
2026-10-23T23:34:07.8975107Z ~~~~~~~
2026-10-23T23:34:07.8975169Z
2026-10-23T23:34:07.8975511Z 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)
2026-10-23T23:34:07.8975974Z
2026-10-23T23:34:07.8976051Z 90 load: (prepared, input) =>
2026-10-23T23:34:07.8976183Z ~~~~
2026-10-23T23:34:07.8976243Z
2026-10-23T23:34:07.8976680Z 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)
2026-10-23T23:34:07.8977156Z
2026-10-23T23:34:07.8977265Z 34 return yield* Schema.decodeUnknownEffect(codec)(stored.value).pipe(
2026-10-23T23:34:07.8977469Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.8977570Z
2026-10-23T23:34:07.8977814Z src/state/queryPersistence.ts:35:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.8978099Z
2026-10-23T23:34:07.8978152Z 35 Effect.map(Option.some),
2026-10-23T23:34:07.8978288Z ~~~~~~~~~~
2026-10-23T23:34:07.8978356Z
2026-10-23T23:34:07.8978642Z src/state/server.ts:680:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("execute")((target, atomRegistry) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8978969Z
2026-10-23T23:34:07.8979030Z 680 execute: (target, atomRegistry) => {
2026-10-23T23:34:07.8979170Z ~~~~~~~
2026-10-23T23:34:07.8979232Z
2026-10-23T23:34:07.8979587Z src/state/server.ts:1125:11 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.8979980Z
2026-10-23T23:34:07.8980039Z 1125 Effect.flatMap((summary) =>
2026-10-23T23:34:07.8980318Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8980398Z
2026-10-23T23:34:07.8980634Z src/state/shell-sync.test.ts:90:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8980914Z
2026-10-23T23:34:07.8981071Z 90 loadShell: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8981239Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8981333Z
2026-10-23T23:34:07.8981565Z src/state/shell-sync.test.ts:96:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8981842Z
2026-10-23T23:34:07.8981918Z 96 loadThread: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8982087Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8982181Z
2026-10-23T23:34:07.8982411Z src/state/shell-sync.test.ts:99:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8982688Z
2026-10-23T23:34:07.8982774Z 99 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8982956Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8983054Z
2026-10-23T23:34:07.8983291Z src/state/shell-sync.test.ts:101:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8983569Z
2026-10-23T23:34:07.8983649Z 101 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8983822Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8983918Z
2026-10-23T23:34:07.8984153Z src/state/shell-sync.test.ts:108:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8984433Z
2026-10-23T23:34:07.8984503Z 108 load: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8984666Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8984754Z
2026-10-23T23:34:07.8984990Z src/state/shell-sync.test.ts:229:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8985350Z
2026-10-23T23:34:07.8985429Z 229 loadShell: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8985595Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8985688Z
2026-10-23T23:34:07.8985920Z src/state/shell-sync.test.ts:238:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8986227Z
2026-10-23T23:34:07.8986304Z 238 loadThread: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8986474Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8986565Z
2026-10-23T23:34:07.8986796Z src/state/shell-sync.test.ts:241:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8987071Z
2026-10-23T23:34:07.8987158Z 241 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8987344Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8987442Z
2026-10-23T23:34:07.8987675Z src/state/shell-sync.test.ts:243:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8987951Z
2026-10-23T23:34:07.8988030Z 243 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8988202Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8988295Z
2026-10-23T23:34:07.8988527Z src/state/shell-sync.test.ts:250:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8988802Z
2026-10-23T23:34:07.8988871Z 250 load: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8989031Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8989120Z
2026-10-23T23:34:07.8989352Z src/state/shell-sync.test.ts:349:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8989629Z
2026-10-23T23:34:07.8989784Z 349 loadShell: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8989952Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8990042Z
2026-10-23T23:34:07.8990277Z src/state/shell-sync.test.ts:355:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8990554Z
2026-10-23T23:34:07.8990631Z 355 loadThread: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8990798Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8990890Z
2026-10-23T23:34:07.8991121Z src/state/shell-sync.test.ts:358:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8991395Z
2026-10-23T23:34:07.8991481Z 358 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8991665Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8991763Z
2026-10-23T23:34:07.8991999Z src/state/shell-sync.test.ts:360:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8992276Z
2026-10-23T23:34:07.8992354Z 360 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8992523Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8992618Z
2026-10-23T23:34:07.8992850Z src/state/shell-sync.test.ts:367:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8993126Z
2026-10-23T23:34:07.8993195Z 367 load: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8993354Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8993440Z
2026-10-23T23:34:07.8993672Z src/state/shell-sync.test.ts:446:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8994037Z
2026-10-23T23:34:07.8994136Z 446 loadShell: () => Effect.succeed(Option.some(cachedSnapshot)),
2026-10-23T23:34:07.8994186Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8994189Z
2026-10-23T23:34:07.8994420Z src/state/shell-sync.test.ts:448:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8994422Z
2026-10-23T23:34:07.8994497Z 448 loadThread: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8994547Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8994550Z
2026-10-23T23:34:07.8994782Z src/state/shell-sync.test.ts:451:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8994784Z
2026-10-23T23:34:07.8994871Z 451 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8994925Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8994928Z
2026-10-23T23:34:07.8995160Z src/state/shell-sync.test.ts:453:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8995162Z
2026-10-23T23:34:07.8995237Z 453 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.8995289Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8995291Z
2026-10-23T23:34:07.8995521Z src/state/shell-sync.test.ts:460:21 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8995523Z
2026-10-23T23:34:07.8995606Z 460 load: () => Effect.succeed(Option.some(httpSnapshot)),
2026-10-23T23:34:07.8995655Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8995657Z
2026-10-23T23:34:07.8995983Z src/state/shellSnapshotHttp.ts:98:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ShellSnapshotLoader.load")((prepared) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8996081Z
2026-10-23T23:34:07.8996148Z 98 load: (prepared: PreparedConnection) =>
2026-10-23T23:34:07.8996190Z ~~~~
2026-10-23T23:34:07.8996193Z
2026-10-23T23:34:07.8996580Z src/state/threadHistoryController.ts:47:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.register")((environmentId, threadId, handler) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8996583Z
2026-10-23T23:34:07.8996656Z 47 register: (environmentId, threadId, handler) =>
2026-10-23T23:34:07.8996700Z ~~~~~~~~
2026-10-23T23:34:07.8996703Z
2026-10-23T23:34:07.8997058Z src/state/threadHistoryController.ts:59:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.unregister")((registration) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8997063Z
2026-10-23T23:34:07.8997117Z 59 unregister: (registration) =>
2026-10-23T23:34:07.8997164Z ~~~~~~~~~~
2026-10-23T23:34:07.8997166Z
2026-10-23T23:34:07.8997565Z src/state/threadHistoryController.ts:74:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.loadEarlier")((environmentId, threadId, throughEntryId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.8997568Z
2026-10-23T23:34:07.8997656Z 74 loadEarlier: (environmentId, threadId, throughEntryId) =>
2026-10-23T23:34:07.8997699Z ~~~~~~~~~~~
2026-10-23T23:34:07.8997702Z
2026-10-23T23:34:07.8997945Z src/state/threads-sync.test.ts:1006:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.8997948Z
2026-10-23T23:34:07.8998112Z 1006 : { loadCached: Effect.succeed(Option.some(saved!)) },
2026-10-23T23:34:07.8998167Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.8998169Z
2026-10-23T23:34:07.8998453Z 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)
2026-10-23T23:34:07.8998456Z
2026-10-23T23:34:07.8998546Z 447 execute: (input: RunVcsStackedActionInput, registry) => {
2026-10-23T23:34:07.8998590Z ~~~~~~~
2026-10-23T23:34:07.8998592Z
2026-10-23T23:34:07.8998594Z
2026-10-23T23:34:07.8998647Z ~/apps/mobile$ tsc --noEmit
2026-10-23T23:34:07.8998698Z ~/infra/relay$ tsc --noEmit
2026-10-23T23:34:07.8998745Z ~/apps/web$ tsc --noEmit
2026-10-23T23:34:07.8998792Z Result (22 files):
2026-10-23T23:34:07.8998836Z - 0 errors
2026-10-23T23:34:07.8998880Z - 0 warnings
2026-10-23T23:34:07.8998921Z - 0 hints
2026-10-23T23:34:07.8998923Z
2026-10-23T23:34:07.8998928Z
2026-10-23T23:34:07.8998982Z ~/apps/desktop$ tsc --noEmit
2026-10-23T23:34:07.8999321Z 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)
2026-10-23T23:34:07.8999324Z
2026-10-23T23:34:07.8999375Z 220 send: (body) =>
2026-10-23T23:34:07.8999417Z ~~~~
2026-10-23T23:34:07.8999421Z
2026-10-23T23:34:07.8999743Z 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)
2026-10-23T23:34:07.8999745Z
2026-10-23T23:34:07.8999797Z 12 onFailure: (error) =>
2026-10-23T23:34:07.8999840Z ~~~~~~~~~
2026-10-23T23:34:07.8999842Z
2026-10-23T23:34:07.9000187Z src/environments/CloudflareApiPause.ts:64:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CloudflareApiPause.pauseUntil")((untilMillis) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9000191Z
2026-10-23T23:34:07.9000309Z 64 pauseUntil: (untilMillis) =>
2026-10-23T23:34:07.9000353Z ~~~~~~~~~~
2026-10-23T23:34:07.9000355Z
2026-10-23T23:34:07.9000612Z src/http/Api.ts:198:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9000615Z
2026-10-23T23:34:07.9000662Z 198 onNone: () =>
2026-10-23T23:34:07.9000705Z ~~~~~~
2026-10-23T23:34:07.9000707Z
2026-10-23T23:34:07.9001008Z src/worker.ts:92:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpPlatform.HttpPlatform.fileResponse")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9001010Z
2026-10-23T23:34:07.9001125Z 92 fileResponse: () => Effect.die("Relay API does not serve filesystem responses"),
2026-10-23T23:34:07.9001170Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9001172Z
2026-10-23T23:34:07.9001483Z src/worker.ts:93:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpPlatform.HttpPlatform.fileWebResponse")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9001485Z
2026-10-23T23:34:07.9001598Z 93 fileWebResponse: () => Effect.die("Relay API does not serve file responses"),
2026-10-23T23:34:07.9001640Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9001643Z
2026-10-23T23:34:07.9001920Z src/worker.ts:242:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.hold")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9001922Z
2026-10-23T23:34:07.9001989Z 242 hold: ({ endpointKey, baseUrl, hook }) =>
2026-10-23T23:34:07.9002032Z ~~~~
2026-10-23T23:34:07.9002034Z
2026-10-23T23:34:07.9002307Z src/worker.ts:244:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.wake")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9002384Z
2026-10-23T23:34:07.9002446Z 244 wake: ({ endpointKey, baseUrl }) =>
2026-10-23T23:34:07.9002490Z ~~~~
2026-10-23T23:34:07.9002492Z
2026-10-23T23:34:07.9002768Z src/worker.ts:246:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HookInbox.HookInbox.clear")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9002770Z
2026-10-23T23:34:07.9002824Z 246 clear: ({ endpointKey }) =>
2026-10-23T23:34:07.9002866Z ~~~~~
2026-10-23T23:34:07.9002869Z
2026-10-23T23:34:07.9003207Z src/worker.ts:275:15 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("FcmDeliveryQueueSender.FcmDeliveryQueueSender.send")((body) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9003211Z
2026-10-23T23:34:07.9003261Z 275 send: (body) =>
2026-10-23T23:34:07.9003305Z ~~~~
2026-10-23T23:34:07.9003308Z
2026-10-23T23:34:07.9003310Z
2026-10-23T23:34:07.9003645Z src/app/DesktopAppActivation.ts:389:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppActivation.complete")((response) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9003648Z
2026-10-23T23:34:07.9003753Z 389 complete: (response) => Effect.sync(() => broker.complete(response)),
2026-10-23T23:34:07.9003795Z ~~~~~~~~
2026-10-23T23:34:07.9003798Z
2026-10-23T23:34:07.9004037Z src/app/DesktopClerk.test.ts:300:27 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9004039Z
2026-10-23T23:34:07.9004129Z 300 currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-23T23:34:07.9004181Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9004185Z
2026-10-23T23:34:07.9004542Z 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)
2026-10-23T23:34:07.9004545Z
2026-10-23T23:34:07.9004595Z 459 onSome: (logFile) =>
2026-10-23T23:34:07.9004637Z ~~~~~~
2026-10-23T23:34:07.9004640Z
2026-10-23T23:34:07.9004989Z 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)
2026-10-23T23:34:07.9004992Z
2026-10-23T23:34:07.9005051Z 589 forInstance: (id) => makeForId(id),
2026-10-23T23:34:07.9005094Z ~~~~~~~~~~~
2026-10-23T23:34:07.9005096Z
2026-10-23T23:34:07.9005339Z src/app/DesktopWebLinks.test.ts:29:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9005343Z
2026-10-23T23:34:07.9005435Z 29 currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-23T23:34:07.9005491Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9005493Z
2026-10-23T23:34:07.9005792Z 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)
2026-10-23T23:34:07.9005796Z
2026-10-23T23:34:07.9005843Z 72 receive: (url) =>
2026-10-23T23:34:07.9005885Z ~~~~~~~
2026-10-23T23:34:07.9005888Z
2026-10-23T23:34:07.9006239Z 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)
2026-10-23T23:34:07.9006242Z
2026-10-23T23:34:07.9006296Z 77 setRendererReady: (ready) =>
2026-10-23T23:34:07.9006411Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9006414Z
2026-10-23T23:34:07.9006718Z src/backend/DesktopBackendManager.ts:1062:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(run) { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9006721Z
2026-10-23T23:34:07.9006769Z 1062 onSome: (run) =>
2026-10-23T23:34:07.9006811Z ~~~~~~
2026-10-23T23:34:07.9006813Z
2026-10-23T23:34:07.9007123Z src/backend/DesktopBackendPool.ts:307:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9007125Z
2026-10-23T23:34:07.9007169Z 307 get: (id) =>
2026-10-23T23:34:07.9007211Z ~~~
2026-10-23T23:34:07.9007213Z
2026-10-23T23:34:07.9007518Z src/backend/DesktopBackendPool.ts:342:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9007522Z
2026-10-23T23:34:07.9007620Z 342 get: (id) => Effect.succeed(Option.fromNullishOr(byId.get(id))),
2026-10-23T23:34:07.9007662Z ~~~
2026-10-23T23:34:07.9007666Z
2026-10-23T23:34:07.9007981Z src/backend/DesktopBackendPool.ts:345:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.register")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9007983Z
2026-10-23T23:34:07.9008118Z 345 register: () => Effect.die("DesktopBackendPool.layerTest does not support register"),
2026-10-23T23:34:07.9008161Z ~~~~~~~~
2026-10-23T23:34:07.9008163Z
2026-10-23T23:34:07.9008482Z src/backend/DesktopBackendPool.ts:346:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.unregister")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9008487Z
2026-10-23T23:34:07.9008627Z 346 unregister: () => Effect.die("DesktopBackendPool.layerTest does not support unregister"),
2026-10-23T23:34:07.9008670Z ~~~~~~~~~~
2026-10-23T23:34:07.9008736Z
2026-10-23T23:34:07.9009028Z src/electron/ElectronApp.ts:145:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.exit")((code) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9009031Z
2026-10-23T23:34:07.9009076Z 145 exit: (code) =>
2026-10-23T23:34:07.9009119Z ~~~~
2026-10-23T23:34:07.9009121Z
2026-10-23T23:34:07.9009420Z src/electron/ElectronApp.ts:149:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.relaunch")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9009424Z
2026-10-23T23:34:07.9009474Z 149 relaunch: (options) =>
2026-10-23T23:34:07.9009516Z ~~~~~~~~
2026-10-23T23:34:07.9009518Z
2026-10-23T23:34:07.9009824Z src/electron/ElectronApp.ts:153:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setPath")((name, path) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9009827Z
2026-10-23T23:34:07.9009879Z 153 setPath: (name, path) =>
2026-10-23T23:34:07.9009919Z ~~~~~~~
2026-10-23T23:34:07.9009921Z
2026-10-23T23:34:07.9010214Z src/electron/ElectronApp.ts:157:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setName")((name) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9010216Z
2026-10-23T23:34:07.9010263Z 157 setName: (name) =>
2026-10-23T23:34:07.9010305Z ~~~~~~~
2026-10-23T23:34:07.9010307Z
2026-10-23T23:34:07.9010634Z src/electron/ElectronApp.ts:161:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAboutPanelOptions")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9010706Z
2026-10-23T23:34:07.9010767Z 161 setAboutPanelOptions: (options) =>
2026-10-23T23:34:07.9010814Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9010817Z
2026-10-23T23:34:07.9011129Z src/electron/ElectronApp.ts:165:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAppUserModelId")((id) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9011132Z
2026-10-23T23:34:07.9011186Z 165 setAppUserModelId: (id) =>
2026-10-23T23:34:07.9011229Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9011231Z
2026-10-23T23:34:07.9011591Z src/electron/ElectronApp.ts:170:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAsDefaultProtocolClient")((protocol, path, args) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9011594Z
2026-10-23T23:34:07.9011680Z 170 setAsDefaultProtocolClient: (protocol, path, args) =>
2026-10-23T23:34:07.9011728Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9011732Z
2026-10-23T23:34:07.9012059Z src/electron/ElectronApp.ts:177:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDesktopName")((desktopName) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9012061Z
2026-10-23T23:34:07.9012118Z 177 setDesktopName: (desktopName) =>
2026-10-23T23:34:07.9012161Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9012163Z
2026-10-23T23:34:07.9012471Z src/electron/ElectronApp.ts:184:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDockIcon")((iconPath) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9012473Z
2026-10-23T23:34:07.9012526Z 184 setDockIcon: (iconPath) =>
2026-10-23T23:34:07.9012568Z ~~~~~~~~~~~
2026-10-23T23:34:07.9012571Z
2026-10-23T23:34:07.9012917Z src/electron/ElectronApp.ts:188:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.appendCommandLineSwitch")((switchName, value) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9012922Z
2026-10-23T23:34:07.9013060Z 188 appendCommandLineSwitch: (switchName, value) =>
2026-10-23T23:34:07.9013109Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9013111Z
2026-10-23T23:34:07.9013439Z src/electron/ElectronApp.ts:196:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.onBeforeQuitForUpdate")((listener) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9013441Z
2026-10-23T23:34:07.9013502Z 196 onBeforeQuitForUpdate: (listener) =>
2026-10-23T23:34:07.9013547Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9013549Z
2026-10-23T23:34:07.9013885Z src/electron/ElectronApp.ts:206:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.removeCommandLineSwitch")((switchName) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9013890Z
2026-10-23T23:34:07.9013954Z 206 removeCommandLineSwitch: (switchName) =>
2026-10-23T23:34:07.9014000Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9014003Z
2026-10-23T23:34:07.9014341Z 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)
2026-10-23T23:34:07.9014345Z
2026-10-23T23:34:07.9014402Z 169 showMessageBox: (options, owner) =>
2026-10-23T23:34:07.9014445Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9014447Z
2026-10-23T23:34:07.9014779Z 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)
2026-10-23T23:34:07.9014782Z
2026-10-23T23:34:07.9014838Z 185 showErrorBox: (title, content) =>
2026-10-23T23:34:07.9014880Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9014952Z
2026-10-23T23:34:07.9015284Z src/electron/ElectronMenu.ts:193:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.setApplicationMenu")((template) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9015286Z
2026-10-23T23:34:07.9015344Z 193 setApplicationMenu: (template) =>
2026-10-23T23:34:07.9015391Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9015394Z
2026-10-23T23:34:07.9015705Z src/electron/ElectronMenu.ts:207:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.popupTemplate")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9015708Z
2026-10-23T23:34:07.9015761Z 207 popupTemplate: (input) =>
2026-10-23T23:34:07.9015805Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9015807Z
2026-10-23T23:34:07.9016149Z src/electron/ElectronMenu.ts:225:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.showContextMenu")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9016153Z
2026-10-23T23:34:07.9016209Z 225 showContextMenu: (input) =>
2026-10-23T23:34:07.9016257Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9016259Z
2026-10-23T23:34:07.9016644Z 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)
2026-10-23T23:34:07.9016647Z
2026-10-23T23:34:07.9016720Z 82 getSystemIdleState: (idleThresholdSeconds) =>
2026-10-23T23:34:07.9016766Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9016768Z
2026-10-23T23:34:07.9017104Z 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)
2026-10-23T23:34:07.9017108Z
2026-10-23T23:34:07.9017161Z 77 encryptString: (value) =>
2026-10-23T23:34:07.9017203Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9017205Z
2026-10-23T23:34:07.9017616Z 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)
2026-10-23T23:34:07.9017619Z
2026-10-23T23:34:07.9017672Z 82 decryptString: (value) =>
2026-10-23T23:34:07.9017714Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9017717Z
2026-10-23T23:34:07.9018029Z src/electron/ElectronShell.ts:68:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openExternal")((rawUrl) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9018033Z
2026-10-23T23:34:07.9018084Z 68 openExternal: (rawUrl) =>
2026-10-23T23:34:07.9018127Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9018129Z
2026-10-23T23:34:07.9018458Z src/electron/ElectronShell.ts:79:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openSystemSettings")((pane) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9018463Z
2026-10-23T23:34:07.9018518Z 79 openSystemSettings: (pane) =>
2026-10-23T23:34:07.9018562Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9018565Z
2026-10-23T23:34:07.9018864Z src/electron/ElectronShell.ts:86:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.copyText")((text) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9018867Z
2026-10-23T23:34:07.9018916Z 86 copyText: (text) =>
2026-10-23T23:34:07.9018959Z ~~~~~~~~
2026-10-23T23:34:07.9018961Z
2026-10-23T23:34:07.9019263Z 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)
2026-10-23T23:34:07.9019332Z
2026-10-23T23:34:07.9019382Z 34 setSource: (theme) =>
2026-10-23T23:34:07.9019425Z ~~~~~~~~~
2026-10-23T23:34:07.9019427Z
2026-10-23T23:34:07.9019739Z 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)
2026-10-23T23:34:07.9019741Z
2026-10-23T23:34:07.9019792Z 41 onUpdated: (listener) =>
2026-10-23T23:34:07.9019834Z ~~~~~~~~~
2026-10-23T23:34:07.9019836Z
2026-10-23T23:34:07.9020251Z 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)
2026-10-23T23:34:07.9020256Z
2026-10-23T23:34:07.9020306Z 85 setFeedURL: (options) =>
2026-10-23T23:34:07.9020349Z ~~~~~~~~~~
2026-10-23T23:34:07.9020352Z
2026-10-23T23:34:07.9020679Z 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)
2026-10-23T23:34:07.9020684Z
2026-10-23T23:34:07.9020736Z 90 setAutoDownload: (value) =>
2026-10-23T23:34:07.9020780Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9020783Z
2026-10-23T23:34:07.9021123Z 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)
2026-10-23T23:34:07.9021126Z
2026-10-23T23:34:07.9021187Z 95 setAutoInstallOnAppQuit: (value) =>
2026-10-23T23:34:07.9021234Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9021236Z
2026-10-23T23:34:07.9021553Z 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)
2026-10-23T23:34:07.9021557Z
2026-10-23T23:34:07.9021609Z 100 setChannel: (channel) =>
2026-10-23T23:34:07.9021652Z ~~~~~~~~~~
2026-10-23T23:34:07.9021654Z
2026-10-23T23:34:07.9022068Z 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)
2026-10-23T23:34:07.9022071Z
2026-10-23T23:34:07.9022126Z 105 setAllowPrerelease: (value) =>
2026-10-23T23:34:07.9022170Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9022172Z
2026-10-23T23:34:07.9022503Z 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)
2026-10-23T23:34:07.9022505Z
2026-10-23T23:34:07.9022559Z 111 setAllowDowngrade: (value) =>
2026-10-23T23:34:07.9022605Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9022609Z
2026-10-23T23:34:07.9022940Z 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)
2026-10-23T23:34:07.9022944Z
2026-10-23T23:34:07.9022997Z 116 setFullChangelog: (value) =>
2026-10-23T23:34:07.9023040Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9023042Z
2026-10-23T23:34:07.9023407Z 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)
2026-10-23T23:34:07.9023410Z
2026-10-23T23:34:07.9023481Z 121 setDisableDifferentialDownload: (value) =>
2026-10-23T23:34:07.9023528Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9023530Z
2026-10-23T23:34:07.9023852Z src/electron/ElectronUpdater.ts:140:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.quitAndInstall")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9023937Z
2026-10-23T23:34:07.9024017Z 140 quitAndInstall: ({ isSilent, isForceRunAfter }) =>
2026-10-23T23:34:07.9024061Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9024063Z
2026-10-23T23:34:07.9024385Z 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)
2026-10-23T23:34:07.9024387Z
2026-10-23T23:34:07.9024439Z 154 on: (eventName, listener) => {
2026-10-23T23:34:07.9024482Z ~~
2026-10-23T23:34:07.9024484Z
2026-10-23T23:34:07.9024794Z src/electron/ElectronWindow.ts:211:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.create")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9024799Z
2026-10-23T23:34:07.9024849Z 211 create: (options) => {
2026-10-23T23:34:07.9024892Z ~~~~~~
2026-10-23T23:34:07.9024894Z
2026-10-23T23:34:07.9025204Z src/electron/ElectronWindow.ts:243:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.setMain")((window) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9025206Z
2026-10-23T23:34:07.9025308Z 243 setMain: (window) => Ref.set(mainWindowRef, Option.some(window)),
2026-10-23T23:34:07.9025351Z ~~~~~~~
2026-10-23T23:34:07.9025353Z
2026-10-23T23:34:07.9025666Z src/electron/ElectronWindow.ts:244:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.clearMain")((window) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9025669Z
2026-10-23T23:34:07.9025718Z 244 clearMain: (window) =>
2026-10-23T23:34:07.9025758Z ~~~~~~~~~
2026-10-23T23:34:07.9025761Z
2026-10-23T23:34:07.9026110Z src/electron/ElectronWindow.ts:254:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.prepareReveal")((window) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9026178Z
2026-10-23T23:34:07.9026232Z 254 prepareReveal: (window) =>
2026-10-23T23:34:07.9026276Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9026279Z
2026-10-23T23:34:07.9026580Z src/electron/ElectronWindow.ts:264:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.reveal")((window) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9026584Z
2026-10-23T23:34:07.9026632Z 264 reveal: (window) =>
2026-10-23T23:34:07.9026673Z ~~~~~~
2026-10-23T23:34:07.9026676Z
2026-10-23T23:34:07.9027049Z src/settings/DesktopAppSettings.ts:526:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9027054Z
2026-10-23T23:34:07.9027129Z 526 setMainWindowBounds: (bounds, isMaximized) =>
2026-10-23T23:34:07.9027173Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9027177Z
2026-10-23T23:34:07.9027528Z src/settings/DesktopAppSettings.ts:538:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9027530Z
2026-10-23T23:34:07.9027588Z 538 setServerExposureMode: (mode) =>
2026-10-23T23:34:07.9027636Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9027638Z
2026-10-23T23:34:07.9027980Z src/settings/DesktopAppSettings.ts:542:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9027983Z
2026-10-23T23:34:07.9028037Z 542 setTailscaleServe: (input) =>
2026-10-23T23:34:07.9028156Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9028159Z
2026-10-23T23:34:07.9028507Z src/settings/DesktopAppSettings.ts:546:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9028510Z
2026-10-23T23:34:07.9028566Z 546 setUpdateChannel: (channel) =>
2026-10-23T23:34:07.9028610Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9028614Z
2026-10-23T23:34:07.9028970Z src/settings/DesktopAppSettings.ts:550:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9028973Z
2026-10-23T23:34:07.9029032Z 550 setWslBackendEnabled: (enabled) =>
2026-10-23T23:34:07.9029079Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9029081Z
2026-10-23T23:34:07.9029421Z src/settings/DesktopAppSettings.ts:554:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9029424Z
2026-10-23T23:34:07.9029476Z 554 setWslDistro: (distro) =>
2026-10-23T23:34:07.9029519Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9029521Z
2026-10-23T23:34:07.9029852Z src/settings/DesktopAppSettings.ts:560:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9029854Z
2026-10-23T23:34:07.9029905Z 560 setWslOnly: (enabled) =>
2026-10-23T23:34:07.9029949Z ~~~~~~~~~~
2026-10-23T23:34:07.9029951Z
2026-10-23T23:34:07.9030315Z src/settings/DesktopAppSettings.ts:564:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9030320Z
2026-10-23T23:34:07.9030388Z 564 setLocalEnvironmentEnabled: (enabled) =>
2026-10-23T23:34:07.9030506Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9030509Z
2026-10-23T23:34:07.9030876Z src/settings/DesktopAppSettings.ts:599:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9030879Z
2026-10-23T23:34:07.9030957Z 599 setMainWindowBounds: (bounds, isMaximized) =>
2026-10-23T23:34:07.9031003Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9031006Z
2026-10-23T23:34:07.9031355Z src/settings/DesktopAppSettings.ts:601:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9031359Z
2026-10-23T23:34:07.9031421Z 601 setServerExposureMode: (mode) =>
2026-10-23T23:34:07.9031468Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9031470Z
2026-10-23T23:34:07.9031821Z src/settings/DesktopAppSettings.ts:603:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9031824Z
2026-10-23T23:34:07.9031961Z 603 setTailscaleServe: (input) => update((settings) => setTailscaleServe(settings, input)),
2026-10-23T23:34:07.9032008Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9032011Z
2026-10-23T23:34:07.9032356Z src/settings/DesktopAppSettings.ts:604:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9032358Z
2026-10-23T23:34:07.9032494Z 604 setUpdateChannel: (channel) => update((settings) => setUpdateChannel(settings, channel)),
2026-10-23T23:34:07.9032607Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9032609Z
2026-10-23T23:34:07.9032966Z src/settings/DesktopAppSettings.ts:605:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9032971Z
2026-10-23T23:34:07.9033033Z 605 setWslBackendEnabled: (enabled) =>
2026-10-23T23:34:07.9033079Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9033082Z
2026-10-23T23:34:07.9033419Z src/settings/DesktopAppSettings.ts:607:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9033422Z
2026-10-23T23:34:07.9033546Z 607 setWslDistro: (distro) => update((settings) => setWslDistro(settings, distro)),
2026-10-23T23:34:07.9033593Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9033595Z
2026-10-23T23:34:07.9033932Z src/settings/DesktopAppSettings.ts:608:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9033934Z
2026-10-23T23:34:07.9034049Z 608 setWslOnly: (enabled) => update((settings) => setWslOnly(settings, enabled)),
2026-10-23T23:34:07.9034094Z ~~~~~~~~~~
2026-10-23T23:34:07.9034097Z
2026-10-23T23:34:07.9034465Z src/settings/DesktopAppSettings.ts:609:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9034468Z
2026-10-23T23:34:07.9034538Z 609 setLocalEnvironmentEnabled: (enabled) =>
2026-10-23T23:34:07.9034589Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9034593Z
2026-10-23T23:34:07.9035000Z 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)
2026-10-23T23:34:07.9035003Z
2026-10-23T23:34:07.9035053Z 197 set: (settings) =>
2026-10-23T23:34:07.9035096Z ~~~
2026-10-23T23:34:07.9035098Z
2026-10-23T23:34:07.9035426Z 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)
2026-10-23T23:34:07.9035428Z
2026-10-23T23:34:07.9035527Z 231 set: (settings) => Ref.set(settingsRef, Option.some(settings)),
2026-10-23T23:34:07.9035569Z ~~~
2026-10-23T23:34:07.9035571Z
2026-10-23T23:34:07.9035931Z src/snapShot/DesktopSnapShot.ts:1729:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.setAnimationDestination")((id, destination) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9035935Z
2026-10-23T23:34:07.9036038Z 1729 setAnimationDestination: (id, destination) =>
2026-10-23T23:34:07.9036084Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9036086Z
2026-10-23T23:34:07.9036415Z src/snapShot/DesktopSnapShot.ts:1740:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.dismissAnimation")((id) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9036417Z
2026-10-23T23:34:07.9036470Z 1740 dismissAnimation: (id) =>
2026-10-23T23:34:07.9036517Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9036520Z
2026-10-23T23:34:07.9036835Z src/snapShot/DesktopSnapShot.ts:1745:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.acknowledge")((id) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9036906Z
2026-10-23T23:34:07.9036955Z 1745 acknowledge: (id) =>
2026-10-23T23:34:07.9036999Z ~~~~~~~~~~~
2026-10-23T23:34:07.9037002Z
2026-10-23T23:34:07.9037347Z 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)
2026-10-23T23:34:07.9037349Z
2026-10-23T23:34:07.9037403Z 136 discoverHosts: (input) =>
2026-10-23T23:34:07.9037446Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9037448Z
2026-10-23T23:34:07.9037786Z 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)
2026-10-23T23:34:07.9037788Z
2026-10-23T23:34:07.9037840Z 141 resolveHost: (alias) =>
2026-10-23T23:34:07.9037883Z ~~~~~~~~~~~
2026-10-23T23:34:07.9037886Z
2026-10-23T23:34:07.9038260Z 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)
2026-10-23T23:34:07.9038263Z
2026-10-23T23:34:07.9038335Z 146 ensureEnvironment: (target, ensureOptions) =>
2026-10-23T23:34:07.9038380Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9038383Z
2026-10-23T23:34:07.9038737Z 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)
2026-10-23T23:34:07.9038739Z
2026-10-23T23:34:07.9038799Z 154 disconnectEnvironment: (target) =>
2026-10-23T23:34:07.9038845Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9038847Z
2026-10-23T23:34:07.9039190Z src/updates/DesktopUpdates.ts:1171:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopUpdates.installPrepared")((expectedVersion) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9039194Z
2026-10-23T23:34:07.9039519Z 1171 installPrepared: (expectedVersion) => installWithExpectedVersion(expectedVersion),
2026-10-23T23:34:07.9039566Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9039568Z
2026-10-23T23:34:07.9039891Z src/wsl/DesktopWslEnvironment.ts:1101:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9039893Z
2026-10-23T23:34:07.9039950Z 1101 preWarm: () => Effect.void,
2026-10-23T23:34:07.9039992Z ~~~~~~~
2026-10-23T23:34:07.9039995Z
2026-10-23T23:34:07.9040366Z src/wsl/DesktopWslEnvironment.ts:1102:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.windowsToWslPath")((distro, windowsPath) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9040371Z
2026-10-23T23:34:07.9040442Z 1102 windowsToWslPath: (distro, windowsPath) =>
2026-10-23T23:34:07.9040489Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9040493Z
2026-10-23T23:34:07.9040832Z src/wsl/DesktopWslEnvironment.ts:1104:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getUserHome")((distro) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9040835Z
2026-10-23T23:34:07.9040984Z 1104 getUserHome: (distro) => Effect.succeed(stub.getUserHome?.(distro) ?? Option.none<string>()),
2026-10-23T23:34:07.9041028Z ~~~~~~~~~~~
2026-10-23T23:34:07.9041031Z
2026-10-23T23:34:07.9041369Z src/wsl/DesktopWslEnvironment.ts:1105:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getDistroIp")((distro) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9041442Z
2026-10-23T23:34:07.9041588Z 1105 getDistroIp: (distro) => Effect.succeed(stub.getDistroIp?.(distro) ?? Option.none<string>()),
2026-10-23T23:34:07.9041632Z ~~~~~~~~~~~
2026-10-23T23:34:07.9041636Z
2026-10-23T23:34:07.9041994Z src/wsl/DesktopWslEnvironment.ts:1106:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9041997Z
2026-10-23T23:34:07.9042061Z 1106 prepareRuntime: (distro, archive) =>
2026-10-23T23:34:07.9042108Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9042110Z
2026-10-23T23:34:07.9042470Z src/wsl/DesktopWslEnvironment.ts:1113:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9042473Z
2026-10-23T23:34:07.9042616Z 1113 pruneRuntimes: (distro, runtimeId) => stub.pruneRuntimes?.(distro, runtimeId) ?? Effect.void,
2026-10-23T23:34:07.9042663Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9042665Z
2026-10-23T23:34:07.9043039Z src/wsl/DesktopWslEnvironment.ts:1114:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9043041Z
2026-10-23T23:34:07.9043111Z 1114 invalidateRuntime: (distro, runtimeId) =>
2026-10-23T23:34:07.9043158Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9043160Z
2026-10-23T23:34:07.9043526Z src/wsl/DesktopWslEnvironment.ts:1116:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9043528Z
2026-10-23T23:34:07.9043592Z 1116 probeRuntime: (distro, linuxAppRoot) =>
2026-10-23T23:34:07.9043640Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9043643Z
2026-10-23T23:34:07.9044090Z src/wsl/DesktopWslEnvironment.ts:1120:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9044093Z
2026-10-23T23:34:07.9044175Z 1120 ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-23T23:34:07.9044218Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9044222Z
2026-10-23T23:34:07.9044554Z src/wsl/DesktopWslEnvironment.ts:1187:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")((distro) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9044556Z
2026-10-23T23:34:07.9044608Z 1187 preWarm: (distro) =>
2026-10-23T23:34:07.9044652Z ~~~~~~~
2026-10-23T23:34:07.9044654Z
2026-10-23T23:34:07.9045016Z src/wsl/DesktopWslEnvironment.ts:1192:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9045020Z
2026-10-23T23:34:07.9045084Z 1192 prepareRuntime: (distro, archive) =>
2026-10-23T23:34:07.9045129Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9045131Z
2026-10-23T23:34:07.9045494Z src/wsl/DesktopWslEnvironment.ts:1196:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9045496Z
2026-10-23T23:34:07.9045559Z 1196 pruneRuntimes: (distro, runtimeId) =>
2026-10-23T23:34:07.9045605Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9045607Z
2026-10-23T23:34:07.9045977Z src/wsl/DesktopWslEnvironment.ts:1200:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9046075Z
2026-10-23T23:34:07.9046145Z 1200 invalidateRuntime: (distro, runtimeId) =>
2026-10-23T23:34:07.9046191Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9046194Z
2026-10-23T23:34:07.9046560Z src/wsl/DesktopWslEnvironment.ts:1204:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9046562Z
2026-10-23T23:34:07.9046628Z 1204 probeRuntime: (distro, linuxAppRoot) =>
2026-10-23T23:34:07.9046671Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9046674Z
2026-10-23T23:34:07.9047056Z src/wsl/DesktopWslEnvironment.ts:1208:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9047060Z
2026-10-23T23:34:07.9047140Z 1208 ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-23T23:34:07.9047185Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9047189Z
2026-10-23T23:34:07.9047191Z
2026-10-23T23:34:07.9047193Z
2026-10-23T23:34:07.9047560Z src/connection/platform.ts:805:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentOwnedDataCleanup.clear")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9047563Z
2026-10-23T23:34:07.9047615Z 805 clear: (environmentId) =>
2026-10-23T23:34:07.9047656Z ~~~~~
2026-10-23T23:34:07.9047659Z
2026-10-23T23:34:07.9047985Z src/connection/platform.ts:815:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentRpcRequestObserver.observe")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9047987Z
2026-10-23T23:34:07.9048080Z 815 observe: ({ environmentId, environmentLabel, method }) =>
2026-10-23T23:34:07.9048122Z ~~~~~~~
2026-10-23T23:34:07.9048124Z
2026-10-23T23:34:07.9048497Z src/connection/storage.ts:549:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9048501Z
2026-10-23T23:34:07.9048549Z 549 get: (entry) =>
2026-10-23T23:34:07.9048591Z ~~~
2026-10-23T23:34:07.9048594Z
2026-10-23T23:34:07.9048921Z src/connection/storage.ts:576:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9048924Z
2026-10-23T23:34:07.9048979Z 576 set: (entry, permission) => {
2026-10-23T23:34:07.9049021Z ~~~
2026-10-23T23:34:07.9049023Z
2026-10-23T23:34:07.9049353Z src/connection/storage.ts:596:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9049359Z
2026-10-23T23:34:07.9049443Z 596 forget: (environmentId) => write(environmentId, null),
2026-10-23T23:34:07.9049486Z ~~~~~~
2026-10-23T23:34:07.9049488Z
2026-10-23T23:34:07.9049862Z src/connection/storage.ts:643:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.register")((registration, routes) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9049865Z
2026-10-23T23:34:07.9049925Z 643 register: (registration, routes) =>
2026-10-23T23:34:07.9049970Z ~~~~~~~~
2026-10-23T23:34:07.9049972Z
2026-10-23T23:34:07.9050355Z src/connection/storage.ts:647:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setRoutes")((environmentId, routes) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9050434Z
2026-10-23T23:34:07.9050498Z 647 setRoutes: (environmentId, routes) =>
2026-10-23T23:34:07.9050543Z ~~~~~~~~~
2026-10-23T23:34:07.9050546Z
2026-10-23T23:34:07.9050907Z src/connection/storage.ts:651:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.remove")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9050909Z
2026-10-23T23:34:07.9050963Z 651 remove: (environmentId) =>
2026-10-23T23:34:07.9051008Z ~~~~~~
2026-10-23T23:34:07.9051010Z
2026-10-23T23:34:07.9051394Z src/connection/storage.ts:655:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setEnabled")((environmentId, enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9051398Z
2026-10-23T23:34:07.9051464Z 655 setEnabled: (environmentId, enabled) =>
2026-10-23T23:34:07.9051507Z ~~~~~~~~~~
2026-10-23T23:34:07.9051509Z
2026-10-23T23:34:07.9051864Z src/connection/storage.ts:732:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadShell")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9051867Z
2026-10-23T23:34:07.9051924Z 732 loadShell: (environmentId) =>
2026-10-23T23:34:07.9051968Z ~~~~~~~~~
2026-10-23T23:34:07.9051970Z
2026-10-23T23:34:07.9052343Z src/connection/storage.ts:768:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadServerConfig")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9052347Z
2026-10-23T23:34:07.9052409Z 768 loadServerConfig: (environmentId) =>
2026-10-23T23:34:07.9052458Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9052461Z
2026-10-23T23:34:07.9052896Z src/connection/storage.ts:802:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9052899Z
2026-10-23T23:34:07.9052966Z 802 loadThread: (environmentId, threadId) =>
2026-10-23T23:34:07.9053009Z ~~~~~~~~~~
2026-10-23T23:34:07.9053011Z
2026-10-23T23:34:07.9053377Z src/connection/storage.ts:851:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9053380Z
2026-10-23T23:34:07.9053439Z 851 loadVcsRefs: (environmentId, cwd) =>
2026-10-23T23:34:07.9053483Z ~~~~~~~~~~~
2026-10-23T23:34:07.9053485Z
2026-10-23T23:34:07.9053855Z src/connection/storage.ts:893:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9053859Z
2026-10-23T23:34:07.9053921Z 893 removeVcsRefs: (environmentId, cwd) =>
2026-10-23T23:34:07.9053967Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9053969Z
2026-10-23T23:34:07.9054334Z src/connection/storage.ts:899:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clearVcsRefs")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9054336Z
2026-10-23T23:34:07.9054395Z 899 clearVcsRefs: (environmentId) =>
2026-10-23T23:34:07.9054440Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9054442Z
2026-10-23T23:34:07.9054816Z src/connection/storage.ts:905:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9054888Z
2026-10-23T23:34:07.9054959Z 905 removeThread: (environmentId, threadId) =>
2026-10-23T23:34:07.9055003Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9055005Z
2026-10-23T23:34:07.9055353Z src/connection/storage.ts:911:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clear")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9055356Z
2026-10-23T23:34:07.9055410Z 911 clear: (environmentId) =>
2026-10-23T23:34:07.9055452Z ~~~~~
2026-10-23T23:34:07.9055454Z
2026-10-23T23:34:07.9055456Z
2026-10-23T23:34:07.9055509Z ~/apps/server$ tsc --noEmit
2026-10-23T23:34:07.9055780Z scripts/acp-mock-agent.ts:941:16 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
2026-10-23T23:34:07.9055785Z
2026-10-23T23:34:07.9055845Z 941 yield* Effect.sleep("1200 millis")
2026-10-23T23:34:07.9055896Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9055943Z 942 .pipe(
2026-10-23T23:34:07.9056012Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9056055Z ...
2026-10-23T23:34:07.9056097Z 954 )
2026-10-23T23:34:07.9056138Z ~~~~~~~~~~~
2026-10-23T23:34:07.9056196Z 955 .pipe(Effect.forkDetach);
2026-10-23T23:34:07.9056246Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9056249Z
2026-10-23T23:34:07.9056577Z scripts/record-codex-app-server-replay-fixture.ts:1175:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("logger")((event) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9056580Z
2026-10-23T23:34:07.9056631Z 1175 logger: (event) => {
2026-10-23T23:34:07.9056673Z ~~~~~~
2026-10-23T23:34:07.9056676Z
2026-10-23T23:34:07.9057193Z scripts/record-grok-acp-replay-fixture.ts:376: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)
2026-10-23T23:34:07.9057198Z
2026-10-23T23:34:07.9057313Z 376 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-23T23:34:07.9057374Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9057376Z
2026-10-23T23:34:07.9057694Z src/auth/EnvironmentAuth.ts:1346:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentAuth.getDescriptor")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9057697Z
2026-10-23T23:34:07.9057749Z 1346 getDescriptor: () =>
2026-10-23T23:34:07.9057794Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9057796Z
2026-10-23T23:34:07.9058132Z src/auth/EnvironmentAuthPolicy.ts:55:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentAuthPolicy.getDescriptor")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9058137Z
2026-10-23T23:34:07.9058187Z 55 getDescriptor: () =>
2026-10-23T23:34:07.9058232Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9058234Z
2026-10-23T23:34:07.9058589Z src/auth/McpOAuth.ts:540:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpHttpServer.McpClientAuthenticator.authenticate")((request) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9058591Z
2026-10-23T23:34:07.9058644Z 540 authenticate: (request) =>
2026-10-23T23:34:07.9058686Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9058690Z
2026-10-23T23:34:07.9058958Z 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)
2026-10-23T23:34:07.9058960Z
2026-10-23T23:34:07.9059087Z 468 : Effect.succeed(undefined),
2026-10-23T23:34:07.9059135Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9059138Z
2026-10-23T23:34:07.9059446Z src/cloud/CliTokenManager.ts:328:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("HttpClientError")(function*(cause) { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9059449Z
2026-10-23T23:34:07.9059503Z 328 HttpClientError: (cause) =>
2026-10-23T23:34:07.9059550Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9059552Z
2026-10-23T23:34:07.9059808Z src/cloud/CloudLink.lifecycle.test.ts:166:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9059810Z
2026-10-23T23:34:07.9059879Z 166 latest: Effect.succeed(Option.none()),
2026-10-23T23:34:07.9059930Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9059932Z
2026-10-23T23:34:07.9060254Z src/cloud/CloudLink.test.ts:99:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9060261Z
2026-10-23T23:34:07.9060328Z 99 latest: Effect.succeed(Option.none()),
2026-10-23T23:34:07.9060377Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9060379Z
2026-10-23T23:34:07.9060753Z src/cloud/ManagedEndpointRuntime.ts:791:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CloudManagedEndpointRuntime.requestRecovery")((config) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9060756Z
2026-10-23T23:34:07.9060895Z 791 requestRecovery: (config) => Queue.offer(recoveryRequests, config).pipe(Effect.asVoid),
2026-10-23T23:34:07.9060940Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9060942Z
2026-10-23T23:34:07.9061168Z src/cloud/http.test.ts:81:67 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9061172Z
2026-10-23T23:34:07.9061330Z 81 Layer.mock(ConnectReachability.ConnectReachability)({ latest: Effect.succeed(Option.none()) }),
2026-10-23T23:34:07.9061483Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9061486Z
2026-10-23T23:34:07.9061852Z 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)
2026-10-23T23:34:07.9061855Z
2026-10-23T23:34:07.9061942Z 371 commitDesktopUpdate: (requestId, onHandoffAccepted) =>
2026-10-23T23:34:07.9061988Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9061991Z
2026-10-23T23:34:07.9062298Z src/device/DeviceService.ts:808:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceService.updateTool")((tool) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9062303Z
2026-10-23T23:34:07.9062355Z 808 updateTool: (tool) =>
2026-10-23T23:34:07.9062397Z ~~~~~~~~~~
2026-10-23T23:34:07.9062401Z
2026-10-23T23:34:07.9062699Z src/device/DeviceService.ts:823:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceService.easAccount")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9062702Z
2026-10-23T23:34:07.9062752Z 823 easAccount: () =>
2026-10-23T23:34:07.9062795Z ~~~~~~~~~~
2026-10-23T23:34:07.9062798Z
2026-10-23T23:34:07.9063140Z src/device/EasDeviceHost.ts:868:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DeviceHost.DeviceHost.ensureAgentReady")((onPhase) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9063142Z
2026-10-23T23:34:07.9063197Z 868 ensureAgentReady: (onPhase) =>
2026-10-23T23:34:07.9063243Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9063245Z
2026-10-23T23:34:07.9063565Z src/device/easProjectId.ts:201:7 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.9063568Z
2026-10-23T23:34:07.9063624Z 201 Effect.map(Option.some),
2026-10-23T23:34:07.9063667Z ~~~~~~~~~~
2026-10-23T23:34:07.9063670Z
2026-10-23T23:34:07.9063981Z src/environment/DirectEndpoints.ts:141:31 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DirectEndpoints.resolve")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9063983Z
2026-10-23T23:34:07.9064067Z 141 return DirectEndpoints.of({ resolve: () => resolve });
2026-10-23T23:34:07.9064118Z ~~~~~~~
2026-10-23T23:34:07.9064120Z
2026-10-23T23:34:07.9064454Z src/environment/RemoteOpenTargets.ts:83:33 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteOpenTargets.resolveTargets")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9064458Z
2026-10-23T23:34:07.9064568Z 83 return RemoteOpenTargets.of({ resolveTargets: () => resolveTargets });
2026-10-23T23:34:07.9064624Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9064627Z
2026-10-23T23:34:07.9064954Z 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)
2026-10-23T23:34:07.9064956Z
2026-10-23T23:34:07.9065009Z 302 isRepository: (cwd) =>
2026-10-23T23:34:07.9065053Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9065055Z
2026-10-23T23:34:07.9065373Z 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)
2026-10-23T23:34:07.9065377Z
2026-10-23T23:34:07.9065426Z 315 hasCommit: (input) =>
2026-10-23T23:34:07.9065471Z ~~~~~~~~~
2026-10-23T23:34:07.9065474Z
2026-10-23T23:34:07.9065859Z 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)
2026-10-23T23:34:07.9065862Z
2026-10-23T23:34:07.9065915Z 327 hasRefNamed: (input) =>
2026-10-23T23:34:07.9065958Z ~~~~~~~~~~~
2026-10-23T23:34:07.9065960Z
2026-10-23T23:34:07.9066298Z 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)
2026-10-23T23:34:07.9066300Z
2026-10-23T23:34:07.9066349Z 346 status: (input) =>
2026-10-23T23:34:07.9066392Z ~~~~~~
2026-10-23T23:34:07.9066394Z
2026-10-23T23:34:07.9066716Z 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)
2026-10-23T23:34:07.9066720Z
2026-10-23T23:34:07.9066769Z 352 localStatus: (input) =>
2026-10-23T23:34:07.9066814Z ~~~~~~~~~~~
2026-10-23T23:34:07.9066817Z
2026-10-23T23:34:07.9067155Z 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)
2026-10-23T23:34:07.9067158Z
2026-10-23T23:34:07.9067216Z 360 remoteStatus: (input, options) =>
2026-10-23T23:34:07.9067258Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9067261Z
2026-10-23T23:34:07.9067593Z 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)
2026-10-23T23:34:07.9067595Z
2026-10-23T23:34:07.9067722Z 369 pullCurrentBranch: (cwd) =>
2026-10-23T23:34:07.9067769Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9067772Z
2026-10-23T23:34:07.9068119Z 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)
2026-10-23T23:34:07.9068122Z
2026-10-23T23:34:07.9068184Z 373 runStackedAction: (input, options) =>
2026-10-23T23:34:07.9068229Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9068231Z
2026-10-23T23:34:07.9068583Z 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)
2026-10-23T23:34:07.9068586Z
2026-10-23T23:34:07.9068651Z 388 preparePullRequestThread: (input) =>
2026-10-23T23:34:07.9068699Z ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9068703Z
2026-10-23T23:34:07.9069017Z 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)
2026-10-23T23:34:07.9069021Z
2026-10-23T23:34:07.9069070Z 399 listRefs: (input) =>
2026-10-23T23:34:07.9069113Z ~~~~~~~~
2026-10-23T23:34:07.9069115Z
2026-10-23T23:34:07.9069459Z 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)
2026-10-23T23:34:07.9069461Z
2026-10-23T23:34:07.9069522Z 405 createWorktree: (input, options) =>
2026-10-23T23:34:07.9069565Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9069567Z
2026-10-23T23:34:07.9069908Z 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)
2026-10-23T23:34:07.9069912Z
2026-10-23T23:34:07.9069969Z 409 listLocalBranchNames: (cwd) =>
2026-10-23T23:34:07.9070076Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9070079Z
2026-10-23T23:34:07.9070403Z 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)
2026-10-23T23:34:07.9070406Z
2026-10-23T23:34:07.9070455Z 413 fetchRemote: (input) =>
2026-10-23T23:34:07.9070499Z ~~~~~~~~~~~
2026-10-23T23:34:07.9070501Z
2026-10-23T23:34:07.9070825Z 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)
2026-10-23T23:34:07.9070827Z
2026-10-23T23:34:07.9070879Z 417 remoteExists: (input) =>
2026-10-23T23:34:07.9070923Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9070927Z
2026-10-23T23:34:07.9071272Z 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)
2026-10-23T23:34:07.9071274Z
2026-10-23T23:34:07.9071331Z 421 remoteBranchExists: (input) =>
2026-10-23T23:34:07.9071377Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9071380Z
2026-10-23T23:34:07.9071736Z 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)
2026-10-23T23:34:07.9071738Z
2026-10-23T23:34:07.9071806Z 425 resolveRemoteTrackingCommit: (input) =>
2026-10-23T23:34:07.9071854Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9071857Z
2026-10-23T23:34:07.9072284Z 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)
2026-10-23T23:34:07.9072286Z
2026-10-23T23:34:07.9072350Z 429 resolveWorktreeBaseRemote: (input) =>
2026-10-23T23:34:07.9072399Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9072402Z
2026-10-23T23:34:07.9072745Z 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)
2026-10-23T23:34:07.9072749Z
2026-10-23T23:34:07.9072809Z 433 fetchWorktreeBaseCommit: (input) =>
2026-10-23T23:34:07.9072855Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9072858Z
2026-10-23T23:34:07.9073188Z 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)
2026-10-23T23:34:07.9073193Z
2026-10-23T23:34:07.9073247Z 437 removeWorktree: (input) =>
2026-10-23T23:34:07.9073294Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9073296Z
2026-10-23T23:34:07.9073628Z 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)
2026-10-23T23:34:07.9073631Z
2026-10-23T23:34:07.9073684Z 441 pruneWorktrees: (input) =>
2026-10-23T23:34:07.9073728Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9073731Z
2026-10-23T23:34:07.9074068Z 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)
2026-10-23T23:34:07.9074071Z
2026-10-23T23:34:07.9074125Z 445 deleteLocalBranch: (input) =>
2026-10-23T23:34:07.9074173Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9074175Z
2026-10-23T23:34:07.9074559Z 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)
2026-10-23T23:34:07.9074562Z
2026-10-23T23:34:07.9074613Z 449 createRef: (input) =>
2026-10-23T23:34:07.9074655Z ~~~~~~~~~
2026-10-23T23:34:07.9074659Z
2026-10-23T23:34:07.9074976Z 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)
2026-10-23T23:34:07.9074978Z
2026-10-23T23:34:07.9075028Z 457 switchRef: (input) =>
2026-10-23T23:34:07.9075072Z ~~~~~~~~~
2026-10-23T23:34:07.9075074Z
2026-10-23T23:34:07.9075396Z 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)
2026-10-23T23:34:07.9075400Z
2026-10-23T23:34:07.9075452Z 463 renameBranch: (input) =>
2026-10-23T23:34:07.9075496Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9075499Z
2026-10-23T23:34:07.9075782Z src/htmlRender/headlessChrome.ts:281:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("receive")((raw) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9075784Z
2026-10-23T23:34:07.9075842Z 281 const receive = (raw: string) => {
2026-10-23T23:34:07.9075887Z ~~~~~~~
2026-10-23T23:34:07.9075889Z
2026-10-23T23:34:07.9076344Z src/mcp/AcpMcpStdioBridge.ts:284: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)
2026-10-23T23:34:07.9076416Z
2026-10-23T23:34:07.9076460Z 284 try {
2026-10-23T23:34:07.9076503Z ~~~~~
2026-10-23T23:34:07.9076561Z 285 parsed = JSON.parse(line);
2026-10-23T23:34:07.9076609Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9076652Z ...
2026-10-23T23:34:07.9076757Z 287 return yield* respondWithError(null, "Parse error", -32700);
2026-10-23T23:34:07.9076829Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9076871Z 288 }
2026-10-23T23:34:07.9076916Z ~~~~~~~
2026-10-23T23:34:07.9076918Z
2026-10-23T23:34:07.9077213Z src/mcp/AcpMcpStdioBridge.ts:324:7 - suggestion TS377099: `Effect.ignoreCause` expresses ignored failure more directly than `Effect.catchCause` returning `Effect.void`. effect(catchToIgnore)
2026-10-23T23:34:07.9077216Z
2026-10-23T23:34:07.9077280Z 324 Effect.catchCause(() => Effect.void),
2026-10-23T23:34:07.9077326Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9077330Z
2026-10-23T23:34:07.9077578Z src/mcp/McpDeviceToolkit.test.ts:105:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9077582Z
2026-10-23T23:34:07.9077654Z 105 getById: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.9077703Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9077705Z
2026-10-23T23:34:07.9078017Z src/mcp/McpHttpServer.ts:421:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("previewSnapshotFailure")(<E>(cause) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9078020Z
2026-10-23T23:34:07.9078118Z 421 const previewSnapshotFailure = <E>(cause: Cause.Cause<E>) => {
2026-10-23T23:34:07.9078165Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9078168Z
2026-10-23T23:34:07.9078479Z src/mcp/McpHttpServer.ts:933:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpServer.McpServer.addTool")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9078484Z
2026-10-23T23:34:07.9078535Z 933 addTool: (options) =>
2026-10-23T23:34:07.9078580Z ~~~~~~~
2026-10-23T23:34:07.9078648Z
2026-10-23T23:34:07.9078951Z 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)
2026-10-23T23:34:07.9078954Z
2026-10-23T23:34:07.9079018Z 22 resolve: () => Effect.succeed(undefined),
2026-10-23T23:34:07.9079073Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9079076Z
2026-10-23T23:34:07.9079386Z src/mcp/McpToolAccess.ts:112:7 - suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen)
2026-10-23T23:34:07.9079388Z
2026-10-23T23:34:07.9079450Z 112 Effect.flatMap(() => writingCaller),
2026-10-23T23:34:07.9079496Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9079499Z
2026-10-23T23:34:07.9080047Z src/mcp/OrchestratorMcpService.ts:2460: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)
2026-10-23T23:34:07.9080051Z
2026-10-23T23:34:07.9080129Z 2460 const cancelOrphan = Effect.gen(function* () {
2026-10-23T23:34:07.9080189Z ~~~~~~~~~
2026-10-23T23:34:07.9080191Z
2026-10-23T23:34:07.9080449Z src/mcp/OrchestratorMcpService.ts:2475:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-23T23:34:07.9080538Z 2475 .pipe(Effect.mapError(threadManagementFailure));
2026-10-23T23:34:07.9080589Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9080666Z
2026-10-23T23:34:07.9080919Z src/mcp/OrchestratorMcpService.ts:2478:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-23T23:34:07.9081004Z 2478 .pipe(Effect.mapError(threadManagementFailure));
2026-10-23T23:34:07.9081052Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9081055Z
2026-10-23T23:34:07.9081355Z src/mcp/PreviewAutomationBroker.ts:651:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onNone")(function*() { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9081357Z
2026-10-23T23:34:07.9081406Z 651 onNone: () =>
2026-10-23T23:34:07.9081449Z ~~~~~~
2026-10-23T23:34:07.9081452Z
2026-10-23T23:34:07.9081670Z src/mcp/WorktreeMcpService.test.ts:355:3 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-23T23:34:07.9081674Z
2026-10-23T23:34:07.9081725Z 355 Effect.gen(function* () {
2026-10-23T23:34:07.9081772Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9081864Z 356 return yield* WorktreeMcpService.WorktreeMcpService;
2026-10-23T23:34:07.9081931Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9081993Z 357 }).pipe(Effect.provide(harness.layer));
2026-10-23T23:34:07.9082036Z ~~~~
2026-10-23T23:34:07.9082039Z
2026-10-23T23:34:07.9082331Z src/mcp/toolkits/pullRequests/handlers.ts:222:27 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
2026-10-23T23:34:07.9082334Z
2026-10-23T23:34:07.9082387Z 222 const thread = yield* engine
2026-10-23T23:34:07.9082434Z ~~~~~~
2026-10-23T23:34:07.9082486Z 223 .getThreadShell(threadId)
2026-10-23T23:34:07.9082533Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9082603Z 224 .pipe(Effect.map(Option.fromNullishOr))
2026-10-23T23:34:07.9082658Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9082819Z 225 .pipe(Effect.mapError((cause) => new Failure({ cause })));
2026-10-23T23:34:07.9082891Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9082894Z
2026-10-23T23:34:07.9083208Z src/mcpApps/McpAppModelContext.ts:96:27 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpAppModelContext.set")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9083210Z
2026-10-23T23:34:07.9083339Z 96 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-23T23:34:07.9083387Z ~~~
2026-10-23T23:34:07.9083390Z
2026-10-23T23:34:07.9083713Z src/mcpApps/McpAppModelContext.ts:96:51 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpAppModelContext.forThread")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9083717Z
2026-10-23T23:34:07.9083844Z 96 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-23T23:34:07.9083911Z ~~~~~~~~~
2026-10-23T23:34:07.9083914Z
2026-10-23T23:34:07.9084261Z 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)
2026-10-23T23:34:07.9084265Z
2026-10-23T23:34:07.9084314Z 16 record: (records) =>
2026-10-23T23:34:07.9084357Z ~~~~~~
2026-10-23T23:34:07.9084360Z
2026-10-23T23:34:07.9084660Z src/observability/EventLoopMonitor.ts:41:49 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.9084662Z
2026-10-23T23:34:07.9084843Z 41 defaultValue: () => ({ latestNoticeableStall: Effect.succeed(undefined) }),
2026-10-23T23:34:07.9084912Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9084917Z
2026-10-23T23:34:07.9085415Z 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)
2026-10-23T23:34:07.9085418Z
2026-10-23T23:34:07.9085528Z 30 const REPLAY_SETTINGS = Schema.decodeUnknownSync(AcpRegistrySettings)({
2026-10-23T23:34:07.9085584Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9085587Z
2026-10-23T23:34:07.9085930Z 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)
2026-10-23T23:34:07.9085935Z
2026-10-23T23:34:07.9086024Z 48 defaultModel: Effect.succeed(undefined),
2026-10-23T23:34:07.9086075Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9086079Z
2026-10-23T23:34:07.9086419Z 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)
2026-10-23T23:34:07.9086422Z
2026-10-23T23:34:07.9086491Z 169 defaultModel: Effect.succeed(undefined),
2026-10-23T23:34:07.9086545Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9086548Z
2026-10-23T23:34:07.9086882Z 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)
2026-10-23T23:34:07.9086886Z
2026-10-23T23:34:07.9086954Z 306 defaultModel: Effect.succeed(undefined),
2026-10-23T23:34:07.9087008Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9087011Z
2026-10-23T23:34:07.9087405Z 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)
2026-10-23T23:34:07.9087408Z
2026-10-23T23:34:07.9087475Z 542 defaultModel: Effect.succeed(undefined),
2026-10-23T23:34:07.9087527Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9087529Z
2026-10-23T23:34:07.9087898Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:974:26 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
2026-10-23T23:34:07.9087901Z
2026-10-23T23:34:07.9087965Z 974 const controller = new AbortController();
2026-10-23T23:34:07.9088022Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9088024Z
2026-10-23T23:34:07.9088345Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1326:37 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
2026-10-23T23:34:07.9088348Z
2026-10-23T23:34:07.9088420Z 1326 const requestEvent = yield* runtime.events
2026-10-23T23:34:07.9088478Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9088526Z 1327 .pipe(
2026-10-23T23:34:07.9088572Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9088614Z ...
2026-10-23T23:34:07.9088658Z 1330 )
2026-10-23T23:34:07.9088701Z ~~~~~~~~~~~
2026-10-23T23:34:07.9088759Z 1331 .pipe(Effect.forkScoped);
2026-10-23T23:34:07.9088808Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9088810Z
2026-10-23T23:34:07.9089180Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1332:28 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
2026-10-23T23:34:07.9089254Z
2026-10-23T23:34:07.9089329Z 1332 const controller = new AbortController();
2026-10-23T23:34:07.9089386Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9089388Z
2026-10-23T23:34:07.9089753Z src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts:1355:37 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
2026-10-23T23:34:07.9089756Z
2026-10-23T23:34:07.9089840Z 1355 const cancelledController = new AbortController();
2026-10-23T23:34:07.9089903Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9089906Z
2026-10-23T23:34:07.9090307Z src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4018:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9090313Z
2026-10-23T23:34:07.9090429Z 4018 getCapabilities: () => Effect.succeed(ClaudeProviderCapabilitiesV2),
2026-10-23T23:34:07.9090476Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9090479Z
2026-10-23T23:34:07.9090890Z src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4019:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9090893Z
2026-10-23T23:34:07.9091024Z 4019 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-23T23:34:07.9091073Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9091076Z
2026-10-23T23:34:07.9091468Z src/orchestration-v2/Adapters/ClaudeAgentSdkQueryRunner.test.ts:201:17 - suggestion TS377111: `AbortController` is manually constructed inside Effect code. Use `Effect.abortSignal` for Effect-managed cancellation. effect(abortControllerInEffect)
2026-10-23T23:34:07.9091472Z
2026-10-23T23:34:07.9091604Z 201 signal: new AbortController().signal,
2026-10-23T23:34:07.9091655Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9091657Z
2026-10-23T23:34:07.9092084Z src/orchestration-v2/Adapters/ClaudeTaskOutputTail.ts:74: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)
2026-10-23T23:34:07.9092087Z
2026-10-23T23:34:07.9092144Z 74 const pause = Effect.raceFirst(
2026-10-23T23:34:07.9092192Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9092195Z
2026-10-23T23:34:07.9092514Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:1741:25 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.9092518Z
2026-10-23T23:34:07.9092634Z 1741 threadId === null ? Effect.succeed(undefined) : mcpSessions.read(threadId);
2026-10-23T23:34:07.9092694Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9092696Z
2026-10-23T23:34:07.9093087Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:1748:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9093090Z
2026-10-23T23:34:07.9093199Z 1748 getCapabilities: () => Effect.succeed(CodexProviderCapabilitiesV2),
2026-10-23T23:34:07.9093245Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9093247Z
2026-10-23T23:34:07.9093652Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:1749:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9093722Z
2026-10-23T23:34:07.9093853Z 1749 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-23T23:34:07.9093904Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9093906Z
2026-10-23T23:34:07.9094252Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:3045:19 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
2026-10-23T23:34:07.9094255Z
2026-10-23T23:34:07.9094332Z 3045 Effect.catch(() => Effect.succeed(null)),
2026-10-23T23:34:07.9094379Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9094381Z
2026-10-23T23:34:07.9094786Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:3046:19 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.9094790Z
2026-10-23T23:34:07.9094854Z 3046 Effect.flatMap((response) =>
2026-10-23T23:34:07.9094907Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9094909Z
2026-10-23T23:34:07.9095215Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:3068:19 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
2026-10-23T23:34:07.9095218Z
2026-10-23T23:34:07.9095284Z 3068 Effect.catch(() => Effect.void),
2026-10-23T23:34:07.9095331Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9095334Z
2026-10-23T23:34:07.9095731Z src/orchestration-v2/Adapters/CodexAdapterV2.ts:7268: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)
2026-10-23T23:34:07.9095735Z
2026-10-23T23:34:07.9095823Z 7268 return yield* Effect.fail(failedTermination.error);
2026-10-23T23:34:07.9095871Z ~~~~~
2026-10-23T23:34:07.9095938Z
2026-10-23T23:34:07.9096453Z 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)
2026-10-23T23:34:07.9096456Z
2026-10-23T23:34:07.9096568Z 33 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-23T23:34:07.9096629Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9096631Z
2026-10-23T23:34:07.9097100Z src/orchestration-v2/Adapters/MuseAdapterV2.testkit.ts:414: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)
2026-10-23T23:34:07.9097104Z
2026-10-23T23:34:07.9097242Z 414 const DEFAULT_MUSE_SETTINGS = Schema.decodeUnknownSync(MuseSettings)({ enabled: true });
2026-10-23T23:34:07.9097301Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9097303Z
2026-10-23T23:34:07.9097680Z src/orchestration-v2/CheckpointCaptureService.ts:242:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CheckpointCaptureServiceV2.execute")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9097682Z
2026-10-23T23:34:07.9097735Z 242 execute: (input) =>
2026-10-23T23:34:07.9097779Z ~~~~~~~
2026-10-23T23:34:07.9097782Z
2026-10-23T23:34:07.9098066Z src/orchestration-v2/CheckpointRestoreSafety.test.ts:104:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9098133Z
2026-10-23T23:34:07.9098249Z 104 get: () => Effect.succeed(Option.some({ workspaceRoot: parent } as never)),
2026-10-23T23:34:07.9098301Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9098304Z
2026-10-23T23:34:07.9098692Z src/orchestration-v2/CheckpointRestoreSafety.ts:41:13 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9098694Z
2026-10-23T23:34:07.9098748Z 41 Effect.catch((error) =>
2026-10-23T23:34:07.9098796Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9098798Z
2026-10-23T23:34:07.9099179Z src/orchestration-v2/CheckpointRestoreSafety.ts:83:17 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9099183Z
2026-10-23T23:34:07.9099240Z 83 Effect.catch((error) =>
2026-10-23T23:34:07.9099288Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9099290Z
2026-10-23T23:34:07.9099582Z src/orchestration-v2/CheckpointRollbackService.test.ts:233:22 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9099584Z
2026-10-23T23:34:07.9099692Z 233 return Effect.succeed(Option.some({ workspaceRoot } as never));
2026-10-23T23:34:07.9099739Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9099742Z
2026-10-23T23:34:07.9100136Z 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)
2026-10-23T23:34:07.9100138Z
2026-10-23T23:34:07.9100292Z 142 const batchAbort = new AbortController();
2026-10-23T23:34:07.9100353Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9100355Z
2026-10-23T23:34:07.9100845Z src/orchestration-v2/CommandOutputHub.test.ts:168:5 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.9100848Z
2026-10-23T23:34:07.9100900Z 168 Effect.flatMap((frame) =>
2026-10-23T23:34:07.9100945Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9100948Z
2026-10-23T23:34:07.9101214Z src/orchestration-v2/CommandReceiptStore.ts:164:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9101217Z
2026-10-23T23:34:07.9101294Z 164 onNone: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.9101347Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9101349Z
2026-10-23T23:34:07.9101613Z src/orchestration-v2/CommandReceiptStore.ts:167:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9101618Z
2026-10-23T23:34:07.9101686Z 167 ? Effect.succeed(Option.none())
2026-10-23T23:34:07.9101736Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9101739Z
2026-10-23T23:34:07.9102006Z src/orchestration-v2/CommandReceiptStore.ts:168:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.9102009Z
2026-10-23T23:34:07.9102119Z 168 : fromApplicationReceipt(receipt).pipe(Effect.map(Option.some)),
2026-10-23T23:34:07.9102186Z ~~~~~~~~~~
2026-10-23T23:34:07.9102188Z
2026-10-23T23:34:07.9102452Z src/orchestration-v2/CommandReceiptStore.ts:183:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9102535Z
2026-10-23T23:34:07.9102597Z 183 ? Effect.succeed(Option.none())
2026-10-23T23:34:07.9102647Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9102652Z
2026-10-23T23:34:07.9102916Z src/orchestration-v2/CommandReceiptStore.ts:192:25 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.9102920Z
2026-10-23T23:34:07.9102984Z 192 }).pipe(Effect.map(Option.some)),
2026-10-23T23:34:07.9103033Z ~~~~~~~~~~
2026-10-23T23:34:07.9103036Z
2026-10-23T23:34:07.9103286Z src/orchestration-v2/EffectOutbox.ts:429:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9103288Z
2026-10-23T23:34:07.9103350Z 429 ? Effect.succeed(Option.none())
2026-10-23T23:34:07.9103398Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9103403Z
2026-10-23T23:34:07.9103658Z src/orchestration-v2/EffectOutbox.ts:430:39 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.9103662Z
2026-10-23T23:34:07.9103744Z 430 : rowToEffect(row).pipe(Effect.map(Option.some));
2026-10-23T23:34:07.9103800Z ~~~~~~~~~~
2026-10-23T23:34:07.9103803Z
2026-10-23T23:34:07.9104062Z src/orchestration-v2/EffectWorker.test.ts:107:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9104065Z
2026-10-23T23:34:07.9104131Z 107 get: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.9104185Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9104187Z
2026-10-23T23:34:07.9104445Z src/orchestration-v2/EffectWorker.test.ts:302:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9104450Z
2026-10-23T23:34:07.9107317Z 302 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-23T23:34:07.9107465Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9107468Z
2026-10-23T23:34:07.9107732Z src/orchestration-v2/EffectWorker.test.ts:369:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9107734Z
2026-10-23T23:34:07.9107826Z 369 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-23T23:34:07.9107876Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9107879Z
2026-10-23T23:34:07.9108134Z src/orchestration-v2/EffectWorker.test.ts:436:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9108138Z
2026-10-23T23:34:07.9108225Z 436 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-23T23:34:07.9108277Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9108279Z
2026-10-23T23:34:07.9108539Z src/orchestration-v2/EffectWorker.test.ts:437:18 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9108542Z
2026-10-23T23:34:07.9108624Z 437 get: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-23T23:34:07.9108672Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9108674Z
2026-10-23T23:34:07.9109051Z 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)
2026-10-23T23:34:07.9109053Z
2026-10-23T23:34:07.9109109Z 98 execute: (effect, options) => {
2026-10-23T23:34:07.9109153Z ~~~~~~~
2026-10-23T23:34:07.9109155Z
2026-10-23T23:34:07.9109521Z 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)
2026-10-23T23:34:07.9109713Z
2026-10-23T23:34:07.9109771Z 180 Effect.catch((cause) =>
2026-10-23T23:34:07.9109820Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9109822Z
2026-10-23T23:34:07.9110137Z 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)
2026-10-23T23:34:07.9110139Z
2026-10-23T23:34:07.9110191Z 110 append: (input) =>
2026-10-23T23:34:07.9110235Z ~~~~~~
2026-10-23T23:34:07.9110238Z
2026-10-23T23:34:07.9110571Z 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)
2026-10-23T23:34:07.9110576Z
2026-10-23T23:34:07.9110636Z 120 appendProjectEvent: (event) =>
2026-10-23T23:34:07.9110683Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9110690Z
2026-10-23T23:34:07.9111015Z 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)
2026-10-23T23:34:07.9111018Z
2026-10-23T23:34:07.9111073Z 131 latestSequence: (input) =>
2026-10-23T23:34:07.9111118Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9111121Z
2026-10-23T23:34:07.9111405Z src/orchestration-v2/FoundationPersistence.test.ts:1791:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9111408Z
2026-10-23T23:34:07.9111503Z 1791 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-23T23:34:07.9111558Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9111561Z
2026-10-23T23:34:07.9111908Z src/orchestration-v2/FoundationPersistence.test.ts:1793:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9111912Z
2026-10-23T23:34:07.9111961Z 1793 Effect.succeed(
2026-10-23T23:34:07.9112008Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9112011Z
2026-10-23T23:34:07.9112288Z src/orchestration-v2/FoundationPersistence.test.ts:2663:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9112291Z
2026-10-23T23:34:07.9112375Z 2663 nextClaimableAt: Effect.succeed(Option.none()),
2026-10-23T23:34:07.9112429Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9112431Z
2026-10-23T23:34:07.9112708Z src/orchestration-v2/FoundationPersistence.test.ts:2880:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9112714Z
2026-10-23T23:34:07.9112796Z 2880 nextClaimableAt: Effect.succeed(Option.none()),
2026-10-23T23:34:07.9112850Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9112852Z
2026-10-23T23:34:07.9113242Z src/orchestration-v2/Orchestrator.ts:11756:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.9113244Z
2026-10-23T23:34:07.9113300Z 11756 Effect.flatMap((planned) =>
2026-10-23T23:34:07.9113347Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9113349Z
2026-10-23T23:34:07.9113711Z src/orchestration-v2/Orchestrator.ts:12179:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.restartContinuationPending")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9113918Z
2026-10-23T23:34:07.9113987Z 12179 restartContinuationPending: (run) =>
2026-10-23T23:34:07.9114036Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9114042Z
2026-10-23T23:34:07.9114401Z src/orchestration-v2/Orchestrator.ts:12181:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.awaitRestartContinuation")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9114403Z
2026-10-23T23:34:07.9114466Z 12181 awaitRestartContinuation: (run) =>
2026-10-23T23:34:07.9114515Z ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9114517Z
2026-10-23T23:34:07.9114865Z src/orchestration-v2/Orchestrator.ts:12184:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.autoArmLimitRecovery")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9114867Z
2026-10-23T23:34:07.9114933Z 12184 autoArmLimitRecovery: (input) =>
2026-10-23T23:34:07.9114978Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9114981Z
2026-10-23T23:34:07.9115315Z src/orchestration-v2/Orchestrator.ts:12212:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.searchThread")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9115317Z
2026-10-23T23:34:07.9115370Z 12212 searchThread: (input) =>
2026-10-23T23:34:07.9115416Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9115418Z
2026-10-23T23:34:07.9115847Z src/orchestration-v2/Orchestrator.ts:12220:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadHistoryPage")((threadId, cursor, throughEntryId, conversationOnly) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9115849Z
2026-10-23T23:34:07.9115978Z 12220 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-23T23:34:07.9116056Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9116058Z
2026-10-23T23:34:07.9116483Z src/orchestration-v2/Orchestrator.ts:12224:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9116486Z
2026-10-23T23:34:07.9116553Z 12224 getTimelinePage: (threadId, options) =>
2026-10-23T23:34:07.9116599Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9116603Z
2026-10-23T23:34:07.9116940Z src/orchestration-v2/Orchestrator.ts:12228:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9116942Z
2026-10-23T23:34:07.9116999Z 12228 getMessageCount: (threadId) =>
2026-10-23T23:34:07.9117044Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9117046Z
2026-10-23T23:34:07.9117376Z src/orchestration-v2/Orchestrator.ts:12232:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9117383Z
2026-10-23T23:34:07.9117437Z 12232 getTurnItem: (input) =>
2026-10-23T23:34:07.9117480Z ~~~~~~~~~~~
2026-10-23T23:34:07.9117482Z
2026-10-23T23:34:07.9117852Z src/orchestration-v2/Orchestrator.ts:12240:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9117855Z
2026-10-23T23:34:07.9117933Z 12240 getThreadRecords: (threadId, fields, filter) =>
2026-10-23T23:34:07.9117979Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9117982Z
2026-10-23T23:34:07.9118332Z src/orchestration-v2/Orchestrator.ts:12244:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadProjection")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9118417Z
2026-10-23T23:34:07.9118478Z 12244 getThreadProjection: (threadId) =>
2026-10-23T23:34:07.9118528Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9118531Z
2026-10-23T23:34:07.9118883Z src/orchestration-v2/Orchestrator.ts:12248:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getCheckpointContext")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9118886Z
2026-10-23T23:34:07.9118949Z 12248 getCheckpointContext: (threadId) =>
2026-10-23T23:34:07.9118994Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9118996Z
2026-10-23T23:34:07.9119339Z src/orchestration-v2/Orchestrator.ts:12252:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshot")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9119343Z
2026-10-23T23:34:07.9119403Z 12252 getThreadSnapshot: (threadId) =>
2026-10-23T23:34:07.9119449Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9119452Z
2026-10-23T23:34:07.9119828Z src/orchestration-v2/Orchestrator.ts:12256:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshotWindow")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9119831Z
2026-10-23T23:34:07.9119910Z 12256 getThreadSnapshotWindow: (threadId, options) =>
2026-10-23T23:34:07.9119960Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9119962Z
2026-10-23T23:34:07.9120304Z src/orchestration-v2/Orchestrator.ts:12260:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9120306Z
2026-10-23T23:34:07.9120363Z 12260 getShellSnapshot: (options) =>
2026-10-23T23:34:07.9120413Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9120415Z
2026-10-23T23:34:07.9120831Z src/orchestration-v2/Orchestrator.ts:12262:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.listActiveSubagentThreadIds")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9120834Z
2026-10-23T23:34:07.9120899Z 12262 listActiveSubagentThreadIds: () =>
2026-10-23T23:34:07.9120949Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9120952Z
2026-10-23T23:34:07.9121299Z src/orchestration-v2/Orchestrator.ts:12264:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.readShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9121301Z
2026-10-23T23:34:07.9121359Z 12264 readShellSnapshot: (options) =>
2026-10-23T23:34:07.9121404Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9121406Z
2026-10-23T23:34:07.9121750Z src/orchestration-v2/Orchestrator.ts:12271:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadShell")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9121754Z
2026-10-23T23:34:07.9121809Z 12271 getThreadShell: (threadId) =>
2026-10-23T23:34:07.9121856Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9121858Z
2026-10-23T23:34:07.9122213Z src/orchestration-v2/Orchestrator.ts:12275:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadEventSequence")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9122216Z
2026-10-23T23:34:07.9122280Z 12275 getThreadEventSequence: (threadId) =>
2026-10-23T23:34:07.9122328Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9122331Z
2026-10-23T23:34:07.9122686Z 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)
2026-10-23T23:34:07.9122754Z
2026-10-23T23:34:07.9122828Z 160 getInstance: () => Effect.succeed(undefined),
2026-10-23T23:34:07.9122889Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9122893Z
2026-10-23T23:34:07.9123220Z 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)
2026-10-23T23:34:07.9123223Z
2026-10-23T23:34:07.9123344Z 269 getShell: (projectId) => get(projectId).pipe(Effect.map(Option.map(toShell))),
2026-10-23T23:34:07.9123388Z ~~~~~~~~
2026-10-23T23:34:07.9123390Z
2026-10-23T23:34:07.9123719Z 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)
2026-10-23T23:34:07.9123723Z
2026-10-23T23:34:07.9123776Z 270 listShells: (options) =>
2026-10-23T23:34:07.9123819Z ~~~~~~~~~~
2026-10-23T23:34:07.9123821Z
2026-10-23T23:34:07.9124108Z src/orchestration-v2/ProjectionControlReads.test.ts:279:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9124111Z
2026-10-23T23:34:07.9124162Z 279 Effect.succeed(
2026-10-23T23:34:07.9124209Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9124212Z
2026-10-23T23:34:07.9124574Z 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)
2026-10-23T23:34:07.9124578Z
2026-10-23T23:34:07.9124627Z 78 get: (instanceId) =>
2026-10-23T23:34:07.9124669Z ~~~
2026-10-23T23:34:07.9124672Z
2026-10-23T23:34:07.9125094Z 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)
2026-10-23T23:34:07.9125098Z
2026-10-23T23:34:07.9125145Z 135 list: () =>
2026-10-23T23:34:07.9125187Z ~~~~
2026-10-23T23:34:07.9125189Z
2026-10-23T23:34:07.9125544Z src/orchestration-v2/ProviderEventIngestor.ts:93:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderTurnAnalytics.record")((properties) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9125546Z
2026-10-23T23:34:07.9125638Z 93 record: (properties: Readonly<Record<string, unknown>>) =>
2026-10-23T23:34:07.9125681Z ~~~~~~
2026-10-23T23:34:07.9125684Z
2026-10-23T23:34:07.9126116Z src/orchestration-v2/ProviderEventIngestor.ts:818:15 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.9126121Z
2026-10-23T23:34:07.9126186Z 818 Effect.flatMap((storedEvents) =>
2026-10-23T23:34:07.9126235Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9126237Z
2026-10-23T23:34:07.9126521Z src/orchestration-v2/ProviderSessionManager.test.ts:1155:19 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9126523Z
2026-10-23T23:34:07.9126654Z 1155 : Effect.succeed(Option.some(makeBrowserAccessProject(requestedProjectId))),
2026-10-23T23:34:07.9126704Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9126707Z
2026-10-23T23:34:07.9126990Z src/orchestration-v2/ProviderTurnStartService.test.ts:150:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9127063Z
2026-10-23T23:34:07.9127114Z 150 Effect.succeed(
2026-10-23T23:34:07.9127162Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9127164Z
2026-10-23T23:34:07.9127448Z src/orchestration-v2/ProviderTurnStartService.test.ts:703:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9127450Z
2026-10-23T23:34:07.9127596Z 703 Effect.succeed(Option.some({ workspaceRoot: "/tmp/native-account-project" } as never)),
2026-10-23T23:34:07.9127643Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9127645Z
2026-10-23T23:34:07.9127931Z src/orchestration-v2/ProviderTurnStartService.testkit.ts:14:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9127933Z
2026-10-23T23:34:07.9128005Z 14 getById: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.9128055Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9128059Z
2026-10-23T23:34:07.9128475Z src/orchestration-v2/ProviderTurnStartService.ts:499:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9128479Z
2026-10-23T23:34:07.9128539Z 499 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9128588Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9128591Z
2026-10-23T23:34:07.9129046Z src/orchestration-v2/ProviderTurnStartService.ts:1289: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)
2026-10-23T23:34:07.9129048Z
2026-10-23T23:34:07.9129114Z 1289 return runExecution.startRootRun({
2026-10-23T23:34:07.9129157Z ~~~~~~
2026-10-23T23:34:07.9129161Z
2026-10-23T23:34:07.9129438Z src/orchestration-v2/PullRequestWatchReactor.ts:478:53 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.9129504Z
2026-10-23T23:34:07.9129613Z 478 ? pullRequests.activity(reference).pipe(Effect.map(Option.some))
2026-10-23T23:34:07.9129681Z ~~~~~~~~~~
2026-10-23T23:34:07.9129684Z
2026-10-23T23:34:07.9130081Z 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)
2026-10-23T23:34:07.9130083Z
2026-10-23T23:34:07.9130158Z 49 cleanupScheduledTasks: (threadId: ThreadId) =>
2026-10-23T23:34:07.9130206Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9130208Z
2026-10-23T23:34:07.9130586Z 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)
2026-10-23T23:34:07.9130592Z
2026-10-23T23:34:07.9130657Z 58 cleanupTerminals: (threadId: string) =>
2026-10-23T23:34:07.9130704Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9130706Z
2026-10-23T23:34:07.9131085Z 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)
2026-10-23T23:34:07.9131089Z
2026-10-23T23:34:07.9131151Z 66 cleanupPreviews: (threadId: string) =>
2026-10-23T23:34:07.9131196Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9131199Z
2026-10-23T23:34:07.9131592Z 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)
2026-10-23T23:34:07.9131662Z
2026-10-23T23:34:07.9131762Z 74 cleanupAttachments: (attachmentIds: ReadonlyArray<string>) =>
2026-10-23T23:34:07.9131808Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9131811Z
2026-10-23T23:34:07.9132094Z src/orchestration-v2/RunExecutionService.test.ts:1812:16 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-23T23:34:07.9132096Z
2026-10-23T23:34:07.9132159Z 1812 ).pipe(Effect.map(Option.some)),
2026-10-23T23:34:07.9132204Z ~~~~~~~~~~
2026-10-23T23:34:07.9132207Z
2026-10-23T23:34:07.9132612Z src/orchestration-v2/RunExecutionService.ts:919:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9132616Z
2026-10-23T23:34:07.9132675Z 919 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9132724Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9132726Z
2026-10-23T23:34:07.9132988Z src/orchestration-v2/RuntimePolicy.test.ts:90:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9132991Z
2026-10-23T23:34:07.9133041Z 90 Effect.succeed(
2026-10-23T23:34:07.9133085Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9133088Z
2026-10-23T23:34:07.9133410Z 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)
2026-10-23T23:34:07.9133413Z
2026-10-23T23:34:07.9133462Z 54 resolve: (input) =>
2026-10-23T23:34:07.9133505Z ~~~~~~~
2026-10-23T23:34:07.9133508Z
2026-10-23T23:34:07.9133783Z src/orchestration-v2/RuntimeRequestService.test.ts:29:7 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9133788Z
2026-10-23T23:34:07.9133912Z 29 Effect.succeed(
2026-10-23T23:34:07.9133958Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9133960Z
2026-10-23T23:34:07.9134235Z src/orchestration-v2/ThreadLaunchService.test.ts:189:33 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9134238Z
2026-10-23T23:34:07.9134339Z 189 getByWorkspaceRoot: () => Effect.succeed(Option.some(project)),
2026-10-23T23:34:07.9134395Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9134398Z
2026-10-23T23:34:07.9134668Z src/orchestration-v2/ThreadLaunchService.test.ts:220:32 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9134673Z
2026-10-23T23:34:07.9134761Z 220 folderForThread: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.9134816Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9134818Z
2026-10-23T23:34:07.9135174Z 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)
2026-10-23T23:34:07.9135176Z
2026-10-23T23:34:07.9135227Z 91 archive: (input) =>
2026-10-23T23:34:07.9135269Z ~~~~~~~
2026-10-23T23:34:07.9135271Z
2026-10-23T23:34:07.9135628Z 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)
2026-10-23T23:34:07.9135631Z
2026-10-23T23:34:07.9135682Z 97 unarchive: (input) =>
2026-10-23T23:34:07.9135726Z ~~~~~~~~~
2026-10-23T23:34:07.9135807Z
2026-10-23T23:34:07.9136194Z 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)
2026-10-23T23:34:07.9136196Z
2026-10-23T23:34:07.9136245Z 103 delete: (input) =>
2026-10-23T23:34:07.9136291Z ~~~~~~
2026-10-23T23:34:07.9136293Z
2026-10-23T23:34:07.9136664Z 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)
2026-10-23T23:34:07.9136667Z
2026-10-23T23:34:07.9136721Z 109 updateMetadata: (input) =>
2026-10-23T23:34:07.9136764Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9136766Z
2026-10-23T23:34:07.9137139Z 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)
2026-10-23T23:34:07.9137144Z
2026-10-23T23:34:07.9137199Z 118 setRuntimeMode: (input) =>
2026-10-23T23:34:07.9137243Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9137246Z
2026-10-23T23:34:07.9137627Z 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)
2026-10-23T23:34:07.9137630Z
2026-10-23T23:34:07.9137686Z 125 setInteractionMode: (input) =>
2026-10-23T23:34:07.9137732Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9137734Z
2026-10-23T23:34:07.9138110Z 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)
2026-10-23T23:34:07.9138115Z
2026-10-23T23:34:07.9138171Z 132 setModelSelection: (input) =>
2026-10-23T23:34:07.9138217Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9138220Z
2026-10-23T23:34:07.9138690Z src/orchestration-v2/ThreadManagementService.ts:689:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.9138695Z
2026-10-23T23:34:07.9138752Z 689 Effect.flatMap((projection) =>
2026-10-23T23:34:07.9138797Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9138800Z
2026-10-23T23:34:07.9139108Z src/orchestration-v2/ThreadManagementService.ts:706:5 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
2026-10-23T23:34:07.9139110Z
2026-10-23T23:34:07.9139182Z 706 ensureProjectionTranscript(input.threadId)
2026-10-23T23:34:07.9139238Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9139378Z 707 .pipe(Effect.andThen(orchestrator.getThreadRecords(input.threadId, fields, filter)))
2026-10-23T23:34:07.9139472Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9139515Z ...
2026-10-23T23:34:07.9139557Z 726 ),
2026-10-23T23:34:07.9139600Z ~~~~~~~~~~
2026-10-23T23:34:07.9139642Z 727 );
2026-10-23T23:34:07.9139683Z ~~~~~~~
2026-10-23T23:34:07.9139687Z
2026-10-23T23:34:07.9140091Z src/orchestration-v2/ThreadManagementService.ts:717:9 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.9140094Z
2026-10-23T23:34:07.9140278Z 717 Effect.flatMap((projection) =>
2026-10-23T23:34:07.9140325Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9140404Z
2026-10-23T23:34:07.9140809Z src/orchestration-v2/ThreadManagementService.ts:1131: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)
2026-10-23T23:34:07.9140812Z
2026-10-23T23:34:07.9140919Z 1131 if (failures[0] !== undefined) return yield* Effect.fail(failures[0]);
2026-10-23T23:34:07.9140976Z ~~~~~
2026-10-23T23:34:07.9140979Z
2026-10-23T23:34:07.9141353Z src/orchestration-v2/ThreadManagementService.ts:1142:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.searchThread")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9141356Z
2026-10-23T23:34:07.9141408Z 1142 searchThread: (input) =>
2026-10-23T23:34:07.9141453Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9141455Z
2026-10-23T23:34:07.9141922Z src/orchestration-v2/ThreadManagementService.ts:1147:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getThreadHistoryPage")((threadId, cursor, throughEntryId, conversationOnly) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9141928Z
2026-10-23T23:34:07.9142054Z 1147 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-23T23:34:07.9142102Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9142104Z
2026-10-23T23:34:07.9142505Z src/orchestration-v2/ThreadManagementService.ts:1153:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9142507Z
2026-10-23T23:34:07.9142574Z 1153 getTimelinePage: (threadId, options) =>
2026-10-23T23:34:07.9142619Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9142622Z
2026-10-23T23:34:07.9143083Z src/orchestration-v2/ThreadManagementService.ts:1157:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9143086Z
2026-10-23T23:34:07.9143144Z 1157 getMessageCount: (threadId) =>
2026-10-23T23:34:07.9143190Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9143192Z
2026-10-23T23:34:07.9143561Z src/orchestration-v2/ThreadManagementService.ts:1161:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9143564Z
2026-10-23T23:34:07.9143615Z 1161 getTurnItem: (input) =>
2026-10-23T23:34:07.9143658Z ~~~~~~~~~~~
2026-10-23T23:34:07.9143661Z
2026-10-23T23:34:07.9144071Z src/orchestration-v2/ThreadManagementService.ts:1166:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadManagementService.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9144076Z
2026-10-23T23:34:07.9144155Z 1166 getThreadRecords: (threadId, fields, filter) =>
2026-10-23T23:34:07.9144201Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9144204Z
2026-10-23T23:34:07.9144629Z src/orchestration-v2/ThreadManagementService.ts:1206:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("LegacyV1ThreadImporter.LegacyV1ThreadImporter.ensureTranscript")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9144631Z
2026-10-23T23:34:07.9144779Z 1206 ensureTranscript: () => Effect.succeed({ importedThreadCount: 0, importedMessageCount: 0 }),
2026-10-23T23:34:07.9144825Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9144827Z
2026-10-23T23:34:07.9145119Z src/orchestration-v2/ThreadPullRequestService.test.ts:119:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9145196Z
2026-10-23T23:34:07.9145283Z 119 getShell: () => Effect.succeed(Option.some(project)),
2026-10-23T23:34:07.9145338Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9145342Z
2026-10-23T23:34:07.9145629Z src/orchestration-v2/ThreadPullRequestService.test.ts:238:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9145632Z
2026-10-23T23:34:07.9145717Z 238 getShell: () => Effect.succeed(Option.some(project)),
2026-10-23T23:34:07.9145772Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9145774Z
2026-10-23T23:34:07.9146220Z src/orchestration-v2/ThreadPullRequestService.ts:329:17 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9146227Z
2026-10-23T23:34:07.9146288Z 329 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9146337Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9146341Z
2026-10-23T23:34:07.9146749Z 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)
2026-10-23T23:34:07.9146751Z
2026-10-23T23:34:07.9146810Z 353 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9146859Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9146861Z
2026-10-23T23:34:07.9147264Z src/orchestration-v2/ThreadSettlementService.ts:516:11 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9147269Z
2026-10-23T23:34:07.9147325Z 516 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9147372Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9147374Z
2026-10-23T23:34:07.9147840Z src/orchestration-v2/ThreadSettlementService.ts:534:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9147842Z
2026-10-23T23:34:07.9147899Z 534 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9147945Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9147947Z
2026-10-23T23:34:07.9148352Z src/orchestration-v2/ThreadSettlementService.ts:576:9 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9148355Z
2026-10-23T23:34:07.9148411Z 576 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9148461Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9148463Z
2026-10-23T23:34:07.9148848Z 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)
2026-10-23T23:34:07.9148851Z
2026-10-23T23:34:07.9148908Z 106 normalize: (item, runOrdinal) =>
2026-10-23T23:34:07.9148952Z ~~~~~~~~~
2026-10-23T23:34:07.9148954Z
2026-10-23T23:34:07.9149389Z 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)
2026-10-23T23:34:07.9149392Z
2026-10-23T23:34:07.9149497Z 54 const thread = Schema.decodeUnknownSync(OrchestrationV2AppThread)({
2026-10-23T23:34:07.9149547Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9149621Z
2026-10-23T23:34:07.9150021Z src/orchestration-v2/http.ts:231: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)
2026-10-23T23:34:07.9150025Z
2026-10-23T23:34:07.9150069Z 231 try {
2026-10-23T23:34:07.9150112Z ~~~~~
2026-10-23T23:34:07.9150196Z 232 decodeThreadHistoryCursor(args.query.cursor);
2026-10-23T23:34:07.9150264Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9150306Z ...
2026-10-23T23:34:07.9150445Z 236 return yield* failEnvironmentInternal("orchestration_thread_history_failed", cause);
2026-10-23T23:34:07.9150540Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9150582Z 237 }
2026-10-23T23:34:07.9150627Z ~~~~~~~~~~~
2026-10-23T23:34:07.9150630Z
2026-10-23T23:34:07.9150896Z src/orchestration-v2/runtimeLayer.test.ts:120:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9150899Z
2026-10-23T23:34:07.9150968Z 120 getById: () => Effect.succeed(Option.none()),
2026-10-23T23:34:07.9151017Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9151019Z
2026-10-23T23:34:07.9151276Z src/orchestration-v2/runtimeLayer.test.ts:996:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9151278Z
2026-10-23T23:34:07.9151329Z 996 Effect.succeed(
2026-10-23T23:34:07.9151376Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9151379Z
2026-10-23T23:34:07.9151774Z src/orchestration-v2/testkit/CommandOutputRecorder.ts:40:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("CommandOutputHub.CommandOutputHub.append")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9151779Z
2026-10-23T23:34:07.9151829Z 40 append: (input) =>
2026-10-23T23:34:07.9151940Z ~~~~~~
2026-10-23T23:34:07.9151944Z
2026-10-23T23:34:07.9152291Z src/orchestration-v2/testkit/OrchestratorScenario.ts:283:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("awaitDispatch")(function*(key) { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9152294Z
2026-10-23T23:34:07.9152360Z 283 const awaitDispatch = (key: string) =>
2026-10-23T23:34:07.9152404Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9152407Z
2026-10-23T23:34:07.9152858Z src/orchestration-v2/testkit/ProviderReplayHarness.ts:447:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadTitleRegenerationService.ThreadTitleRegenerationService.execute")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9152863Z
2026-10-23T23:34:07.9152917Z 447 execute: () => Effect.void,
2026-10-23T23:34:07.9152960Z ~~~~~~~
2026-10-23T23:34:07.9152962Z
2026-10-23T23:34:07.9153328Z src/persistence/PullRequestFilesViewed.ts:92:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestFilesViewedRepository.list")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9153332Z
2026-10-23T23:34:07.9153380Z 92 list: (input) =>
2026-10-23T23:34:07.9153423Z ~~~~
2026-10-23T23:34:07.9153425Z
2026-10-23T23:34:07.9153785Z src/persistence/PullRequestFilesViewed.ts:102:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestFilesViewedRepository.set")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9153787Z
2026-10-23T23:34:07.9153835Z 102 set: (input) =>
2026-10-23T23:34:07.9153876Z ~~~
2026-10-23T23:34:07.9153878Z
2026-10-23T23:34:07.9154307Z 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)
2026-10-23T23:34:07.9154309Z
2026-10-23T23:34:07.9154355Z 54 get: (key) =>
2026-10-23T23:34:07.9154398Z ~~~
2026-10-23T23:34:07.9154401Z
2026-10-23T23:34:07.9154771Z 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)
2026-10-23T23:34:07.9154773Z
2026-10-23T23:34:07.9154822Z 64 put: (key, guide) =>
2026-10-23T23:34:07.9154864Z ~~~
2026-10-23T23:34:07.9154867Z
2026-10-23T23:34:07.9155233Z 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)
2026-10-23T23:34:07.9155237Z
2026-10-23T23:34:07.9155290Z 45 Effect.catch((error) =>
2026-10-23T23:34:07.9155334Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9155339Z
2026-10-23T23:34:07.9155680Z src/preview/DesktopBrowserChannel.ts:75:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.awaitAttached")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9155683Z
2026-10-23T23:34:07.9155753Z 75 awaitAttached: () => Effect.succeed(false),
2026-10-23T23:34:07.9155798Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9155800Z
2026-10-23T23:34:07.9156161Z src/preview/DesktopBrowserChannel.ts:78:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.isAttached")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9156164Z
2026-10-23T23:34:07.9156229Z 78 isAttached: () => Effect.succeed(false),
2026-10-23T23:34:07.9156274Z ~~~~~~~~~~
2026-10-23T23:34:07.9156276Z
2026-10-23T23:34:07.9156671Z src/preview/DesktopBrowserChannel.ts:79:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.endpoint")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9156674Z
2026-10-23T23:34:07.9156784Z 79 endpoint: () => Effect.die("No desktop app is attached to this server."),
2026-10-23T23:34:07.9156827Z ~~~~~~~~
2026-10-23T23:34:07.9156830Z
2026-10-23T23:34:07.9157155Z src/preview/DesktopBrowserChannel.ts:80:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.pointer")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9157158Z
2026-10-23T23:34:07.9157212Z 80 pointer: () => Effect.void,
2026-10-23T23:34:07.9157255Z ~~~~~~~
2026-10-23T23:34:07.9157257Z
2026-10-23T23:34:07.9157621Z src/preview/DesktopBrowserChannel.ts:194:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.awaitAttached")((key, timeout) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9157626Z
2026-10-23T23:34:07.9157683Z 194 awaitAttached: (key, timeout) =>
2026-10-23T23:34:07.9157726Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9157728Z
2026-10-23T23:34:07.9158072Z src/preview/DesktopBrowserChannel.ts:216:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.isAttached")((key) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9158075Z
2026-10-23T23:34:07.9158179Z 216 isAttached: (key) => Effect.sync(() => attachedTabs.has(keyOf(key))),
2026-10-23T23:34:07.9158222Z ~~~~~~~~~~
2026-10-23T23:34:07.9158225Z
2026-10-23T23:34:07.9158569Z src/preview/DesktopBrowserChannel.ts:218:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBrowserChannel.pointer")((key, pointer) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9158643Z
2026-10-23T23:34:07.9158754Z 218 pointer: (key, pointer) => command({ type: "pointer", ...key, ...pointer }),
2026-10-23T23:34:07.9158798Z ~~~~~~~
2026-10-23T23:34:07.9158800Z
2026-10-23T23:34:07.9159291Z src/preview/ServerBrowser.ts:480: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)
2026-10-23T23:34:07.9159293Z
2026-10-23T23:34:07.9159394Z 480 executable: () => Effect.runPromise(previewBrowser.executable),
2026-10-23T23:34:07.9159445Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9159448Z
2026-10-23T23:34:07.9159934Z src/preview/ServerBrowser.ts:687: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)
2026-10-23T23:34:07.9159939Z
2026-10-23T23:34:07.9159990Z 687 ? Effect.runPromise(
2026-10-23T23:34:07.9160037Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9160040Z
2026-10-23T23:34:07.9160522Z src/preview/ServerBrowser.ts:696: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)
2026-10-23T23:34:07.9160525Z
2026-10-23T23:34:07.9160608Z 696 const scope = await Effect.runPromise(Scope.make());
2026-10-23T23:34:07.9160661Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9160665Z
2026-10-23T23:34:07.9161212Z src/preview/ServerBrowser.ts:698: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)
2026-10-23T23:34:07.9161218Z
2026-10-23T23:34:07.9161287Z 698 const endpoint = await Effect.runPromise(
2026-10-23T23:34:07.9161342Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9161344Z
2026-10-23T23:34:07.9161820Z src/preview/ServerBrowser.ts:708: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)
2026-10-23T23:34:07.9161823Z
2026-10-23T23:34:07.9161913Z 708 await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-23T23:34:07.9161962Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9161967Z
2026-10-23T23:34:07.9162447Z src/preview/ServerBrowser.ts:712: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)
2026-10-23T23:34:07.9162450Z
2026-10-23T23:34:07.9162540Z 712 await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-23T23:34:07.9162588Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9162591Z
2026-10-23T23:34:07.9163069Z src/preview/ServerBrowser.ts:1199: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)
2026-10-23T23:34:07.9163072Z
2026-10-23T23:34:07.9163195Z 1199 await Effect.runPromise(
2026-10-23T23:34:07.9163243Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9163246Z
2026-10-23T23:34:07.9163732Z src/preview/ServerBrowser.ts:1688: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)
2026-10-23T23:34:07.9163735Z
2026-10-23T23:34:07.9163791Z 1688 : await Effect.runPromise(
2026-10-23T23:34:07.9163840Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9163843Z
2026-10-23T23:34:07.9164326Z src/preview/ServerBrowser.ts:1752: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)
2026-10-23T23:34:07.9164331Z
2026-10-23T23:34:07.9164388Z 1752 ? await Effect.runPromise(
2026-10-23T23:34:07.9164438Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9164441Z
2026-10-23T23:34:07.9164732Z src/preview/ServerBrowser.ts:1755:58 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.9164735Z
2026-10-23T23:34:07.9164850Z 1755 ServerBrowserTabNotFoundError: () => Effect.succeed(undefined),
2026-10-23T23:34:07.9164922Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9164926Z
2026-10-23T23:34:07.9165404Z src/preview/ServerBrowser.ts:1761: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)
2026-10-23T23:34:07.9165409Z
2026-10-23T23:34:07.9165485Z 1761 const { sessions } = await Effect.runPromise(
2026-10-23T23:34:07.9165613Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9165616Z
2026-10-23T23:34:07.9166122Z src/preview/ServerBrowser.ts:1789: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)
2026-10-23T23:34:07.9166125Z
2026-10-23T23:34:07.9166185Z 1789 await Effect.runPromise(
2026-10-23T23:34:07.9166232Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9166235Z
2026-10-23T23:34:07.9166716Z src/preview/ServerBrowser.ts:1820: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)
2026-10-23T23:34:07.9166720Z
2026-10-23T23:34:07.9166779Z 1820 await Effect.runPromise(
2026-10-23T23:34:07.9166829Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9166831Z
2026-10-23T23:34:07.9167309Z src/preview/ServerBrowser.ts:1884: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)
2026-10-23T23:34:07.9167312Z
2026-10-23T23:34:07.9167450Z 1884 await Effect.runPromise(manager.close({ threadId: tab.threadId, tabId: tab.tabId }));
2026-10-23T23:34:07.9167500Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9167502Z
2026-10-23T23:34:07.9167982Z src/preview/ServerBrowser.ts:1952: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)
2026-10-23T23:34:07.9168055Z
2026-10-23T23:34:07.9168110Z 1952 await Effect.runPromise(
2026-10-23T23:34:07.9168158Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9168161Z
2026-10-23T23:34:07.9168638Z src/preview/ServerBrowser.ts:1964: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)
2026-10-23T23:34:07.9168642Z
2026-10-23T23:34:07.9168712Z 1964 const snapshot = await Effect.runPromise(
2026-10-23T23:34:07.9168770Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9168774Z
2026-10-23T23:34:07.9169261Z src/preview/ServerBrowser.ts:2210: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)
2026-10-23T23:34:07.9169263Z
2026-10-23T23:34:07.9169317Z 2210 await Effect.runPromise(
2026-10-23T23:34:07.9169363Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9169367Z
2026-10-23T23:34:07.9169663Z src/preview/ServerBrowserStream.ts:179:13 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("receive")((chunk) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9169665Z
2026-10-23T23:34:07.9169743Z 179 const receive = (chunk: Uint8Array | string) => {
2026-10-23T23:34:07.9169789Z ~~~~~~~
2026-10-23T23:34:07.9169792Z
2026-10-23T23:34:07.9170114Z 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)
2026-10-23T23:34:07.9170118Z
2026-10-23T23:34:07.9170289Z 209 Effect.catch(() => Effect.succeed(HttpServerResponse.empty())),
2026-10-23T23:34:07.9170333Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9170335Z
2026-10-23T23:34:07.9170684Z src/process/externalLauncher.ts:860:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.resolveAvailableEditors")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9170687Z
2026-10-23T23:34:07.9170777Z 860 resolveAvailableEditors: () => cachedAvailableEditors,
2026-10-23T23:34:07.9170825Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9170827Z
2026-10-23T23:34:07.9171178Z src/process/externalLauncher.ts:861:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.resolveFileManagerRevealKind")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9171183Z
2026-10-23T23:34:07.9171245Z 861 resolveFileManagerRevealKind: () =>
2026-10-23T23:34:07.9171295Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9171298Z
2026-10-23T23:34:07.9171627Z src/process/externalLauncher.ts:865:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.launchBrowser")((target) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9171629Z
2026-10-23T23:34:07.9171682Z 865 launchBrowser: (target) =>
2026-10-23T23:34:07.9171725Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9171727Z
2026-10-23T23:34:07.9172055Z src/process/externalLauncher.ts:869:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ExternalLauncher.launchEditor")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9172058Z
2026-10-23T23:34:07.9172178Z 869 launchEditor: (input) =>
2026-10-23T23:34:07.9172222Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9172224Z
2026-10-23T23:34:07.9172490Z src/project/AgentSessionImporter.test.ts:212:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9172493Z
2026-10-23T23:34:07.9172542Z 212 Effect.succeed(
2026-10-23T23:34:07.9172589Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9172591Z
2026-10-23T23:34:07.9172845Z src/project/ManagedProjectFolders.ts:346:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9172849Z
2026-10-23T23:34:07.9172937Z 346 ? Effect.succeed(Option.some(folderFor(id.slice(-8))))
2026-10-23T23:34:07.9172983Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9172987Z
2026-10-23T23:34:07.9173236Z src/project/ManagedProjectFolders.ts:348:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9173240Z
2026-10-23T23:34:07.9173312Z 348 ? Effect.succeed(Option.some(fullFolder))
2026-10-23T23:34:07.9173360Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9173362Z
2026-10-23T23:34:07.9173701Z src/project/ProjectCloneTracker.ts:432:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.start")((input, hooks) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9173703Z
2026-10-23T23:34:07.9173785Z 432 start: (input, hooks) => locked(start(input, hooks)),
2026-10-23T23:34:07.9173828Z ~~~~~
2026-10-23T23:34:07.9173831Z
2026-10-23T23:34:07.9174167Z src/project/ProjectCloneTracker.ts:433:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.cancel")((projectId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9174170Z
2026-10-23T23:34:07.9174246Z 433 cancel: (projectId) => locked(cancel(projectId)),
2026-10-23T23:34:07.9174289Z ~~~~~~
2026-10-23T23:34:07.9174291Z
2026-10-23T23:34:07.9174688Z src/project/ProjectCloneTracker.ts:434:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.retry")((projectId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9174691Z
2026-10-23T23:34:07.9174765Z 434 retry: (projectId) => locked(retry(projectId)),
2026-10-23T23:34:07.9174808Z ~~~~~
2026-10-23T23:34:07.9174810Z
2026-10-23T23:34:07.9175144Z src/project/ProjectCloneTracker.ts:435:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProjectCloneTracker.discard")((projectId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9175147Z
2026-10-23T23:34:07.9175224Z 435 discard: (projectId) => locked(discard(projectId)),
2026-10-23T23:34:07.9175267Z ~~~~~~~
2026-10-23T23:34:07.9175270Z
2026-10-23T23:34:07.9175623Z 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)
2026-10-23T23:34:07.9175626Z
2026-10-23T23:34:07.9175732Z 21 get: (key) => Effect.sync(() => Option.fromUndefinedOr(bytes.get(key))),
2026-10-23T23:34:07.9175774Z ~~~
2026-10-23T23:34:07.9175777Z
2026-10-23T23:34:07.9176170Z 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)
2026-10-23T23:34:07.9176173Z
2026-10-23T23:34:07.9176222Z 22 set: (key, value) =>
2026-10-23T23:34:07.9176265Z ~~~
2026-10-23T23:34:07.9176267Z
2026-10-23T23:34:07.9176623Z 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)
2026-10-23T23:34:07.9176703Z
2026-10-23T23:34:07.9176754Z 26 remove: (key) =>
2026-10-23T23:34:07.9176796Z ~~~~~~
2026-10-23T23:34:07.9176800Z
2026-10-23T23:34:07.9177146Z 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)
2026-10-23T23:34:07.9177148Z
2026-10-23T23:34:07.9177254Z 30 create: () => Effect.die("Handoff does not create persistent secrets."),
2026-10-23T23:34:07.9177297Z ~~~~~~
2026-10-23T23:34:07.9177299Z
2026-10-23T23:34:07.9177677Z 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)
2026-10-23T23:34:07.9177682Z
2026-10-23T23:34:07.9177820Z 31 getOrCreateRandom: () => Effect.die("Handoff uses the destination environment identity."),
2026-10-23T23:34:07.9177869Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9177871Z
2026-10-23T23:34:07.9178320Z 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)
2026-10-23T23:34:07.9178323Z
2026-10-23T23:34:07.9178439Z 205 return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(
2026-10-23T23:34:07.9178494Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9178496Z
2026-10-23T23:34:07.9178791Z src/provider/CodexProvider.ts:569:11 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.9178795Z
2026-10-23T23:34:07.9178850Z 569 ? Effect.succeed(undefined)
2026-10-23T23:34:07.9178899Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9178967Z
2026-10-23T23:34:07.9179308Z src/provider/ModelManifest.ts:284:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ModelCatalog.ModelCatalog.current")((driverKind) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9179311Z
2026-10-23T23:34:07.9179364Z 284 current: (driverKind) =>
2026-10-23T23:34:07.9179405Z ~~~~~~~
2026-10-23T23:34:07.9179408Z
2026-10-23T23:34:07.9179797Z 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)
2026-10-23T23:34:07.9179799Z
2026-10-23T23:34:07.9179860Z 284 return yield* Effect.fail(
2026-10-23T23:34:07.9179910Z ~~~~~
2026-10-23T23:34:07.9179912Z
2026-10-23T23:34:07.9180353Z src/provider/ProviderAuthService.ts:211:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAuthService.importProfile")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9180356Z
2026-10-23T23:34:07.9180409Z 211 importProfile: (input) =>
2026-10-23T23:34:07.9180453Z ~~~~~~~~~~~~~
2026-10-23T23:34:07.9180455Z
2026-10-23T23:34:07.9180828Z 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)
2026-10-23T23:34:07.9180830Z
2026-10-23T23:34:07.9180895Z 39 credentials: (namespace, bindingId) =>
2026-10-23T23:34:07.9180938Z ~~~~~~~~~~~
2026-10-23T23:34:07.9180940Z
2026-10-23T23:34:07.9181538Z src/pullRequest/PullRequestService.ts:2933:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9181542Z
2026-10-23T23:34:07.9181595Z 2933 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9181642Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9181644Z
2026-10-23T23:34:07.9182035Z src/pullRequest/PullRequestService.ts:3336:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9182037Z
2026-10-23T23:34:07.9182091Z 3336 Effect.catchCause((cause) =>
2026-10-23T23:34:07.9182136Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9182138Z
2026-10-23T23:34:07.9182479Z src/pullRequest/PullRequestService.ts:3556:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestService.listStats")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9182485Z
2026-10-23T23:34:07.9182539Z 3556 listStats: (input) =>
2026-10-23T23:34:07.9182582Z ~~~~~~~~~
2026-10-23T23:34:07.9182585Z
2026-10-23T23:34:07.9182839Z src/relay/AgentAwarenessRelay.test.ts:271:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-23T23:34:07.9182842Z
2026-10-23T23:34:07.9182890Z 271 Effect.succeed(
2026-10-23T23:34:07.9182936Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9182939Z
2026-10-23T23:34:07.9183271Z src/relay/AgentAwarenessRelay.ts:822:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AgentAwarenessRelay.requestCatchUp")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9183273Z
2026-10-23T23:34:07.9183402Z 822 requestCatchUp: () => Queue.offer(catchUpRequests, undefined).pipe(Effect.asVoid),
2026-10-23T23:34:07.9183448Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9183452Z
2026-10-23T23:34:07.9183937Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:641:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.requestDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9183940Z
2026-10-23T23:34:07.9184005Z 641 requestDesktopUpdate: (requestId) =>
2026-10-23T23:34:07.9184050Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9184052Z
2026-10-23T23:34:07.9184453Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:647:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.commitDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9184455Z
2026-10-23T23:34:07.9184516Z 647 commitDesktopUpdate: (requestId) =>
2026-10-23T23:34:07.9184563Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9184565Z
2026-10-23T23:34:07.9184966Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:649:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.cancelDesktopUpdate")((requestId) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9184969Z
2026-10-23T23:34:07.9185028Z 649 cancelDesktopUpdate: (requestId) =>
2026-10-23T23:34:07.9185074Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9185076Z
2026-10-23T23:34:07.9185460Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:698:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.setDiagnosticsDemand")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9185464Z
2026-10-23T23:34:07.9185529Z 698 setDiagnosticsDemand: () => Effect.void,
2026-10-23T23:34:07.9185575Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9185578Z
2026-10-23T23:34:07.9186076Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:699:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.requestDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9186079Z
2026-10-23T23:34:07.9186145Z 699 requestDesktopUpdate: () => Effect.void,
2026-10-23T23:34:07.9186190Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9186192Z
2026-10-23T23:34:07.9186576Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:700:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.commitDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9186579Z
2026-10-23T23:34:07.9186644Z 700 commitDesktopUpdate: () => Effect.void,
2026-10-23T23:34:07.9186691Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9186694Z
2026-10-23T23:34:07.9187077Z src/resourceTelemetry/DesktopTelemetryReceiver.ts:701:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopTelemetryReceiver.cancelDesktopUpdate")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9187084Z
2026-10-23T23:34:07.9187147Z 701 cancelDesktopUpdate: () => Effect.void,
2026-10-23T23:34:07.9187193Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9187195Z
2026-10-23T23:34:07.9187552Z src/resourceTelemetry/NativeTelemetryClient.ts:1091:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.readHistory")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9187554Z
2026-10-23T23:34:07.9187603Z 1091 readHistory: () =>
2026-10-23T23:34:07.9187647Z ~~~~~~~~~~~
2026-10-23T23:34:07.9187649Z
2026-10-23T23:34:07.9188024Z src/resourceTelemetry/NativeTelemetryClient.ts:1097:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.setExternalProcesses")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9188031Z
2026-10-23T23:34:07.9188097Z 1097 setExternalProcesses: () => Effect.void,
2026-10-23T23:34:07.9188209Z ~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9188212Z
2026-10-23T23:34:07.9188581Z src/resourceTelemetry/NativeTelemetryClient.ts:1098:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("NativeTelemetryClient.setHostPowerState")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9188583Z
2026-10-23T23:34:07.9188646Z 1098 setHostPowerState: () => Effect.void,
2026-10-23T23:34:07.9188690Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9188693Z
2026-10-23T23:34:07.9189010Z src/scheduledTasks/ScheduledTaskService.ts:1136:31 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.9189012Z
2026-10-23T23:34:07.9189086Z 1136 ? Effect.succeed(undefined)
2026-10-23T23:34:07.9189149Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9189151Z
2026-10-23T23:34:07.9189453Z src/secrets/SecretRequests.test.ts:166:30 - suggestion TS377113: `Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)
2026-10-23T23:34:07.9189456Z
2026-10-23T23:34:07.9189515Z 166 const results = yield* Effect.all(
2026-10-23T23:34:07.9189566Z ~~~~~~~~~~
2026-10-23T23:34:07.9189569Z
2026-10-23T23:34:07.9189957Z src/server.ts:480: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)
2026-10-23T23:34:07.9189960Z
2026-10-23T23:34:07.9190016Z 480 return Effect.gen(function* () {
2026-10-23T23:34:07.9190132Z ~~~~~~
2026-10-23T23:34:07.9190134Z
2026-10-23T23:34:07.9190428Z 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)
2026-10-23T23:34:07.9190430Z
2026-10-23T23:34:07.9190501Z 209 prepareTrial: Effect.succeed(undefined),
2026-10-23T23:34:07.9190559Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9190562Z
2026-10-23T23:34:07.9190848Z 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)
2026-10-23T23:34:07.9190851Z
2026-10-23T23:34:07.9190909Z 413 const results = yield* Effect.all(
2026-10-23T23:34:07.9190958Z ~~~~~~~~~~
2026-10-23T23:34:07.9190961Z
2026-10-23T23:34:07.9191408Z src/sourceControl/SourceControlProviderRegistry.ts:204:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9191414Z
2026-10-23T23:34:07.9191471Z 204 listChangeRequests: (input) =>
2026-10-23T23:34:07.9191517Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9191519Z
2026-10-23T23:34:07.9191952Z src/sourceControl/SourceControlProviderRegistry.ts:209:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9191955Z
2026-10-23T23:34:07.9192008Z 209 getChangeRequest: (input) =>
2026-10-23T23:34:07.9192054Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9192057Z
2026-10-23T23:34:07.9192498Z src/sourceControl/SourceControlProviderRegistry.ts:214:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9192503Z
2026-10-23T23:34:07.9192622Z 214 createChangeRequest: (input) =>
2026-10-23T23:34:07.9192667Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9192671Z
2026-10-23T23:34:07.9193112Z src/sourceControl/SourceControlProviderRegistry.ts:219:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9193114Z
2026-10-23T23:34:07.9193176Z 219 getRepositoryCloneUrls: (input) =>
2026-10-23T23:34:07.9193222Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9193224Z
2026-10-23T23:34:07.9193657Z src/sourceControl/SourceControlProviderRegistry.ts:224:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9193662Z
2026-10-23T23:34:07.9193765Z 224 createRepository: (input) => provider.createRepository(input),
2026-10-23T23:34:07.9193810Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9193812Z
2026-10-23T23:34:07.9194244Z src/sourceControl/SourceControlProviderRegistry.ts:225:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9194247Z
2026-10-23T23:34:07.9194300Z 225 getDefaultBranch: (input) =>
2026-10-23T23:34:07.9194344Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9194347Z
2026-10-23T23:34:07.9194792Z src/sourceControl/SourceControlProviderRegistry.ts:230:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9194865Z
2026-10-23T23:34:07.9194924Z 230 checkoutChangeRequest: (input) =>
2026-10-23T23:34:07.9194972Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9194974Z
2026-10-23T23:34:07.9195358Z src/sourceControl/SourceControlProviderRegistry.ts:345:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProviderRegistry.resolve")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9195360Z
2026-10-23T23:34:07.9195499Z 345 resolve: (input) => resolveHandle(input).pipe(Effect.map((handle) => handle.provider)),
2026-10-23T23:34:07.9195540Z ~~~~~~~
2026-10-23T23:34:07.9195544Z
2026-10-23T23:34:07.9195936Z src/sourceControl/SourceControlRepositoryService.ts:409:7 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-23T23:34:07.9195940Z
2026-10-23T23:34:07.9196024Z 409 Effect.catch((sshError) =>
2026-10-23T23:34:07.9196069Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9196072Z
2026-10-23T23:34:07.9196483Z src/sourceControl/SourceControlRepositoryService.ts:556:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.lookupRepository")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9196486Z
2026-10-23T23:34:07.9196540Z 556 lookupRepository: (input) =>
2026-10-23T23:34:07.9196584Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9196586Z
2026-10-23T23:34:07.9196986Z src/sourceControl/SourceControlRepositoryService.ts:558:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.prepareClone")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9196988Z
2026-10-23T23:34:07.9197041Z 558 prepareClone: (input) =>
2026-10-23T23:34:07.9197087Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9197089Z
2026-10-23T23:34:07.9197567Z src/sourceControl/SourceControlRepositoryService.ts:565:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.cloneRepository")((input, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9197572Z
2026-10-23T23:34:07.9197632Z 565 cloneRepository: (input, options) =>
2026-10-23T23:34:07.9197677Z ~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9197679Z
2026-10-23T23:34:07.9198087Z src/sourceControl/SourceControlRepositoryService.ts:572:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.discardClone")((destinationPath) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9198090Z
2026-10-23T23:34:07.9198149Z 572 discardClone: (destinationPath) =>
2026-10-23T23:34:07.9198190Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9198195Z
2026-10-23T23:34:07.9198606Z src/sourceControl/SourceControlRepositoryService.ts:576:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.publishRepository")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9198609Z
2026-10-23T23:34:07.9198666Z 576 publishRepository: (input) =>
2026-10-23T23:34:07.9198712Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9198715Z
2026-10-23T23:34:07.9199065Z src/storageCleanup.ts:708: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)
2026-10-23T23:34:07.9199068Z
2026-10-23T23:34:07.9199118Z 708 return yield* Effect.fail(
2026-10-23T23:34:07.9199163Z ~~~~~
2026-10-23T23:34:07.9199165Z
2026-10-23T23:34:07.9199477Z src/telemetry/AnalyticsService.ts:113:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AnalyticsService.record")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9199554Z
2026-10-23T23:34:07.9199606Z 113 record: () => Effect.void,
2026-10-23T23:34:07.9199650Z ~~~~~~
2026-10-23T23:34:07.9199652Z
2026-10-23T23:34:07.9199970Z src/telemetry/AnalyticsService.ts:115:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("AnalyticsService.recordOwners")(() => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9199973Z
2026-10-23T23:34:07.9200030Z 115 recordOwners: () => Effect.void,
2026-10-23T23:34:07.9200074Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9200077Z
2026-10-23T23:34:07.9200408Z src/telemetry/AnalyticsService.ts:329:62 - suggestion TS377132: `Effect.andThen` expresses this sequencing more directly than `Effect.flatMap` with a zero-parameter callback. effect(flatMapIgnoredParamToAndThen)
2026-10-23T23:34:07.9200410Z
2026-10-23T23:34:07.9200567Z 329 yield* Effect.forever(Effect.sleep(FLUSH_INTERVAL_MS).pipe(Effect.flatMap(() => flushWhenDue)), {
2026-10-23T23:34:07.9200640Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9200642Z
2026-10-23T23:34:07.9200939Z src/textGeneration/CodexTextGeneration.ts:90:13 - suggestion TS377099: `Effect.ignore` expresses ignored failure more directly than `Effect.catch` returning `Effect.void`. effect(catchToIgnore)
2026-10-23T23:34:07.9200942Z
2026-10-23T23:34:07.9201005Z 90 .pipe(Effect.catch(() => Effect.void));
2026-10-23T23:34:07.9201051Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9201054Z
2026-10-23T23:34:07.9201404Z 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)
2026-10-23T23:34:07.9201407Z
2026-10-23T23:34:07.9201464Z 60 generateCommitMessage: (input) =>
2026-10-23T23:34:07.9201513Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9201516Z
2026-10-23T23:34:07.9201925Z 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)
2026-10-23T23:34:07.9201928Z
2026-10-23T23:34:07.9201983Z 64 generatePrContent: (input) =>
2026-10-23T23:34:07.9202027Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9202031Z
2026-10-23T23:34:07.9202374Z 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)
2026-10-23T23:34:07.9202376Z
2026-10-23T23:34:07.9202432Z 68 generateBranchName: (input) =>
2026-10-23T23:34:07.9202478Z ~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9202480Z
2026-10-23T23:34:07.9202824Z 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)
2026-10-23T23:34:07.9202831Z
2026-10-23T23:34:07.9202886Z 72 generateReviewGuide: (input) =>
2026-10-23T23:34:07.9202933Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9202935Z
2026-10-23T23:34:07.9203278Z 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)
2026-10-23T23:34:07.9203281Z
2026-10-23T23:34:07.9203336Z 76 generateThreadTitle: (input) =>
2026-10-23T23:34:07.9203382Z ~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9203385Z
2026-10-23T23:34:07.9203689Z src/usage/UsageService.ts:172:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("UsageService.readSummary")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9203768Z
2026-10-23T23:34:07.9203820Z 172 readSummary: (input) =>
2026-10-23T23:34:07.9203863Z ~~~~~~~~~~~
2026-10-23T23:34:07.9203866Z
2026-10-23T23:34:07.9204131Z src/usage/UsageService.ts:642:9 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
2026-10-23T23:34:07.9204133Z
2026-10-23T23:34:07.9204193Z 642 usageInstances(driver, settings)
2026-10-23T23:34:07.9204244Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9204289Z 643 .pipe(
2026-10-23T23:34:07.9204332Z ~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9204372Z ...
2026-10-23T23:34:07.9204444Z 664 Effect.provideContext(readerContext),
2026-10-23T23:34:07.9204503Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9204547Z 665 ),
2026-10-23T23:34:07.9204588Z ~~~~~~~~~~~
2026-10-23T23:34:07.9204590Z
2026-10-23T23:34:07.9204971Z src/vcs/GitVcsDriverCore.ts:4009:9 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-23T23:34:07.9204974Z
2026-10-23T23:34:07.9205029Z 4009 Effect.flatMap((result) =>
2026-10-23T23:34:07.9205074Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9205077Z
2026-10-23T23:34:07.9205438Z src/vcs/GitVcsDriverCore.ts:4500:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.commit")((cwd, subject, body, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9205441Z
2026-10-23T23:34:07.9205504Z 4500 commit: (cwd, subject, body, options) =>
2026-10-23T23:34:07.9205547Z ~~~~~~
2026-10-23T23:34:07.9205550Z
2026-10-23T23:34:07.9205942Z src/vcs/GitVcsDriverCore.ts:4502:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pushCurrentBranch")((cwd, fallbackBranch, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9205946Z
2026-10-23T23:34:07.9206138Z 4502 pushCurrentBranch: (cwd, fallbackBranch, options) =>
2026-10-23T23:34:07.9206185Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9206187Z
2026-10-23T23:34:07.9206532Z src/vcs/GitVcsDriverCore.ts:4504:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pullCurrentBranch")((cwd) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9206534Z
2026-10-23T23:34:07.9206667Z 4504 pullCurrentBranch: (cwd) => withListRefsInvalidation(cwd, pullCurrentBranch(cwd)),
2026-10-23T23:34:07.9206712Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9206714Z
2026-10-23T23:34:07.9207076Z src/vcs/GitVcsDriverCore.ts:4511:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createWorktree")((input, options) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9207081Z
2026-10-23T23:34:07.9207141Z 4511 createWorktree: (input, options) =>
2026-10-23T23:34:07.9207187Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9207189Z
2026-10-23T23:34:07.9207660Z src/vcs/GitVcsDriverCore.ts:4513:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchPullRequestBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9207662Z
2026-10-23T23:34:07.9207723Z 4513 fetchPullRequestBranch: (input) =>
2026-10-23T23:34:07.9207771Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9207774Z
2026-10-23T23:34:07.9208133Z src/vcs/GitVcsDriverCore.ts:4517:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.refreshCheckedOutBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9208217Z
2026-10-23T23:34:07.9208277Z 4517 refreshCheckedOutBranch: (input) =>
2026-10-23T23:34:07.9208324Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9208326Z
2026-10-23T23:34:07.9208666Z src/vcs/GitVcsDriverCore.ts:4519:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.ensureRemote")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9208668Z
2026-10-23T23:34:07.9208799Z 4519 ensureRemote: (input) => withListRefsInvalidation(input.cwd, ensureRemote(input)),
2026-10-23T23:34:07.9208843Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9208846Z
2026-10-23T23:34:07.9209183Z src/vcs/GitVcsDriverCore.ts:4522:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemote")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9209186Z
2026-10-23T23:34:07.9209237Z 4522 fetchRemote: (input) =>
2026-10-23T23:34:07.9209283Z ~~~~~~~~~~~
2026-10-23T23:34:07.9209286Z
2026-10-23T23:34:07.9209650Z src/vcs/GitVcsDriverCore.ts:4537:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchWorktreeBaseCommit")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9209652Z
2026-10-23T23:34:07.9209714Z 4537 fetchWorktreeBaseCommit: (input) =>
2026-10-23T23:34:07.9209759Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9209761Z
2026-10-23T23:34:07.9210110Z src/vcs/GitVcsDriverCore.ts:4539:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9210112Z
2026-10-23T23:34:07.9210262Z 4539 fetchRemoteBranch: (input) => withListRefsInvalidation(input.cwd, fetchRemoteBranch(input)),
2026-10-23T23:34:07.9210307Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9210309Z
2026-10-23T23:34:07.9210751Z src/vcs/GitVcsDriverCore.ts:4540:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteTrackingBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9210753Z
2026-10-23T23:34:07.9210818Z 4540 fetchRemoteTrackingBranch: (input) =>
2026-10-23T23:34:07.9210868Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9210871Z
2026-10-23T23:34:07.9211219Z src/vcs/GitVcsDriverCore.ts:4542:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.setBranchUpstream")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9211222Z
2026-10-23T23:34:07.9211370Z 4542 setBranchUpstream: (input) => withListRefsInvalidation(input.cwd, setBranchUpstream(input)),
2026-10-23T23:34:07.9211415Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9211418Z
2026-10-23T23:34:07.9211763Z src/vcs/GitVcsDriverCore.ts:4543:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.removeWorktree")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9211769Z
2026-10-23T23:34:07.9211906Z 4543 removeWorktree: (input) => withListRefsInvalidation(input.cwd, removeWorktree(input)),
2026-10-23T23:34:07.9211951Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9211953Z
2026-10-23T23:34:07.9212297Z src/vcs/GitVcsDriverCore.ts:4544:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pruneWorktrees")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9212299Z
2026-10-23T23:34:07.9212435Z 4544 pruneWorktrees: (input) => withListRefsInvalidation(input.cwd, pruneWorktrees(input)),
2026-10-23T23:34:07.9212478Z ~~~~~~~~~~~~~~
2026-10-23T23:34:07.9212481Z
2026-10-23T23:34:07.9212833Z src/vcs/GitVcsDriverCore.ts:4545:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.deleteLocalBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9212922Z
2026-10-23T23:34:07.9213070Z 4545 deleteLocalBranch: (input) => withListRefsInvalidation(input.cwd, deleteLocalBranch(input)),
2026-10-23T23:34:07.9213116Z ~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9213119Z
2026-10-23T23:34:07.9213459Z src/vcs/GitVcsDriverCore.ts:4546:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.renameBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9213462Z
2026-10-23T23:34:07.9213589Z 4546 renameBranch: (input) => withListRefsInvalidation(input.cwd, renameBranch(input)),
2026-10-23T23:34:07.9213634Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9213636Z
2026-10-23T23:34:07.9213970Z src/vcs/GitVcsDriverCore.ts:4547:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createRef")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9213975Z
2026-10-23T23:34:07.9214094Z 4547 createRef: (input) => withListRefsInvalidation(input.cwd, createRef(input)),
2026-10-23T23:34:07.9214137Z ~~~~~~~~~
2026-10-23T23:34:07.9214140Z
2026-10-23T23:34:07.9214476Z src/vcs/GitVcsDriverCore.ts:4548:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.switchRef")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-23T23:34:07.9214479Z
2026-10-23T23:34:07.9214592Z 4548 switchRef: (input) => withListRefsInvalidation(input.cwd, switchRef(input)),
2026-10-23T23:34:07.9214636Z ~~~~~~~~~
2026-10-23T23:34:07.9214639Z
2026-10-23T23:34:07.9215060Z 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)
2026-10-23T23:34:07.9215064Z
2026-10-23T23:34:07.9215135Z 153 return serverSettings.getSettings.pipe(
2026-10-23T23:34:07.9215242Z ~~~~~~
2026-10-23T23:34:07.9215244Z
2026-10-23T23:34:07.9215573Z src/workspace/WorkspaceFileSystem.ts:171:15 - suggestion TS377095: `Effect.orElseSucceed` expresses the same recovery more directly than `Effect.catch` followed by `Effect.succeed`. effect(catchToOrElseSucceed)
2026-10-23T23:34:07.9215575Z
2026-10-23T23:34:07.9215662Z 171 }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-23T23:34:07.9215711Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9215713Z
2026-10-23T23:34:07.9216044Z src/workspace/WorkspaceFileSystem.ts:171:34 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.9216048Z
2026-10-23T23:34:07.9216134Z 171 }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-23T23:34:07.9216199Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9216202Z
2026-10-23T23:34:07.9216461Z src/ws.test.ts:401:47 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-23T23:34:07.9216464Z
2026-10-23T23:34:07.9216570Z 401 resolveFileManagerRevealKind: () => Effect.succeed(undefined),
2026-10-23T23:34:07.9216639Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-23T23:34:07.9216641Z
2026-10-23T23:34:07.9216947Z src/ws.ts:1384:23 - suggestion TS377118: `Effect.fromOption` expresses this Option-to-Effect conversion more directly than `Option.match` or an Option tag conditional. effect(optionMatchToFromOption)
2026-10-23T23:34:07.9216949Z
2026-10-23T23:34:07.9217016Z 1384 return yield* Option.match(project, {
2026-10-23T23:34:07.9217137Z ~~~~~~~~~~~~
2026-10-23T23:34:07.9217139Z
2026-10-23T23:34:07.9217468Z src/ws.ts:2319: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)
2026-10-23T23:34:07.9217470Z
2026-10-23T23:34:07.9217530Z 2319 return yield* Effect.fail(
2026-10-23T23:34:07.9217579Z ~~~~~
2026-10-23T23:34:07.9217582Z
2026-10-23T23:34:07.9217901Z src/ws.ts:2328: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)
2026-10-23T23:34:07.9217903Z
2026-10-23T23:34:07.9217962Z 2328 return yield* Effect.fail(
2026-10-23T23:34:07.9218010Z ~~~~~
2026-10-23T23:34:07.9218012Z
2026-10-23T23:34:07.9218332Z src/ws.ts:2336: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)
2026-10-23T23:34:07.9218337Z
2026-10-23T23:34:07.9218395Z 2336 return yield* Effect.fail(
2026-10-23T23:34:07.9218441Z ~~~~~
2026-10-23T23:34:07.9218444Z
2026-10-23T23:34:07.9218446Z
2026-10-23T23:34:07.9218488Z ---
2026-10-23T23:34:07.9218784Z vp run: 0/32 cache hit (0%), 32/32 successful. @t3tools/oxlint-plugin-t3code#typecheck (and 1 more) not cached because they modified their inputs. (Run `vp run --last-details` for full details)
2026-10-23T23:34:07.9762067Z Post job cleanup.
2026-10-23T23:34:08.0440677Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-23T23:34:08.0517528Z Post job cleanup.
2026-10-23T23:34:08.0530082Z ##[start-action display=Cache full pnpm store;id=__9519b101-71d5-47e8-8b98-95fcf612a076.__actions_cache]
2026-10-23T23:34:08.1591428Z Post job cleanup.
2026-10-23T23:34:08.2316514Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-3cb0b4d7cff93dc8fe33f2ea73cac71ca25a36270fcb648b9b4a9320151012ef, not saving cache.
2026-10-23T23:34:08.2354125Z ##[end-action id=__9519b101-71d5-47e8-8b98-95fcf612a076.__actions_cache;outcome=success;conclusion=success;duration_ms=182]
2026-10-23T23:34:08.2355819Z ##[start-action display=Cache Vite+;id=__9519b101-71d5-47e8-8b98-95fcf612a076.vp_cache]
2026-10-23T23:34:08.2377059Z Post job cleanup.
2026-10-23T23:34:08.3077531Z Cache hit occurred on the primary key vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0, not saving cache.
2026-10-23T23:34:08.3119974Z ##[end-action id=__9519b101-71d5-47e8-8b98-95fcf612a076.vp_cache;outcome=success;conclusion=success;duration_ms=76]
2026-10-23T23:34:08.3165175Z Post job cleanup.
2026-10-23T23:34:08.3614298Z [command]/usr/local/bin/git version
2026-10-23T23:34:08.3645759Z git version 2.55.0
2026-10-23T23:34:08.3664922Z Temporarily overriding HOME='/home/runner/_work/_temp/5d15600f-e6a8-47a1-a161-fa4a9cab7e68' before making global git config changes
2026-10-23T23:34:08.3665542Z Adding repository directory to the temporary git global config as a safe directory
2026-10-23T23:34:08.3668431Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-23T23:34:08.3698301Z Removing SSH command configuration
2026-10-23T23:34:08.3701743Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-23T23:34:08.3727778Z [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' || :"
2026-10-23T23:34:08.3863953Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-23T23:34:08.3917000Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-23T23:34:08.3964102Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-23T23:34:08.3994169Z ##[group]Run '/job_completed.sh'
2026-10-23T23:34:08.4011395Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-23T23:34:08.4011581Z env:
2026-10-23T23:34:08.4011706Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 135
2026-10-23T23:34:08.4011870Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 460
2026-10-23T23:34:08.4012035Z BLACKSMITH_CHECK_RUN_ID: 120709652753
2026-10-23T23:34:08.4012271Z BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck
2026-10-23T23:34:08.4012446Z GITHUB_ACTIONS_CACHE_MODE: write
2026-10-23T23:34:08.4012594Z ##[endgroup]
2026-10-23T23:34:08.4106371Z Docker container cache not activated, skipping hash computation.
2026-10-23T23:34:08.4409398Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-23T23:34:08.4451126Z Cleaning up orphan processes