GitHub check

256 KB of 528 KB loaded Download the full log (528 KB)
272 KB of earlier output not loaded
})`. effect(effectFnOpportunity)
2026-10-24T11:08:06.0949255Z
2026-10-24T11:08:06.0949314Z 663     setPullRequestReviewers: (input) =>
2026-10-24T11:08:06.0949454Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0949531Z
2026-10-24T11:08:06.0949890Z 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-24T11:08:06.0950324Z
2026-10-24T11:08:06.0950382Z 688     runPullRequestAction: (input) =>
2026-10-24T11:08:06.0950519Z         ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0950591Z
2026-10-24T11:08:06.0950945Z 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-24T11:08:06.0951343Z
2026-10-24T11:08:06.0951397Z 707     updatePullRequest: (input) =>
2026-10-24T11:08:06.0951531Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0951602Z
2026-10-24T11:08:06.0952012Z 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-24T11:08:06.0952460Z
2026-10-24T11:08:06.0952514Z 81     listChangeRequests: (input) => {
2026-10-24T11:08:06.0952650Z        ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0952719Z
2026-10-24T11:08:06.0953123Z 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-24T11:08:06.0953569Z
2026-10-24T11:08:06.0953621Z 109     getChangeRequest: (input) =>
2026-10-24T11:08:06.0953750Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0953819Z
2026-10-24T11:08:06.0954230Z 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-24T11:08:06.0954681Z
2026-10-24T11:08:06.0954736Z 127     createChangeRequest: (input) => {
2026-10-24T11:08:06.0954874Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0954948Z
2026-10-24T11:08:06.0955362Z 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-24T11:08:06.0955819Z
2026-10-24T11:08:06.0955878Z 156     getRepositoryCloneUrls: (input) =>
2026-10-24T11:08:06.0956016Z         ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0956094Z
2026-10-24T11:08:06.0956495Z 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-24T11:08:06.0956943Z
2026-10-24T11:08:06.0956993Z 173     createRepository: (input) =>
2026-10-24T11:08:06.0957125Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0957194Z
2026-10-24T11:08:06.0957593Z 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-24T11:08:06.0958036Z
2026-10-24T11:08:06.0958087Z 190     getDefaultBranch: (input) =>
2026-10-24T11:08:06.0958264Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0958334Z
2026-10-24T11:08:06.0958750Z 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-24T11:08:06.0959256Z
2026-10-24T11:08:06.0959312Z 204     checkoutChangeRequest: (input) =>
2026-10-24T11:08:06.0959451Z         ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0959527Z
2026-10-24T11:08:06.0959529Z
2026-10-24T11:08:06.0959597Z ~/packages/source-control-forgejo$ tsc --noEmit
2026-10-24T11:08:06.0959704Z
2026-10-24T11:08:06.0959761Z ~/packages/provider-grok$ tsc --noEmit
2026-10-24T11:08:06.0960175Z 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-24T11:08:06.0960510Z
2026-10-24T11:08:06.0960556Z 170     get: (host) =>
2026-10-24T11:08:06.0960666Z         ~~~
2026-10-24T11:08:06.0960723Z
2026-10-24T11:08:06.0961030Z 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-24T11:08:06.0961381Z
2026-10-24T11:08:06.0961481Z 183     invalidate: (host) => Cache.invalidate(cache, normalizeHost(host)),
2026-10-24T11:08:06.0961664Z         ~~~~~~~~~~
2026-10-24T11:08:06.0961728Z
2026-10-24T11:08:06.0962029Z 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-24T11:08:06.0962370Z
2026-10-24T11:08:06.0962418Z 184     cliEnv: (host) =>
2026-10-24T11:08:06.0962531Z         ~~~~~~
2026-10-24T11:08:06.0962589Z
2026-10-24T11:08:06.0962848Z src/server/GitCafePullRequestProvider.ts:341:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.0963143Z
2026-10-24T11:08:06.0963195Z 341         Effect.map(Option.some),
2026-10-24T11:08:06.0963323Z             ~~~~~~~~~~
2026-10-24T11:08:06.0963390Z
2026-10-24T11:08:06.0963643Z src/server/GitCafePullRequestProvider.ts:346:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.0963932Z
2026-10-24T11:08:06.0963995Z 346               : Effect.succeed(Option.none()),
2026-10-24T11:08:06.0964145Z                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.0964226Z
2026-10-24T11:08:06.0964476Z src/server/GitCafePullRequestProvider.ts:655:13 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.0964769Z
2026-10-24T11:08:06.0964823Z 655             Effect.map(Option.some),
2026-10-24T11:08:06.0964958Z                 ~~~~~~~~~~
2026-10-24T11:08:06.0965029Z
2026-10-24T11:08:06.0965386Z src/server/GitCafePullRequestProvider.ts:660:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.0965674Z
2026-10-24T11:08:06.0965739Z 660                   : Effect.succeed(Option.none()),
2026-10-24T11:08:06.0965890Z                         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.0965973Z
2026-10-24T11:08:06.0966271Z 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-24T11:08:06.0966609Z
2026-10-24T11:08:06.0966692Z 673         const readPage = (rows: number, after: string | null) => {
2026-10-24T11:08:06.0966864Z                   ~~~~~~~~
2026-10-24T11:08:06.0966937Z
2026-10-24T11:08:06.0967359Z 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-24T11:08:06.0967790Z
2026-10-24T11:08:06.0967841Z 790             Effect.catch((error) =>
2026-10-24T11:08:06.0967980Z                 ~~~~~~~~~~~~
2026-10-24T11:08:06.0968054Z
2026-10-24T11:08:06.0968402Z 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-24T11:08:06.0968794Z
2026-10-24T11:08:06.0968853Z 868                   Effect.catch((error) =>
2026-10-24T11:08:06.0968998Z                       ~~~~~~~~~~~~
2026-10-24T11:08:06.0969079Z
2026-10-24T11:08:06.0969081Z
2026-10-24T11:08:06.0969137Z ~/packages/provider-pi$ tsc --noEmit
2026-10-24T11:08:06.0969628Z 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-24T11:08:06.0970100Z
2026-10-24T11:08:06.0970151Z 340     getChangeRequest: (input) =>
2026-10-24T11:08:06.0970280Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0970351Z
2026-10-24T11:08:06.0970353Z
2026-10-24T11:08:06.0970409Z ~/packages/provider-muse$ tsc --noEmit
2026-10-24T11:08:06.0970836Z 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-24T11:08:06.0971216Z
2026-10-24T11:08:06.0971269Z 174       Effect.flatMap((snapshot) =>
2026-10-24T11:08:06.0971400Z           ~~~~~~~~~~~~~~
2026-10-24T11:08:06.0971472Z
2026-10-24T11:08:06.0971720Z 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-24T11:08:06.0972007Z
2026-10-24T11:08:06.0972074Z 1507       }).pipe(Effect.catch(() => Effect.void));
2026-10-24T11:08:06.0972227Z                    ~~~~~~~~~~~~
2026-10-24T11:08:06.0972307Z
2026-10-24T11:08:06.0972569Z 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-24T11:08:06.0972871Z
2026-10-24T11:08:06.0972937Z 1507       }).pipe(Effect.catch(() => Effect.void));
2026-10-24T11:08:06.0973085Z                    ~~~~~~~~~~~~
2026-10-24T11:08:06.0973162Z
2026-10-24T11:08:06.0973523Z 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-24T11:08:06.0973926Z
2026-10-24T11:08:06.0973983Z 1588             Effect.catchCause((cause) =>
2026-10-24T11:08:06.0974128Z                  ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0974211Z
2026-10-24T11:08:06.0974213Z
2026-10-24T11:08:06.0974273Z ~/packages/provider-opencode$ tsc --noEmit
2026-10-24T11:08:06.0974702Z 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-24T11:08:06.0975071Z
2026-10-24T11:08:06.0975167Z 440     getCapabilities: () => Effect.succeed(PiProviderCapabilitiesV2),
2026-10-24T11:08:06.0975354Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0975423Z
2026-10-24T11:08:06.0975766Z 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-24T11:08:06.0976212Z
2026-10-24T11:08:06.0976337Z 441     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T11:08:06.0976548Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0976673Z
2026-10-24T11:08:06.0976894Z src/server/adapter.ts:1694:31 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.0977155Z
2026-10-24T11:08:06.0977225Z 1694                               Effect.map(Option.some),
2026-10-24T11:08:06.0977386Z                                    ~~~~~~~~~~
2026-10-24T11:08:06.0977477Z
2026-10-24T11:08:06.0977694Z src/server/adapter.ts:1697:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.0977951Z
2026-10-24T11:08:06.0978021Z 1697                           : Effect.succeed(Option.none()),
2026-10-24T11:08:06.0978183Z                                  ~~~~~~~~~~~~~~
2026-10-24T11:08:06.0978279Z
2026-10-24T11:08:06.0978531Z 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-24T11:08:06.0978826Z
2026-10-24T11:08:06.0978875Z 334       onSuccess: () =>
2026-10-24T11:08:06.0978990Z           ~~~~~~~~~
2026-10-24T11:08:06.0979055Z
2026-10-24T11:08:06.0979264Z src/server/rpc.ts:342:17 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.0979514Z
2026-10-24T11:08:06.0979572Z 342                 Effect.map(Option.some),
2026-10-24T11:08:06.0979714Z                     ~~~~~~~~~~
2026-10-24T11:08:06.0979792Z
2026-10-24T11:08:06.0979794Z
2026-10-24T11:08:06.0979851Z ~/packages/provider-cursor$ tsc --noEmit
2026-10-24T11:08:06.0980314Z 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-24T11:08:06.0980681Z
2026-10-24T11:08:06.0980780Z 284     getCapabilities: () => Effect.succeed(MuseProviderCapabilitiesV2),
2026-10-24T11:08:06.0980970Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0981037Z
2026-10-24T11:08:06.0981378Z 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-24T11:08:06.0981762Z
2026-10-24T11:08:06.0981885Z 285     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T11:08:06.0982096Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0982173Z
2026-10-24T11:08:06.0982447Z 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-24T11:08:06.0982758Z
2026-10-24T11:08:06.0982810Z 388             TimeoutError: (cause) =>
2026-10-24T11:08:06.0982947Z                 ~~~~~~~~~~~~
2026-10-24T11:08:06.0983021Z
2026-10-24T11:08:06.0983241Z src/server/adapter.ts:1366:35 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.0983500Z
2026-10-24T11:08:06.0983628Z 1366                   wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-24T11:08:06.0983848Z                                        ~~~~~~~~~~
2026-10-24T11:08:06.0983945Z
2026-10-24T11:08:06.0984163Z src/server/adapter.ts:1366:71 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.0984419Z
2026-10-24T11:08:06.0984541Z 1366                   wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-24T11:08:06.0984895Z                                                                            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.0985010Z
2026-10-24T11:08:06.0985013Z
2026-10-24T11:08:06.0985125Z ~/packages/provider-acp-registry$ tsc --noEmit
2026-10-24T11:08:06.0985584Z 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-24T11:08:06.0985974Z
2026-10-24T11:08:06.0986041Z 31       read: (credentialSource, sinceMs, untilMs) =>
2026-10-24T11:08:06.0986193Z          ~~~~
2026-10-24T11:08:06.0986253Z
2026-10-24T11:08:06.0986544Z 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-24T11:08:06.0986878Z
2026-10-24T11:08:06.0986928Z 82     read: (apiKey) =>
2026-10-24T11:08:06.0987041Z        ~~~~
2026-10-24T11:08:06.0987099Z
2026-10-24T11:08:06.0987387Z 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-24T11:08:06.0987716Z
2026-10-24T11:08:06.0987763Z 360     Effect.catch(() =>
2026-10-24T11:08:06.0987879Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.0987944Z
2026-10-24T11:08:06.0988270Z 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-24T11:08:06.0988635Z
2026-10-24T11:08:06.0988743Z 904     getCapabilities: () => Effect.succeed(CursorProviderCapabilitiesV2),
2026-10-24T11:08:06.0988933Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0989002Z
2026-10-24T11:08:06.0989349Z 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-24T11:08:06.0989737Z
2026-10-24T11:08:06.0989857Z 905     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T11:08:06.0990090Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0990168Z
2026-10-24T11:08:06.0990630Z 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-24T11:08:06.0991127Z
2026-10-24T11:08:06.0991178Z 55       Effect.runPromise(
2026-10-24T11:08:06.0991301Z          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0991372Z
2026-10-24T11:08:06.0991646Z 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-24T11:08:06.0991957Z
2026-10-24T11:08:06.0992025Z 59               onNone: () => Effect.succeed(undefined),
2026-10-24T11:08:06.0992186Z                                ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0992283Z
2026-10-24T11:08:06.0992736Z 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-24T11:08:06.0993232Z
2026-10-24T11:08:06.0993282Z 69       Effect.runPromise(
2026-10-24T11:08:06.0993402Z          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0993472Z
2026-10-24T11:08:06.0993975Z 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-24T11:08:06.0994497Z
2026-10-24T11:08:06.0994570Z 82     clear: () => Effect.runPromise(credentials.remove),
2026-10-24T11:08:06.0994733Z                     ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0994819Z
2026-10-24T11:08:06.0995159Z 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-24T11:08:06.0995538Z
2026-10-24T11:08:06.0995594Z 228           Effect.flatMap((snapshot) =>
2026-10-24T11:08:06.0995734Z               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.0995812Z
2026-10-24T11:08:06.0996006Z src/server/usageLimits.test.ts:74:5 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-24T11:08:06.0996245Z
2026-10-24T11:08:06.0996297Z  74     Effect.gen(function* () {
2026-10-24T11:08:06.0996426Z         ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0996559Z  75       yield* withNodeServices(
2026-10-24T11:08:06.0996688Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0996808Z ...
2026-10-24T11:08:06.0996900Z 115       );
2026-10-24T11:08:06.0996997Z     ~~~~~~~~
2026-10-24T11:08:06.0997094Z 116     }),
2026-10-24T11:08:06.0997187Z     ~~~~~~
2026-10-24T11:08:06.0997242Z
2026-10-24T11:08:06.0997245Z
2026-10-24T11:08:06.0997302Z ~/packages/client-runtime$ tsc --noEmit
2026-10-24T11:08:06.0997676Z 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-24T11:08:06.0997997Z
2026-10-24T11:08:06.0998051Z 147     return Effect.succeed(undefined);
2026-10-24T11:08:06.0998190Z                ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.0998276Z
2026-10-24T11:08:06.0998676Z 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-24T11:08:06.0999114Z
2026-10-24T11:08:06.0999173Z 188       if (!recordable) return Effect.void;
2026-10-24T11:08:06.0999317Z                            ~~~~~~
2026-10-24T11:08:06.0999398Z
2026-10-24T11:08:06.0999788Z 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-24T11:08:06.1000265Z
2026-10-24T11:08:06.1000315Z 208         return Effect.void;
2026-10-24T11:08:06.1000436Z             ~~~~~~
2026-10-24T11:08:06.1000501Z
2026-10-24T11:08:06.1000898Z 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-24T11:08:06.1001332Z
2026-10-24T11:08:06.1001376Z 228       return fs
2026-10-24T11:08:06.1001480Z           ~~~~~~
2026-10-24T11:08:06.1001541Z
2026-10-24T11:08:06.1001845Z 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-24T11:08:06.1002189Z
2026-10-24T11:08:06.1002296Z 311   OpenCodeServerLedger.of({ track: () => Effect.succeed(Effect.void) }),
2026-10-24T11:08:06.1002489Z                                 ~~~~~
2026-10-24T11:08:06.1002575Z
2026-10-24T11:08:06.1002943Z 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-24T11:08:06.1003301Z
2026-10-24T11:08:06.1003404Z 169     withServer: (use) =>
2026-10-24T11:08:06.1003523Z         ~~~~~~~~~~
2026-10-24T11:08:06.1003587Z
2026-10-24T11:08:06.1003985Z 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-24T11:08:06.1004419Z
2026-10-24T11:08:06.1004538Z 103 const OPENCODE_TEST_SETTINGS = Schema.decodeUnknownSync(OpenCodeSettings)({});
2026-10-24T11:08:06.1004755Z                                           ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1004856Z
2026-10-24T11:08:06.1005247Z 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-24T11:08:06.1005616Z
2026-10-24T11:08:06.1005728Z 938     getCapabilities: () => Effect.succeed(OpenCodeProviderCapabilitiesV2),
2026-10-24T11:08:06.1005925Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1005994Z
2026-10-24T11:08:06.1006338Z 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-24T11:08:06.1006726Z
2026-10-24T11:08:06.1006846Z 939     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T11:08:06.1007057Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1007136Z
2026-10-24T11:08:06.1007435Z 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-24T11:08:06.1007769Z
2026-10-24T11:08:06.1007847Z 1011         const abortController = new AbortController();
2026-10-24T11:08:06.1008020Z                                      ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1008119Z
2026-10-24T11:08:06.1008449Z 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-24T11:08:06.1008818Z
2026-10-24T11:08:06.1008893Z 1088           if (failure) return yield* Effect.fail(failure);
2026-10-24T11:08:06.1009059Z                                    ~~~~~
2026-10-24T11:08:06.1009146Z
2026-10-24T11:08:06.1009427Z 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-24T11:08:06.1009748Z
2026-10-24T11:08:06.1009827Z 1584               Effect.catch(() => Effect.succeed(undefined)),
2026-10-24T11:08:06.1009989Z                    ~~~~~~~~~~~~
2026-10-24T11:08:06.1010088Z
2026-10-24T11:08:06.1010347Z 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-24T11:08:06.1010644Z
2026-10-24T11:08:06.1010718Z 1584               Effect.catch(() => Effect.succeed(undefined)),
2026-10-24T11:08:06.1010892Z                                       ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1010993Z
2026-10-24T11:08:06.1011286Z 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-24T11:08:06.1011621Z
2026-10-24T11:08:06.1011705Z 3194                 admissionAbortController: new AbortController(),
2026-10-24T11:08:06.1011955Z                                                ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1012058Z
2026-10-24T11:08:06.1012355Z 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-24T11:08:06.1012748Z
2026-10-24T11:08:06.1012838Z 3354               turn.admissionAbortController = new AbortController();
2026-10-24T11:08:06.1013031Z                                                    ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1013137Z
2026-10-24T11:08:06.1013435Z 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-24T11:08:06.1013768Z
2026-10-24T11:08:06.1013830Z 158     connect: ({ baseUrl, password }) => {
2026-10-24T11:08:06.1013976Z         ~~~~~~~
2026-10-24T11:08:06.1014037Z
2026-10-24T11:08:06.1014350Z 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-24T11:08:06.1014701Z
2026-10-24T11:08:06.1014754Z 160       withConnection: (use) =>
2026-10-24T11:08:06.1014884Z           ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1014955Z
2026-10-24T11:08:06.1015261Z 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-24T11:08:06.1015609Z
2026-10-24T11:08:06.1015660Z 175     withConnection: (use) =>
2026-10-24T11:08:06.1015787Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1015853Z
2026-10-24T11:08:06.1016079Z src/server/v2/adapter.ts:1544:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1016342Z
2026-10-24T11:08:06.1016470Z 1544           wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-24T11:08:06.1016687Z                               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1016777Z
2026-10-24T11:08:06.1017000Z src/server/v2/adapter.ts:1544:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1017267Z
2026-10-24T11:08:06.1017388Z 1544           wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-24T11:08:06.1017615Z                                                               ~~~~~~~~~~
2026-10-24T11:08:06.1017722Z
2026-10-24T11:08:06.1018056Z 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-24T11:08:06.1018431Z
2026-10-24T11:08:06.1018543Z 4137     getCapabilities: () => Effect.succeed(OpenCode2ProviderCapabilities),
2026-10-24T11:08:06.1018734Z          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1018808Z
2026-10-24T11:08:06.1019156Z 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-24T11:08:06.1019546Z
2026-10-24T11:08:06.1019669Z 4138     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T11:08:06.1019883Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1019962Z
2026-10-24T11:08:06.1019964Z
2026-10-24T11:08:06.1020257Z src/server/AcpRegistryRuntimeCoordinator.ts:154:52 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1020560Z
2026-10-24T11:08:06.1020750Z 154         return yield* Effect.raceFirst(effect.pipe(Effect.map(Option.some)), foregroundStarted);
2026-10-24T11:08:06.1020989Z                                                        ~~~~~~~~~~
2026-10-24T11:08:06.1021126Z
2026-10-24T11:08:06.1021465Z 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-24T11:08:06.1021844Z
2026-10-24T11:08:06.1021897Z 1301         Effect.catch((error) =>
2026-10-24T11:08:06.1022030Z              ~~~~~~~~~~~~
2026-10-24T11:08:06.1022102Z
2026-10-24T11:08:06.1022400Z 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-24T11:08:06.1022738Z
2026-10-24T11:08:06.1022792Z 146             Option.isSome(result)
2026-10-24T11:08:06.1022928Z                 ~~~~~~~~~~~~~
2026-10-24T11:08:06.1023005Z
2026-10-24T11:08:06.1023266Z 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-24T11:08:06.1023565Z
2026-10-24T11:08:06.1023667Z 640       enrichSnapshot: ({ snapshot, getSnapshot, publishSnapshot }) => {
2026-10-24T11:08:06.1023853Z           ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1023925Z
2026-10-24T11:08:06.1024142Z src/server/driver.ts:650:51 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1024396Z
2026-10-24T11:08:06.1024496Z 650             : enrichProviderCached(snapshot).pipe(Effect.map(Option.some))
2026-10-24T11:08:06.1024698Z                                                       ~~~~~~~~~~
2026-10-24T11:08:06.1024799Z
2026-10-24T11:08:06.1024801Z
2026-10-24T11:08:06.1025038Z src/authorization/remote.test.ts:232:25 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1025313Z
2026-10-24T11:08:06.1025422Z 232               identity: Effect.succeed(Option.some({ accountId: "user_connect" })),
2026-10-24T11:08:06.1025624Z                             ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1025713Z
2026-10-24T11:08:06.1025946Z src/authorization/remote.test.ts:237:17 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1026220Z
2026-10-24T11:08:06.1026293Z 237             id: Effect.succeed(Option.some("device-1")),
2026-10-24T11:08:06.1026457Z                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1026538Z
2026-10-24T11:08:06.1026879Z 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-24T11:08:06.1027258Z
2026-10-24T11:08:06.1027311Z 553     authorizeDpop: (input) =>
2026-10-24T11:08:06.1027438Z         ~~~~~~~~~~~~~
2026-10-24T11:08:06.1027507Z
2026-10-24T11:08:06.1027850Z 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-24T11:08:06.1028239Z
2026-10-24T11:08:06.1028293Z 555     authorizeDpopHttp: (input) =>
2026-10-24T11:08:06.1028434Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1028507Z
2026-10-24T11:08:06.1028835Z 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-24T11:08:06.1029207Z
2026-10-24T11:08:06.1029255Z 138       get: (entry) =>
2026-10-24T11:08:06.1029369Z           ~~~
2026-10-24T11:08:06.1029428Z
2026-10-24T11:08:06.1029827Z 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-24T11:08:06.1030275Z
2026-10-24T11:08:06.1030327Z 143       set: (entry, permission) => {
2026-10-24T11:08:06.1030462Z           ~~~
2026-10-24T11:08:06.1030522Z
2026-10-24T11:08:06.1030865Z 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-24T11:08:06.1031251Z
2026-10-24T11:08:06.1031303Z 159       forget: (environmentId) =>
2026-10-24T11:08:06.1031432Z           ~~~~~~
2026-10-24T11:08:06.1031496Z
2026-10-24T11:08:06.1031819Z 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-24T11:08:06.1032179Z
2026-10-24T11:08:06.1032231Z 298     registerPairing: (input) =>
2026-10-24T11:08:06.1032366Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1032436Z
2026-10-24T11:08:06.1032743Z 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-24T11:08:06.1033093Z
2026-10-24T11:08:06.1033144Z 304     registerSsh: (input) =>
2026-10-24T11:08:06.1033265Z         ~~~~~~~~~~~
2026-10-24T11:08:06.1033329Z
2026-10-24T11:08:06.1033642Z 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-24T11:08:06.1033993Z
2026-10-24T11:08:06.1034049Z 309     updateBearer: (input) =>
2026-10-24T11:08:06.1034176Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1034243Z
2026-10-24T11:08:06.1034517Z 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-24T11:08:06.1034832Z
2026-10-24T11:08:06.1034889Z 1392             ? Effect.succeed(undefined)
2026-10-24T11:08:06.1035035Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1035125Z
2026-10-24T11:08:06.1035397Z 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-24T11:08:06.1035713Z
2026-10-24T11:08:06.1035769Z 1476             ? Effect.succeed(undefined)
2026-10-24T11:08:06.1035910Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1036000Z
2026-10-24T11:08:06.1036269Z 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-24T11:08:06.1036581Z
2026-10-24T11:08:06.1036646Z 1489                     : Effect.succeed(undefined),
2026-10-24T11:08:06.1036807Z                            ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1036901Z
2026-10-24T11:08:06.1037154Z src/platform/orchestrationCache.test.ts:104:15 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1037448Z
2026-10-24T11:08:06.1037506Z 104       }).pipe(Effect.map(Option.some));
2026-10-24T11:08:06.1037647Z                   ~~~~~~~~~~
2026-10-24T11:08:06.1037721Z
2026-10-24T11:08:06.1038156Z 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-24T11:08:06.1038577Z
2026-10-24T11:08:06.1038670Z 72       load: (prepared: PreparedConnection, threadId: ThreadId) => {
2026-10-24T11:08:06.1038904Z          ~~~~
2026-10-24T11:08:06.1038962Z
2026-10-24T11:08:06.1039265Z 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-24T11:08:06.1039603Z
2026-10-24T11:08:06.1039705Z 56             Effect.catch(() => Effect.succeed(Option.none<AuthSessionState>())),
2026-10-24T11:08:06.1039892Z                ~~~~~~~~~~~~
2026-10-24T11:08:06.1039966Z
2026-10-24T11:08:06.1040347Z 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-24T11:08:06.1040728Z
2026-10-24T11:08:06.1040783Z 62             return yield* Effect.fail(
2026-10-24T11:08:06.1040924Z                       ~~~~~
2026-10-24T11:08:06.1040996Z
2026-10-24T11:08:06.1041302Z 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-24T11:08:06.1041641Z
2026-10-24T11:08:06.1041736Z 57     execute: (target: OutdatedServerUpdateTarget, atomRegistry) => {
2026-10-24T11:08:06.1041916Z        ~~~~~~~
2026-10-24T11:08:06.1041976Z
2026-10-24T11:08:06.1042300Z 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-24T11:08:06.1042662Z
2026-10-24T11:08:06.1042713Z 90       load: (prepared, input) =>
2026-10-24T11:08:06.1042846Z          ~~~~
2026-10-24T11:08:06.1042905Z
2026-10-24T11:08:06.1043319Z 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-24T11:08:06.1043771Z
2026-10-24T11:08:06.1043874Z 34       return yield* Schema.decodeUnknownEffect(codec)(stored.value).pipe(
2026-10-24T11:08:06.1044071Z                               ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1044170Z
2026-10-24T11:08:06.1044402Z src/state/queryPersistence.ts:35:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1044672Z
2026-10-24T11:08:06.1044723Z 35         Effect.map(Option.some),
2026-10-24T11:08:06.1044851Z            ~~~~~~~~~~
2026-10-24T11:08:06.1044919Z
2026-10-24T11:08:06.1045335Z 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-24T11:08:06.1045647Z
2026-10-24T11:08:06.1045709Z 680     execute: (target, atomRegistry) => {
2026-10-24T11:08:06.1045848Z         ~~~~~~~
2026-10-24T11:08:06.1045908Z
2026-10-24T11:08:06.1046245Z 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-24T11:08:06.1046621Z
2026-10-24T11:08:06.1046676Z 1125           Effect.flatMap((summary) =>
2026-10-24T11:08:06.1046818Z                ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1046895Z
2026-10-24T11:08:06.1047120Z src/state/shell-sync.test.ts:90:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1047385Z
2026-10-24T11:08:06.1047522Z 90         loadShell: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1047686Z                             ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1047774Z
2026-10-24T11:08:06.1047997Z src/state/shell-sync.test.ts:96:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1048326Z
2026-10-24T11:08:06.1048398Z 96         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1048562Z                              ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1048652Z
2026-10-24T11:08:06.1048875Z src/state/shell-sync.test.ts:99:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1049141Z
2026-10-24T11:08:06.1049223Z 99         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1049395Z                                    ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1049492Z
2026-10-24T11:08:06.1049718Z src/state/shell-sync.test.ts:101:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1049983Z
2026-10-24T11:08:06.1050095Z 101         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1050261Z                                ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1050352Z
2026-10-24T11:08:06.1050575Z src/state/shell-sync.test.ts:108:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1050841Z
2026-10-24T11:08:06.1050910Z 108         load: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1051065Z                         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1051150Z
2026-10-24T11:08:06.1051373Z src/state/shell-sync.test.ts:229:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1051637Z
2026-10-24T11:08:06.1051712Z 229         loadShell: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1051873Z                              ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1051962Z
2026-10-24T11:08:06.1052186Z src/state/shell-sync.test.ts:238:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1052455Z
2026-10-24T11:08:06.1052528Z 238         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1052689Z                               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1052779Z
2026-10-24T11:08:06.1053002Z src/state/shell-sync.test.ts:241:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1053267Z
2026-10-24T11:08:06.1053350Z 241         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1053524Z                                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1053620Z
2026-10-24T11:08:06.1053845Z src/state/shell-sync.test.ts:243:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1054108Z
2026-10-24T11:08:06.1054186Z 243         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1054351Z                                ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1054441Z
2026-10-24T11:08:06.1054664Z src/state/shell-sync.test.ts:250:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1054930Z
2026-10-24T11:08:06.1054997Z 250         load: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1055149Z                         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1055234Z
2026-10-24T11:08:06.1055455Z src/state/shell-sync.test.ts:349:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1055717Z
2026-10-24T11:08:06.1055839Z 349         loadShell: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1056001Z                              ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1056089Z
2026-10-24T11:08:06.1056314Z src/state/shell-sync.test.ts:355:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1056633Z
2026-10-24T11:08:06.1056707Z 355         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1056869Z                               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1056958Z
2026-10-24T11:08:06.1057181Z src/state/shell-sync.test.ts:358:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1057184Z
2026-10-24T11:08:06.1057264Z 358         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1057317Z                                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1057319Z
2026-10-24T11:08:06.1057543Z src/state/shell-sync.test.ts:360:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1057546Z
2026-10-24T11:08:06.1057622Z 360         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1057673Z                                ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1057676Z
2026-10-24T11:08:06.1057895Z src/state/shell-sync.test.ts:367:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1057897Z
2026-10-24T11:08:06.1057965Z 367         load: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1062388Z                         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1062393Z
2026-10-24T11:08:06.1062634Z src/state/shell-sync.test.ts:446:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1062637Z
2026-10-24T11:08:06.1062731Z 446         loadShell: () => Effect.succeed(Option.some(cachedSnapshot)),
2026-10-24T11:08:06.1062785Z                              ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1062787Z
2026-10-24T11:08:06.1063013Z src/state/shell-sync.test.ts:448:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1063016Z
2026-10-24T11:08:06.1063089Z 448         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1063142Z                               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1063144Z
2026-10-24T11:08:06.1063365Z src/state/shell-sync.test.ts:451:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1063367Z
2026-10-24T11:08:06.1063449Z 451         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1063503Z                                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1063505Z
2026-10-24T11:08:06.1063728Z src/state/shell-sync.test.ts:453:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1063732Z
2026-10-24T11:08:06.1063807Z 453         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1063857Z                                ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1063859Z
2026-10-24T11:08:06.1064082Z src/state/shell-sync.test.ts:460:21 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1064085Z
2026-10-24T11:08:06.1064163Z 460         load: () => Effect.succeed(Option.some(httpSnapshot)),
2026-10-24T11:08:06.1064211Z                         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1064213Z
2026-10-24T11:08:06.1064525Z 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-24T11:08:06.1064607Z
2026-10-24T11:08:06.1064672Z 98       load: (prepared: PreparedConnection) =>
2026-10-24T11:08:06.1064717Z          ~~~~
2026-10-24T11:08:06.1064785Z
2026-10-24T11:08:06.1065162Z src/state/threadHistoryController.ts:52:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.register")((environmentId, threadId, handler) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1065164Z
2026-10-24T11:08:06.1065234Z 52       register: (environmentId, threadId, handler) =>
2026-10-24T11:08:06.1065277Z          ~~~~~~~~
2026-10-24T11:08:06.1065280Z
2026-10-24T11:08:06.1065618Z src/state/threadHistoryController.ts:64:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.unregister")((registration) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1065621Z
2026-10-24T11:08:06.1065672Z 64       unregister: (registration) =>
2026-10-24T11:08:06.1065718Z          ~~~~~~~~~~
2026-10-24T11:08:06.1065720Z
2026-10-24T11:08:06.1066103Z src/state/threadHistoryController.ts:79:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.loadEarlier")((environmentId, threadId, throughEntryId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1066107Z
2026-10-24T11:08:06.1066190Z 79       loadEarlier: (environmentId, threadId, throughEntryId) =>
2026-10-24T11:08:06.1066233Z          ~~~~~~~~~~~
2026-10-24T11:08:06.1066236Z
2026-10-24T11:08:06.1066612Z src/state/threadHistoryController.ts:89:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ThreadHistoryController.reconcilePendingWork")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1066614Z
2026-10-24T11:08:06.1066690Z 89       reconcilePendingWork: (environmentId, threadId) =>
2026-10-24T11:08:06.1066739Z          ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1066742Z
2026-10-24T11:08:06.1066972Z src/state/threads-sync.test.ts:1458:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1066976Z
2026-10-24T11:08:06.1067061Z 1458             : { loadCached: Effect.succeed(Option.some(saved!)) },
2026-10-24T11:08:06.1067114Z                                  ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1067116Z
2026-10-24T11:08:06.1067387Z 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-24T11:08:06.1067390Z
2026-10-24T11:08:06.1067479Z 447       execute: (input: RunVcsStackedActionInput, registry) => {
2026-10-24T11:08:06.1067520Z           ~~~~~~~
2026-10-24T11:08:06.1067522Z
2026-10-24T11:08:06.1067524Z
2026-10-24T11:08:06.1067576Z ~/apps/mobile$ tsc --noEmit
2026-10-24T11:08:06.1067628Z ~/infra/relay$ tsc --noEmit
2026-10-24T11:08:06.1067677Z ~/apps/web$ tsc --noEmit
2026-10-24T11:08:06.1067721Z Result (22 files):
2026-10-24T11:08:06.1067765Z - 0 errors
2026-10-24T11:08:06.1067809Z - 0 warnings
2026-10-24T11:08:06.1067850Z - 0 hints
2026-10-24T11:08:06.1067853Z
2026-10-24T11:08:06.1067855Z
2026-10-24T11:08:06.1067905Z ~/apps/desktop$ tsc --noEmit
2026-10-24T11:08:06.1068229Z 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-24T11:08:06.1068232Z
2026-10-24T11:08:06.1068280Z 220           send: (body) =>
2026-10-24T11:08:06.1068324Z               ~~~~
2026-10-24T11:08:06.1068326Z
2026-10-24T11:08:06.1068633Z 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-24T11:08:06.1068696Z
2026-10-24T11:08:06.1068746Z 12       onFailure: (error) =>
2026-10-24T11:08:06.1068787Z          ~~~~~~~~~
2026-10-24T11:08:06.1068840Z
2026-10-24T11:08:06.1069171Z 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-24T11:08:06.1069173Z
2026-10-24T11:08:06.1069228Z 64     pauseUntil: (untilMillis) =>
2026-10-24T11:08:06.1069269Z        ~~~~~~~~~~
2026-10-24T11:08:06.1069271Z
2026-10-24T11:08:06.1069513Z 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-24T11:08:06.1069515Z
2026-10-24T11:08:06.1069561Z 198         onNone: () =>
2026-10-24T11:08:06.1069602Z             ~~~~~~
2026-10-24T11:08:06.1069604Z
2026-10-24T11:08:06.1069881Z src/previewTunnelSweep.test.ts:53:11 - suggestion TS377124: `Effect.provideService` provides this inline single-service layer directly. effect(provideLayerSucceedToProvideService)
2026-10-24T11:08:06.1069885Z
2026-10-24T11:08:06.1070028Z 53   }).pipe(Effect.provide(Layer.succeed(HttpClient.HttpClient, cloudflare.client)));
2026-10-24T11:08:06.1070075Z              ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1070078Z
2026-10-24T11:08:06.1070369Z 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-24T11:08:06.1070371Z
2026-10-24T11:08:06.1070484Z 92   fileResponse: () => Effect.die("Relay API does not serve filesystem responses"),
2026-10-24T11:08:06.1070525Z      ~~~~~~~~~~~~
2026-10-24T11:08:06.1070529Z
2026-10-24T11:08:06.1070821Z 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-24T11:08:06.1070824Z
2026-10-24T11:08:06.1070934Z 93   fileWebResponse: () => Effect.die("Relay API does not serve file responses"),
2026-10-24T11:08:06.1070978Z      ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1070981Z
2026-10-24T11:08:06.1071240Z 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-24T11:08:06.1071243Z
2026-10-24T11:08:06.1071305Z 242       hold: ({ endpointKey, baseUrl, hook }) =>
2026-10-24T11:08:06.1071348Z           ~~~~
2026-10-24T11:08:06.1071350Z
2026-10-24T11:08:06.1071608Z 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-24T11:08:06.1071611Z
2026-10-24T11:08:06.1071668Z 244       wake: ({ endpointKey, baseUrl }) =>
2026-10-24T11:08:06.1071713Z           ~~~~
2026-10-24T11:08:06.1071715Z
2026-10-24T11:08:06.1071976Z 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-24T11:08:06.1071980Z
2026-10-24T11:08:06.1072033Z 246       clear: ({ endpointKey }) =>
2026-10-24T11:08:06.1072077Z           ~~~~~
2026-10-24T11:08:06.1072080Z
2026-10-24T11:08:06.1072403Z 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-24T11:08:06.1072405Z
2026-10-24T11:08:06.1072455Z 275               send: (body) =>
2026-10-24T11:08:06.1072498Z                   ~~~~
2026-10-24T11:08:06.1072500Z
2026-10-24T11:08:06.1072502Z
2026-10-24T11:08:06.1072872Z 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-24T11:08:06.1072875Z
2026-10-24T11:08:06.1073018Z 389     complete: (response) => Effect.sync(() => broker.complete(response)),
2026-10-24T11:08:06.1073061Z         ~~~~~~~~
2026-10-24T11:08:06.1073063Z
2026-10-24T11:08:06.1073296Z src/app/DesktopClerk.test.ts:300:27 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1073299Z
2026-10-24T11:08:06.1073386Z 300       currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-24T11:08:06.1073437Z                               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1073439Z
2026-10-24T11:08:06.1073722Z src/app/DesktopObservability.ts:461:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(logFile) { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1073725Z
2026-10-24T11:08:06.1073775Z 461     onSome: (logFile) =>
2026-10-24T11:08:06.1073815Z         ~~~~~~
2026-10-24T11:08:06.1073817Z
2026-10-24T11:08:06.1074150Z src/app/DesktopObservability.ts:591:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendOutputLogFactory.forInstance")((id) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1074154Z
2026-10-24T11:08:06.1074211Z 591       forInstance: (id) => makeForId(id),
2026-10-24T11:08:06.1074254Z           ~~~~~~~~~~~
2026-10-24T11:08:06.1074257Z
2026-10-24T11:08:06.1074489Z src/app/DesktopWebLinks.test.ts:29:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1074491Z
2026-10-24T11:08:06.1074577Z 29           currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-24T11:08:06.1074630Z                                  ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1074632Z
2026-10-24T11:08:06.1074917Z 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-24T11:08:06.1074920Z
2026-10-24T11:08:06.1074968Z 72     receive: (url) =>
2026-10-24T11:08:06.1075009Z        ~~~~~~~
2026-10-24T11:08:06.1075011Z
2026-10-24T11:08:06.1075314Z 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-24T11:08:06.1075317Z
2026-10-24T11:08:06.1075369Z 77     setRendererReady: (ready) =>
2026-10-24T11:08:06.1075415Z        ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1075417Z
2026-10-24T11:08:06.1075704Z 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-24T11:08:06.1075708Z
2026-10-24T11:08:06.1075755Z 1062       onSome: (run) =>
2026-10-24T11:08:06.1075795Z            ~~~~~~
2026-10-24T11:08:06.1075797Z
2026-10-24T11:08:06.1076095Z 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-24T11:08:06.1076097Z
2026-10-24T11:08:06.1076142Z 307       get: (id) =>
2026-10-24T11:08:06.1076186Z           ~~~
2026-10-24T11:08:06.1076188Z
2026-10-24T11:08:06.1076479Z 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-24T11:08:06.1076483Z
2026-10-24T11:08:06.1076575Z 342         get: (id) => Effect.succeed(Option.fromNullishOr(byId.get(id))),
2026-10-24T11:08:06.1076617Z             ~~~
2026-10-24T11:08:06.1076620Z
2026-10-24T11:08:06.1076965Z 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-24T11:08:06.1077003Z
2026-10-24T11:08:06.1077133Z 345         register: () => Effect.die("DesktopBackendPool.layerTest does not support register"),
2026-10-24T11:08:06.1077175Z             ~~~~~~~~
2026-10-24T11:08:06.1077177Z
2026-10-24T11:08:06.1077479Z 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-24T11:08:06.1077482Z
2026-10-24T11:08:06.1077615Z 346         unregister: () => Effect.die("DesktopBackendPool.layerTest does not support unregister"),
2026-10-24T11:08:06.1077658Z             ~~~~~~~~~~
2026-10-24T11:08:06.1077660Z
2026-10-24T11:08:06.1077936Z 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-24T11:08:06.1077940Z
2026-10-24T11:08:06.1077984Z 145   exit: (code) =>
2026-10-24T11:08:06.1078026Z       ~~~~
2026-10-24T11:08:06.1078028Z
2026-10-24T11:08:06.1078311Z 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-24T11:08:06.1078313Z
2026-10-24T11:08:06.1078364Z 149   relaunch: (options) =>
2026-10-24T11:08:06.1078405Z       ~~~~~~~~
2026-10-24T11:08:06.1078408Z
2026-10-24T11:08:06.1078693Z 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-24T11:08:06.1078695Z
2026-10-24T11:08:06.1078749Z 153   setPath: (name, path) =>
2026-10-24T11:08:06.1078790Z       ~~~~~~~
2026-10-24T11:08:06.1078792Z
2026-10-24T11:08:06.1079070Z 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-24T11:08:06.1079074Z
2026-10-24T11:08:06.1079120Z 157   setName: (name) =>
2026-10-24T11:08:06.1079161Z       ~~~~~~~
2026-10-24T11:08:06.1079163Z
2026-10-24T11:08:06.1079475Z 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-24T11:08:06.1079477Z
2026-10-24T11:08:06.1079538Z 161   setAboutPanelOptions: (options) =>
2026-10-24T11:08:06.1079584Z       ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1079586Z
2026-10-24T11:08:06.1079879Z 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-24T11:08:06.1079882Z
2026-10-24T11:08:06.1079935Z 165   setAppUserModelId: (id) =>
2026-10-24T11:08:06.1079979Z       ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1079982Z
2026-10-24T11:08:06.1080365Z 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-24T11:08:06.1080368Z
2026-10-24T11:08:06.1080453Z 170   setAsDefaultProtocolClient: (protocol, path, args) =>
2026-10-24T11:08:06.1080498Z       ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1080500Z
2026-10-24T11:08:06.1080805Z 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-24T11:08:06.1080862Z
2026-10-24T11:08:06.1080918Z 177   setDesktopName: (desktopName) =>
2026-10-24T11:08:06.1080961Z       ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1081011Z
2026-10-24T11:08:06.1081303Z 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-24T11:08:06.1081305Z
2026-10-24T11:08:06.1081355Z 184   setDockIcon: (iconPath) =>
2026-10-24T11:08:06.1081396Z       ~~~~~~~~~~~
2026-10-24T11:08:06.1081399Z
2026-10-24T11:08:06.1081732Z 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-24T11:08:06.1081734Z
2026-10-24T11:08:06.1081808Z 188   appendCommandLineSwitch: (switchName, value) =>
2026-10-24T11:08:06.1081853Z       ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1081857Z
2026-10-24T11:08:06.1082170Z 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-24T11:08:06.1082174Z
2026-10-24T11:08:06.1082234Z 196   onBeforeQuitForUpdate: (listener) =>
2026-10-24T11:08:06.1082279Z       ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1082281Z
2026-10-24T11:08:06.1082601Z 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-24T11:08:06.1082603Z
2026-10-24T11:08:06.1082665Z 206   removeCommandLineSwitch: (switchName) =>
2026-10-24T11:08:06.1082713Z       ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1082715Z
2026-10-24T11:08:06.1083036Z 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-24T11:08:06.1083039Z
2026-10-24T11:08:06.1083095Z 169   showMessageBox: (options, owner) =>
2026-10-24T11:08:06.1083136Z       ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1083139Z
2026-10-24T11:08:06.1083456Z 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-24T11:08:06.1083458Z
2026-10-24T11:08:06.1083512Z 185   showErrorBox: (title, content) =>
2026-10-24T11:08:06.1083556Z       ~~~~~~~~~~~~
2026-10-24T11:08:06.1083558Z
2026-10-24T11:08:06.1083869Z 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-24T11:08:06.1083873Z
2026-10-24T11:08:06.1083931Z 193     setApplicationMenu: (template) =>
2026-10-24T11:08:06.1083974Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1083977Z
2026-10-24T11:08:06.1084274Z 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-24T11:08:06.1084276Z
2026-10-24T11:08:06.1084329Z 207     popupTemplate: (input) =>
2026-10-24T11:08:06.1084372Z         ~~~~~~~~~~~~~
2026-10-24T11:08:06.1084374Z
2026-10-24T11:08:06.1084670Z 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-24T11:08:06.1084674Z
2026-10-24T11:08:06.1084724Z 225     showContextMenu: (input) =>
2026-10-24T11:08:06.1084770Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1084772Z
2026-10-24T11:08:06.1085278Z 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-24T11:08:06.1085324Z
2026-10-24T11:08:06.1085395Z 82   getSystemIdleState: (idleThresholdSeconds) =>
2026-10-24T11:08:06.1085437Z      ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1085439Z
2026-10-24T11:08:06.1085760Z 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-24T11:08:06.1085762Z
2026-10-24T11:08:06.1085813Z 77     encryptString: (value) =>
2026-10-24T11:08:06.1085856Z        ~~~~~~~~~~~~~
2026-10-24T11:08:06.1085858Z
2026-10-24T11:08:06.1086179Z 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-24T11:08:06.1086181Z
2026-10-24T11:08:06.1086229Z 82     decryptString: (value) =>
2026-10-24T11:08:06.1086273Z        ~~~~~~~~~~~~~
2026-10-24T11:08:06.1086275Z
2026-10-24T11:08:06.1086571Z 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-24T11:08:06.1086573Z
2026-10-24T11:08:06.1086623Z 68   openExternal: (rawUrl) =>
2026-10-24T11:08:06.1086664Z      ~~~~~~~~~~~~
2026-10-24T11:08:06.1086666Z
2026-10-24T11:08:06.1086970Z 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-24T11:08:06.1086972Z
2026-10-24T11:08:06.1087026Z 79   openSystemSettings: (pane) =>
2026-10-24T11:08:06.1087071Z      ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1087073Z
2026-10-24T11:08:06.1087357Z 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-24T11:08:06.1087360Z
2026-10-24T11:08:06.1087406Z 86   copyText: (text) =>
2026-10-24T11:08:06.1087446Z      ~~~~~~~~
2026-10-24T11:08:06.1087448Z
2026-10-24T11:08:06.1087734Z 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-24T11:08:06.1087737Z
2026-10-24T11:08:06.1087784Z 34   setSource: (theme) =>
2026-10-24T11:08:06.1087825Z      ~~~~~~~~~
2026-10-24T11:08:06.1087828Z
2026-10-24T11:08:06.1088119Z 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-24T11:08:06.1088123Z
2026-10-24T11:08:06.1088171Z 41   onUpdated: (listener) =>
2026-10-24T11:08:06.1088214Z      ~~~~~~~~~
2026-10-24T11:08:06.1088216Z
2026-10-24T11:08:06.1088519Z 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-24T11:08:06.1088521Z
2026-10-24T11:08:06.1088570Z 85   setFeedURL: (options) =>
2026-10-24T11:08:06.1088611Z      ~~~~~~~~~~
2026-10-24T11:08:06.1088613Z
2026-10-24T11:08:06.1088923Z 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-24T11:08:06.1088925Z
2026-10-24T11:08:06.1088974Z 90   setAutoDownload: (value) =>
2026-10-24T11:08:06.1089077Z      ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1089079Z
2026-10-24T11:08:06.1089407Z 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-24T11:08:06.1089468Z
2026-10-24T11:08:06.1089524Z 95   setAutoInstallOnAppQuit: (value) =>
2026-10-24T11:08:06.1089570Z      ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1089572Z
2026-10-24T11:08:06.1089875Z 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-24T11:08:06.1089877Z
2026-10-24T11:08:06.1089927Z 100   setChannel: (channel) =>
2026-10-24T11:08:06.1089969Z       ~~~~~~~~~~
2026-10-24T11:08:06.1089971Z
2026-10-24T11:08:06.1090310Z 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-24T11:08:06.1090314Z
2026-10-24T11:08:06.1090368Z 105   setAllowPrerelease: (value) =>
2026-10-24T11:08:06.1090414Z       ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1090416Z
2026-10-24T11:08:06.1090731Z 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-24T11:08:06.1090733Z
2026-10-24T11:08:06.1090784Z 111   setAllowDowngrade: (value) =>
2026-10-24T11:08:06.1090828Z       ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1090830Z
2026-10-24T11:08:06.1091141Z 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-24T11:08:06.1091144Z
2026-10-24T11:08:06.1091197Z 116   setFullChangelog: (value) =>
2026-10-24T11:08:06.1091239Z       ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1091241Z
2026-10-24T11:08:06.1091584Z 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-24T11:08:06.1091586Z
2026-10-24T11:08:06.1091655Z 121   setDisableDifferentialDownload: (value) =>
2026-10-24T11:08:06.1091701Z       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1091704Z
2026-10-24T11:08:06.1092006Z 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-24T11:08:06.1092008Z
2026-10-24T11:08:06.1092083Z 140   quitAndInstall: ({ isSilent, isForceRunAfter }) =>
2026-10-24T11:08:06.1092124Z       ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1092127Z
2026-10-24T11:08:06.1092431Z 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-24T11:08:06.1092435Z
2026-10-24T11:08:06.1092485Z 154   on: (eventName, listener) => {
2026-10-24T11:08:06.1092527Z       ~~
2026-10-24T11:08:06.1092529Z
2026-10-24T11:08:06.1092818Z 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-24T11:08:06.1092821Z
2026-10-24T11:08:06.1092870Z 211     create: (options) => {
2026-10-24T11:08:06.1092912Z         ~~~~~~
2026-10-24T11:08:06.1092914Z
2026-10-24T11:08:06.1093260Z 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-24T11:08:06.1093263Z
2026-10-24T11:08:06.1093359Z 243     setMain: (window) => Ref.set(mainWindowRef, Option.some(window)),
2026-10-24T11:08:06.1093431Z         ~~~~~~~
2026-10-24T11:08:06.1093433Z
2026-10-24T11:08:06.1093730Z 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-24T11:08:06.1093732Z
2026-10-24T11:08:06.1093780Z 244     clearMain: (window) =>
2026-10-24T11:08:06.1093821Z         ~~~~~~~~~
2026-10-24T11:08:06.1093823Z
2026-10-24T11:08:06.1094130Z 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-24T11:08:06.1094132Z
2026-10-24T11:08:06.1094182Z 254     prepareReveal: (window) =>
2026-10-24T11:08:06.1094227Z         ~~~~~~~~~~~~~
2026-10-24T11:08:06.1094229Z
2026-10-24T11:08:06.1094518Z 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-24T11:08:06.1094522Z
2026-10-24T11:08:06.1094570Z 264     reveal: (window) =>
2026-10-24T11:08:06.1094610Z         ~~~~~~
2026-10-24T11:08:06.1094614Z
2026-10-24T11:08:06.1094969Z 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-24T11:08:06.1094971Z
2026-10-24T11:08:06.1095042Z 526     setMainWindowBounds: (bounds, isMaximized) =>
2026-10-24T11:08:06.1095086Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1095088Z
2026-10-24T11:08:06.1095427Z 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-24T11:08:06.1095430Z
2026-10-24T11:08:06.1095488Z 538     setServerExposureMode: (mode) =>
2026-10-24T11:08:06.1095532Z         ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1095534Z
2026-10-24T11:08:06.1095862Z 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-24T11:08:06.1095864Z
2026-10-24T11:08:06.1095921Z 542     setTailscaleServe: (input) =>
2026-10-24T11:08:06.1095966Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1095968Z
2026-10-24T11:08:06.1096296Z 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-24T11:08:06.1096300Z
2026-10-24T11:08:06.1096354Z 546     setUpdateChannel: (channel) =>
2026-10-24T11:08:06.1096399Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1096401Z
2026-10-24T11:08:06.1096736Z 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-24T11:08:06.1096738Z
2026-10-24T11:08:06.1096796Z 550     setWslBackendEnabled: (enabled) =>
2026-10-24T11:08:06.1096841Z         ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1096843Z
2026-10-24T11:08:06.1097160Z 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-24T11:08:06.1097163Z
2026-10-24T11:08:06.1097261Z 554     setWslDistro: (distro) =>
2026-10-24T11:08:06.1097305Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1097307Z
2026-10-24T11:08:06.1097622Z 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-24T11:08:06.1097684Z
2026-10-24T11:08:06.1097733Z 560     setWslOnly: (enabled) =>
2026-10-24T11:08:06.1097777Z         ~~~~~~~~~~
2026-10-24T11:08:06.1097779Z
2026-10-24T11:08:06.1098128Z 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-24T11:08:06.1098131Z
2026-10-24T11:08:06.1098196Z 564     setLocalEnvironmentEnabled: (enabled) =>
2026-10-24T11:08:06.1098242Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1098245Z
2026-10-24T11:08:06.1098596Z 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-24T11:08:06.1098599Z
2026-10-24T11:08:06.1098673Z 599         setMainWindowBounds: (bounds, isMaximized) =>
2026-10-24T11:08:06.1098718Z             ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1098720Z
2026-10-24T11:08:06.1099051Z 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-24T11:08:06.1099053Z
2026-10-24T11:08:06.1099113Z 601         setServerExposureMode: (mode) =>
2026-10-24T11:08:06.1099158Z             ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1099160Z
2026-10-24T11:08:06.1099487Z 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-24T11:08:06.1099489Z
2026-10-24T11:08:06.1099621Z 603         setTailscaleServe: (input) => update((settings) => setTailscaleServe(settings, input)),
2026-10-24T11:08:06.1099665Z             ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1099668Z
2026-10-24T11:08:06.1099994Z 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-24T11:08:06.1099997Z
2026-10-24T11:08:06.1100152Z 604         setUpdateChannel: (channel) => update((settings) => setUpdateChannel(settings, channel)),
2026-10-24T11:08:06.1100199Z             ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1100201Z
2026-10-24T11:08:06.1100538Z 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-24T11:08:06.1100540Z
2026-10-24T11:08:06.1100603Z 605         setWslBackendEnabled: (enabled) =>
2026-10-24T11:08:06.1100649Z             ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1100652Z
2026-10-24T11:08:06.1100968Z 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-24T11:08:06.1100970Z
2026-10-24T11:08:06.1101088Z 607         setWslDistro: (distro) => update((settings) => setWslDistro(settings, distro)),
2026-10-24T11:08:06.1101132Z             ~~~~~~~~~~~~
2026-10-24T11:08:06.1101134Z
2026-10-24T11:08:06.1101499Z 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-24T11:08:06.1101501Z
2026-10-24T11:08:06.1101612Z 608         setWslOnly: (enabled) => update((settings) => setWslOnly(settings, enabled)),
2026-10-24T11:08:06.1101705Z             ~~~~~~~~~~
2026-10-24T11:08:06.1101707Z
2026-10-24T11:08:06.1102054Z 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-24T11:08:06.1102056Z
2026-10-24T11:08:06.1102124Z 609         setLocalEnvironmentEnabled: (enabled) =>
2026-10-24T11:08:06.1102171Z             ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1102173Z
2026-10-24T11:08:06.1102488Z 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-24T11:08:06.1102490Z
2026-10-24T11:08:06.1102540Z 197     set: (settings) =>
2026-10-24T11:08:06.1102582Z         ~~~
2026-10-24T11:08:06.1102585Z
2026-10-24T11:08:06.1102897Z 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-24T11:08:06.1102900Z
2026-10-24T11:08:06.1102994Z 231         set: (settings) => Ref.set(settingsRef, Option.some(settings)),
2026-10-24T11:08:06.1103036Z             ~~~
2026-10-24T11:08:06.1103038Z
2026-10-24T11:08:06.1103380Z 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-24T11:08:06.1103382Z
2026-10-24T11:08:06.1103455Z 1729     setAnimationDestination: (id, destination) =>
2026-10-24T11:08:06.1103501Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1103504Z
2026-10-24T11:08:06.1103814Z 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-24T11:08:06.1103818Z
2026-10-24T11:08:06.1103868Z 1740     dismissAnimation: (id) =>
2026-10-24T11:08:06.1103912Z          ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1103914Z
2026-10-24T11:08:06.1104214Z 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-24T11:08:06.1104217Z
2026-10-24T11:08:06.1104265Z 1745     acknowledge: (id) =>
2026-10-24T11:08:06.1104307Z          ~~~~~~~~~~~
2026-10-24T11:08:06.1104309Z
2026-10-24T11:08:06.1104631Z 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-24T11:08:06.1104634Z
2026-10-24T11:08:06.1104684Z 136     discoverHosts: (input) =>
2026-10-24T11:08:06.1104729Z         ~~~~~~~~~~~~~
2026-10-24T11:08:06.1104731Z
2026-10-24T11:08:06.1105047Z 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-24T11:08:06.1105049Z
2026-10-24T11:08:06.1105098Z 141     resolveHost: (alias) =>
2026-10-24T11:08:06.1105138Z         ~~~~~~~~~~~
2026-10-24T11:08:06.1105141Z
2026-10-24T11:08:06.1105494Z 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-24T11:08:06.1105496Z
2026-10-24T11:08:06.1105629Z 146     ensureEnvironment: (target, ensureOptions) =>
2026-10-24T11:08:06.1105673Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1105676Z
2026-10-24T11:08:06.1106056Z 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-24T11:08:06.1106058Z
2026-10-24T11:08:06.1106114Z 154     disconnectEnvironment: (target) =>
2026-10-24T11:08:06.1106158Z         ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1106160Z
2026-10-24T11:08:06.1106486Z 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-24T11:08:06.1106488Z
2026-10-24T11:08:06.1106619Z 1171     installPrepared: (expectedVersion) => installWithExpectedVersion(expectedVersion),
2026-10-24T11:08:06.1106664Z          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1106666Z
2026-10-24T11:08:06.1106972Z 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-24T11:08:06.1106975Z
2026-10-24T11:08:06.1107028Z 1101       preWarm: () => Effect.void,
2026-10-24T11:08:06.1107072Z            ~~~~~~~
2026-10-24T11:08:06.1107074Z
2026-10-24T11:08:06.1107424Z 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-24T11:08:06.1107426Z
2026-10-24T11:08:06.1107494Z 1102       windowsToWslPath: (distro, windowsPath) =>
2026-10-24T11:08:06.1107537Z            ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1107539Z
2026-10-24T11:08:06.1107860Z 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-24T11:08:06.1107864Z
2026-10-24T11:08:06.1108006Z 1104       getUserHome: (distro) => Effect.succeed(stub.getUserHome?.(distro) ?? Option.none<string>()),
2026-10-24T11:08:06.1108048Z            ~~~~~~~~~~~
2026-10-24T11:08:06.1108050Z
2026-10-24T11:08:06.1108369Z 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-24T11:08:06.1108511Z
2026-10-24T11:08:06.1108647Z 1105       getDistroIp: (distro) => Effect.succeed(stub.getDistroIp?.(distro) ?? Option.none<string>()),
2026-10-24T11:08:06.1108690Z            ~~~~~~~~~~~
2026-10-24T11:08:06.1108692Z
2026-10-24T11:08:06.1109033Z 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-24T11:08:06.1109037Z
2026-10-24T11:08:06.1109100Z 1106       prepareRuntime: (distro, archive) =>
2026-10-24T11:08:06.1109143Z            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1109146Z
2026-10-24T11:08:06.1109485Z 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-24T11:08:06.1109487Z
2026-10-24T11:08:06.1109622Z 1113       pruneRuntimes: (distro, runtimeId) => stub.pruneRuntimes?.(distro, runtimeId) ?? Effect.void,
2026-10-24T11:08:06.1109666Z            ~~~~~~~~~~~~~
2026-10-24T11:08:06.1109668Z
2026-10-24T11:08:06.1110102Z 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-24T11:08:06.1110137Z
2026-10-24T11:08:06.1110204Z 1114       invalidateRuntime: (distro, runtimeId) =>
2026-10-24T11:08:06.1110248Z            ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1110250Z
2026-10-24T11:08:06.1110595Z 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-24T11:08:06.1110597Z
2026-10-24T11:08:06.1110659Z 1116       probeRuntime: (distro, linuxAppRoot) =>
2026-10-24T11:08:06.1110703Z            ~~~~~~~~~~~~
2026-10-24T11:08:06.1110705Z
2026-10-24T11:08:06.1111066Z 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-24T11:08:06.1111069Z
2026-10-24T11:08:06.1111145Z 1120       ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-24T11:08:06.1111190Z            ~~~~~~~~~~~~~
2026-10-24T11:08:06.1111192Z
2026-10-24T11:08:06.1111504Z 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-24T11:08:06.1111506Z
2026-10-24T11:08:06.1111554Z 1187       preWarm: (distro) =>
2026-10-24T11:08:06.1111594Z            ~~~~~~~
2026-10-24T11:08:06.1111598Z
2026-10-24T11:08:06.1111935Z 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-24T11:08:06.1111937Z
2026-10-24T11:08:06.1111999Z 1192       prepareRuntime: (distro, archive) =>
2026-10-24T11:08:06.1112044Z            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1112046Z
2026-10-24T11:08:06.1112387Z 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-24T11:08:06.1112391Z
2026-10-24T11:08:06.1112452Z 1196       pruneRuntimes: (distro, runtimeId) =>
2026-10-24T11:08:06.1112493Z            ~~~~~~~~~~~~~
2026-10-24T11:08:06.1112495Z
2026-10-24T11:08:06.1112845Z 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-24T11:08:06.1112847Z
2026-10-24T11:08:06.1112912Z 1200       invalidateRuntime: (distro, runtimeId) =>
2026-10-24T11:08:06.1112956Z            ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1112960Z
2026-10-24T11:08:06.1113301Z 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-24T11:08:06.1113306Z
2026-10-24T11:08:06.1113368Z 1204       probeRuntime: (distro, linuxAppRoot) =>
2026-10-24T11:08:06.1113411Z            ~~~~~~~~~~~~
2026-10-24T11:08:06.1113414Z
2026-10-24T11:08:06.1113773Z 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-24T11:08:06.1113775Z
2026-10-24T11:08:06.1113851Z 1208       ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-24T11:08:06.1113893Z            ~~~~~~~~~~~~~
2026-10-24T11:08:06.1113895Z
2026-10-24T11:08:06.1113898Z
2026-10-24T11:08:06.1113900Z
2026-10-24T11:08:06.1114293Z src/connection/platform.ts:820:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentOwnedDataCleanup.clear")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1114336Z
2026-10-24T11:08:06.1114387Z 820     clear: (environmentId) =>
2026-10-24T11:08:06.1114428Z         ~~~~~
2026-10-24T11:08:06.1114430Z
2026-10-24T11:08:06.1114738Z src/connection/platform.ts:830:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentRpcRequestObserver.observe")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1114741Z
2026-10-24T11:08:06.1114828Z 830     observe: ({ environmentId, environmentLabel, method }) =>
2026-10-24T11:08:06.1114868Z         ~~~~~~~
2026-10-24T11:08:06.1114870Z
2026-10-24T11:08:06.1115165Z 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-24T11:08:06.1115167Z
2026-10-24T11:08:06.1115213Z 549     get: (entry) =>
2026-10-24T11:08:06.1115257Z         ~~~
2026-10-24T11:08:06.1115259Z
2026-10-24T11:08:06.1115569Z 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-24T11:08:06.1115573Z
2026-10-24T11:08:06.1115624Z 576     set: (entry, permission) => {
2026-10-24T11:08:06.1115667Z         ~~~
2026-10-24T11:08:06.1115669Z
2026-10-24T11:08:06.1115979Z 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-24T11:08:06.1115981Z
2026-10-24T11:08:06.1116063Z 596     forget: (environmentId) => write(environmentId, null),
2026-10-24T11:08:06.1116105Z         ~~~~~~
2026-10-24T11:08:06.1116107Z
2026-10-24T11:08:06.1116464Z 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-24T11:08:06.1116468Z
2026-10-24T11:08:06.1116528Z 643       register: (registration, routes) =>
2026-10-24T11:08:06.1116571Z           ~~~~~~~~
2026-10-24T11:08:06.1116574Z
2026-10-24T11:08:06.1116935Z 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-24T11:08:06.1116938Z
2026-10-24T11:08:06.1116996Z 647       setRoutes: (environmentId, routes) =>
2026-10-24T11:08:06.1117039Z           ~~~~~~~~~
2026-10-24T11:08:06.1117041Z
2026-10-24T11:08:06.1117383Z 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-24T11:08:06.1117386Z
2026-10-24T11:08:06.1117438Z 651       remove: (environmentId) =>
2026-10-24T11:08:06.1117480Z           ~~~~~~
2026-10-24T11:08:06.1117482Z
2026-10-24T11:08:06.1117844Z 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-24T11:08:06.1117846Z
2026-10-24T11:08:06.1117909Z 655       setEnabled: (environmentId, enabled) =>
2026-10-24T11:08:06.1117951Z           ~~~~~~~~~~
2026-10-24T11:08:06.1117953Z
2026-10-24T11:08:06.1118335Z 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-24T11:08:06.1118338Z
2026-10-24T11:08:06.1118425Z 732       loadShell: (environmentId) =>
2026-10-24T11:08:06.1118466Z           ~~~~~~~~~
2026-10-24T11:08:06.1118469Z
2026-10-24T11:08:06.1118817Z 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-24T11:08:06.1118820Z
2026-10-24T11:08:06.1118880Z 768       loadServerConfig: (environmentId) =>
2026-10-24T11:08:06.1118926Z           ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1118928Z
2026-10-24T11:08:06.1119281Z 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-24T11:08:06.1119285Z
2026-10-24T11:08:06.1119347Z 802       loadThread: (environmentId, threadId) =>
2026-10-24T11:08:06.1119390Z           ~~~~~~~~~~
2026-10-24T11:08:06.1119394Z
2026-10-24T11:08:06.1119739Z 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-24T11:08:06.1119741Z
2026-10-24T11:08:06.1119800Z 851       loadVcsRefs: (environmentId, cwd) =>
2026-10-24T11:08:06.1119841Z           ~~~~~~~~~~~
2026-10-24T11:08:06.1119844Z
2026-10-24T11:08:06.1120224Z 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-24T11:08:06.1120227Z
2026-10-24T11:08:06.1120290Z 893       removeVcsRefs: (environmentId, cwd) =>
2026-10-24T11:08:06.1120334Z           ~~~~~~~~~~~~~
2026-10-24T11:08:06.1120336Z
2026-10-24T11:08:06.1120676Z 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-24T11:08:06.1120680Z
2026-10-24T11:08:06.1120734Z 899       clearVcsRefs: (environmentId) =>
2026-10-24T11:08:06.1120776Z           ~~~~~~~~~~~~
2026-10-24T11:08:06.1120779Z
2026-10-24T11:08:06.1121135Z 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-24T11:08:06.1121137Z
2026-10-24T11:08:06.1121203Z 905       removeThread: (environmentId, threadId) =>
2026-10-24T11:08:06.1121246Z           ~~~~~~~~~~~~
2026-10-24T11:08:06.1121250Z
2026-10-24T11:08:06.1121574Z 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-24T11:08:06.1121579Z
2026-10-24T11:08:06.1121628Z 911       clear: (environmentId) =>
2026-10-24T11:08:06.1121670Z           ~~~~~
2026-10-24T11:08:06.1121672Z
2026-10-24T11:08:06.1121674Z
2026-10-24T11:08:06.1121724Z ~/apps/server$ tsc --noEmit
2026-10-24T11:08:06.1121981Z 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-24T11:08:06.1121983Z
2026-10-24T11:08:06.1122040Z 941         yield* Effect.sleep("1200 millis")
2026-10-24T11:08:06.1122092Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1122135Z 942           .pipe(
2026-10-24T11:08:06.1122177Z     ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1122266Z ...
2026-10-24T11:08:06.1122308Z 954           )
2026-10-24T11:08:06.1122350Z     ~~~~~~~~~~~
2026-10-24T11:08:06.1122403Z 955           .pipe(Effect.forkDetach);
2026-10-24T11:08:06.1122499Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1122501Z
2026-10-24T11:08:06.1122812Z 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-24T11:08:06.1122815Z
2026-10-24T11:08:06.1122864Z 1175     logger: (event) => {
2026-10-24T11:08:06.1122904Z          ~~~~~~
2026-10-24T11:08:06.1122906Z
2026-10-24T11:08:06.1123336Z 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-24T11:08:06.1123340Z
2026-10-24T11:08:06.1123449Z 376 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-24T11:08:06.1123507Z                                          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1123511Z
2026-10-24T11:08:06.1123810Z 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-24T11:08:06.1123812Z
2026-10-24T11:08:06.1123861Z 1346     getDescriptor: () =>
2026-10-24T11:08:06.1123904Z          ~~~~~~~~~~~~~
2026-10-24T11:08:06.1123906Z
2026-10-24T11:08:06.1124222Z 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-24T11:08:06.1124225Z
2026-10-24T11:08:06.1124273Z 55     getDescriptor: () =>
2026-10-24T11:08:06.1124317Z        ~~~~~~~~~~~~~
2026-10-24T11:08:06.1124319Z
2026-10-24T11:08:06.1124650Z 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-24T11:08:06.1124654Z
2026-10-24T11:08:06.1124704Z 540       authenticate: (request) =>
2026-10-24T11:08:06.1124746Z           ~~~~~~~~~~~~
2026-10-24T11:08:06.1124748Z
2026-10-24T11:08:06.1124997Z 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-24T11:08:06.1124999Z
2026-10-24T11:08:06.1125052Z 468         : Effect.succeed(undefined),
2026-10-24T11:08:06.1125099Z               ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1125101Z
2026-10-24T11:08:06.1125482Z 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-24T11:08:06.1125485Z
2026-10-24T11:08:06.1125537Z 328       HttpClientError: (cause) =>
2026-10-24T11:08:06.1125585Z           ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1125587Z
2026-10-24T11:08:06.1125831Z src/cloud/CloudLink.lifecycle.test.ts:166:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1125833Z
2026-10-24T11:08:06.1125898Z 166             latest: Effect.succeed(Option.none()),
2026-10-24T11:08:06.1125945Z                         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1125947Z
2026-10-24T11:08:06.1126170Z src/cloud/CloudLink.test.ts:99:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1126173Z
2026-10-24T11:08:06.1126234Z 99         latest: Effect.succeed(Option.none()),
2026-10-24T11:08:06.1126341Z                    ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1126344Z
2026-10-24T11:08:06.1126695Z 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-24T11:08:06.1126758Z
2026-10-24T11:08:06.1126890Z 791     requestRecovery: (config) => Queue.offer(recoveryRequests, config).pipe(Effect.asVoid),
2026-10-24T11:08:06.1126934Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1126936Z
2026-10-24T11:08:06.1127148Z src/cloud/http.test.ts:81:67 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1127151Z
2026-10-24T11:08:06.1127299Z 81     Layer.mock(ConnectReachability.ConnectReachability)({ latest: Effect.succeed(Option.none()) }),
2026-10-24T11:08:06.1127369Z                                                                      ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1127372Z
2026-10-24T11:08:06.1127724Z 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-24T11:08:06.1127728Z
2026-10-24T11:08:06.1127812Z 371     commitDesktopUpdate: (requestId, onHandoffAccepted) =>
2026-10-24T11:08:06.1127856Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1127859Z
2026-10-24T11:08:06.1128149Z 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-24T11:08:06.1128152Z
2026-10-24T11:08:06.1128200Z 808       updateTool: (tool) =>
2026-10-24T11:08:06.1128243Z           ~~~~~~~~~~
2026-10-24T11:08:06.1128246Z
2026-10-24T11:08:06.1128529Z 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-24T11:08:06.1128532Z
2026-10-24T11:08:06.1128578Z 823       easAccount: () =>
2026-10-24T11:08:06.1128620Z           ~~~~~~~~~~
2026-10-24T11:08:06.1128622Z
2026-10-24T11:08:06.1128943Z 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-24T11:08:06.1128946Z
2026-10-24T11:08:06.1129001Z 868     ensureAgentReady: (onPhase) =>
2026-10-24T11:08:06.1129047Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1129049Z
2026-10-24T11:08:06.1129276Z src/device/easProjectId.ts:201:7 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1129278Z
2026-10-24T11:08:06.1129329Z 201       Effect.map(Option.some),
2026-10-24T11:08:06.1129373Z           ~~~~~~~~~~
2026-10-24T11:08:06.1129375Z
2026-10-24T11:08:06.1129673Z 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-24T11:08:06.1129677Z
2026-10-24T11:08:06.1129756Z 141   return DirectEndpoints.of({ resolve: () => resolve });
2026-10-24T11:08:06.1129805Z                                   ~~~~~~~
2026-10-24T11:08:06.1129808Z
2026-10-24T11:08:06.1130145Z 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-24T11:08:06.1130148Z
2026-10-24T11:08:06.1130252Z 83   return RemoteOpenTargets.of({ resolveTargets: () => resolveTargets });
2026-10-24T11:08:06.1130306Z                                    ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1130309Z
2026-10-24T11:08:06.1130669Z 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-24T11:08:06.1130703Z
2026-10-24T11:08:06.1130753Z 302     isRepository: (cwd) =>
2026-10-24T11:08:06.1130794Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1130796Z
2026-10-24T11:08:06.1131096Z 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-24T11:08:06.1131098Z
2026-10-24T11:08:06.1131148Z 315     hasCommit: (input) =>
2026-10-24T11:08:06.1131191Z         ~~~~~~~~~
2026-10-24T11:08:06.1131193Z
2026-10-24T11:08:06.1131497Z 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-24T11:08:06.1131500Z
2026-10-24T11:08:06.1131548Z 327     hasRefNamed: (input) =>
2026-10-24T11:08:06.1131590Z         ~~~~~~~~~~~
2026-10-24T11:08:06.1131594Z
2026-10-24T11:08:06.1131890Z 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-24T11:08:06.1131892Z
2026-10-24T11:08:06.1131939Z 346     status: (input) =>
2026-10-24T11:08:06.1131979Z         ~~~~~~
2026-10-24T11:08:06.1131982Z
2026-10-24T11:08:06.1132284Z 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-24T11:08:06.1132286Z
2026-10-24T11:08:06.1132335Z 352     localStatus: (input) =>
2026-10-24T11:08:06.1132377Z         ~~~~~~~~~~~
2026-10-24T11:08:06.1132379Z
2026-10-24T11:08:06.1132702Z 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-24T11:08:06.1132705Z
2026-10-24T11:08:06.1132759Z 360     remoteStatus: (input, options) =>
2026-10-24T11:08:06.1132801Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1132803Z
2026-10-24T11:08:06.1133119Z 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-24T11:08:06.1133121Z
2026-10-24T11:08:06.1133172Z 369     pullCurrentBranch: (cwd) =>
2026-10-24T11:08:06.1133215Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1133219Z
2026-10-24T11:08:06.1133546Z 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-24T11:08:06.1133549Z
2026-10-24T11:08:06.1133608Z 373     runStackedAction: (input, options) =>
2026-10-24T11:08:06.1133654Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1133656Z
2026-10-24T11:08:06.1133988Z 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-24T11:08:06.1133990Z
2026-10-24T11:08:06.1134052Z 388     preparePullRequestThread: (input) =>
2026-10-24T11:08:06.1134097Z         ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1134099Z
2026-10-24T11:08:06.1134398Z 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-24T11:08:06.1134401Z
2026-10-24T11:08:06.1134498Z 399     listRefs: (input) =>
2026-10-24T11:08:06.1134540Z         ~~~~~~~~
2026-10-24T11:08:06.1134543Z
2026-10-24T11:08:06.1134862Z 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-24T11:08:06.1134916Z
2026-10-24T11:08:06.1134972Z 405     createWorktree: (input, options) =>
2026-10-24T11:08:06.1135015Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1135017Z
2026-10-24T11:08:06.1135336Z 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-24T11:08:06.1135338Z
2026-10-24T11:08:06.1135392Z 409     listLocalBranchNames: (cwd) =>
2026-10-24T11:08:06.1135435Z         ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1135438Z
2026-10-24T11:08:06.1135745Z 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-24T11:08:06.1135748Z
2026-10-24T11:08:06.1135797Z 413     fetchRemote: (input) =>
2026-10-24T11:08:06.1135840Z         ~~~~~~~~~~~
2026-10-24T11:08:06.1135842Z
2026-10-24T11:08:06.1136146Z 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-24T11:08:06.1136149Z
2026-10-24T11:08:06.1136197Z 417     remoteExists: (input) =>
2026-10-24T11:08:06.1136238Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1136241Z
2026-10-24T11:08:06.1136561Z 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-24T11:08:06.1136563Z
2026-10-24T11:08:06.1136616Z 421     remoteBranchExists: (input) =>
2026-10-24T11:08:06.1136661Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1136664Z
2026-10-24T11:08:06.1137000Z 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-24T11:08:06.1137002Z
2026-10-24T11:08:06.1137069Z 425     resolveRemoteTrackingCommit: (input) =>
2026-10-24T11:08:06.1137116Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1137118Z
2026-10-24T11:08:06.1137450Z 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-24T11:08:06.1137453Z
2026-10-24T11:08:06.1137515Z 429     resolveWorktreeBaseRemote: (input) =>
2026-10-24T11:08:06.1137560Z         ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1137562Z
2026-10-24T11:08:06.1137888Z 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-24T11:08:06.1137892Z
2026-10-24T11:08:06.1137950Z 433     fetchWorktreeBaseCommit: (input) =>
2026-10-24T11:08:06.1137994Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1137997Z
2026-10-24T11:08:06.1138305Z 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-24T11:08:06.1138308Z
2026-10-24T11:08:06.1138359Z 437     removeWorktree: (input) =>
2026-10-24T11:08:06.1138401Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1138403Z
2026-10-24T11:08:06.1138762Z 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-24T11:08:06.1138795Z
2026-10-24T11:08:06.1138846Z 441     pruneWorktrees: (input) =>
2026-10-24T11:08:06.1138887Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1138889Z
2026-10-24T11:08:06.1139206Z 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-24T11:08:06.1139208Z
2026-10-24T11:08:06.1139262Z 445     deleteLocalBranch: (input) =>
2026-10-24T11:08:06.1139306Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1139308Z
2026-10-24T11:08:06.1139611Z 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-24T11:08:06.1139613Z
2026-10-24T11:08:06.1139661Z 449     createRef: (input) =>
2026-10-24T11:08:06.1139704Z         ~~~~~~~~~
2026-10-24T11:08:06.1139706Z
2026-10-24T11:08:06.1140028Z 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-24T11:08:06.1140031Z
2026-10-24T11:08:06.1140079Z 457     switchRef: (input) =>
2026-10-24T11:08:06.1140119Z         ~~~~~~~~~
2026-10-24T11:08:06.1140123Z
2026-10-24T11:08:06.1140427Z 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-24T11:08:06.1140429Z
2026-10-24T11:08:06.1140478Z 463     renameBranch: (input) =>
2026-10-24T11:08:06.1140520Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1140524Z
2026-10-24T11:08:06.1140789Z 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-24T11:08:06.1140793Z
2026-10-24T11:08:06.1140846Z 281   const receive = (raw: string) => {
2026-10-24T11:08:06.1140888Z             ~~~~~~~
2026-10-24T11:08:06.1140890Z
2026-10-24T11:08:06.1141269Z 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-24T11:08:06.1141271Z
2026-10-24T11:08:06.1141313Z 284       try {
2026-10-24T11:08:06.1141354Z           ~~~~~
2026-10-24T11:08:06.1141406Z 285         parsed = JSON.parse(line);
2026-10-24T11:08:06.1141453Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1141493Z ...
2026-10-24T11:08:06.1141593Z 287         return yield* respondWithError(null, "Parse error", -32700);
2026-10-24T11:08:06.1141663Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1141706Z 288       }
2026-10-24T11:08:06.1141747Z     ~~~~~~~
2026-10-24T11:08:06.1141749Z
2026-10-24T11:08:06.1142024Z 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-24T11:08:06.1142027Z
2026-10-24T11:08:06.1142085Z 324       Effect.catchCause(() => Effect.void),
2026-10-24T11:08:06.1142131Z           ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1142133Z
2026-10-24T11:08:06.1142368Z src/mcp/McpDeviceToolkit.test.ts:105:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1142370Z
2026-10-24T11:08:06.1142438Z 105   getById: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1142530Z                      ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1142533Z
2026-10-24T11:08:06.1142821Z 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-24T11:08:06.1142873Z
2026-10-24T11:08:06.1142968Z 421 const previewSnapshotFailure = <E>(cause: Cause.Cause<E>) => {
2026-10-24T11:08:06.1143015Z           ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1143018Z
2026-10-24T11:08:06.1143312Z src/mcp/McpHttpServer.ts:938:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpServer.McpServer.addTool")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1143314Z
2026-10-24T11:08:06.1143361Z 938       addTool: (options) =>
2026-10-24T11:08:06.1143402Z           ~~~~~~~
2026-10-24T11:08:06.1143404Z
2026-10-24T11:08:06.1143692Z 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-24T11:08:06.1143695Z
2026-10-24T11:08:06.1143757Z 22     resolve: () => Effect.succeed(undefined),
2026-10-24T11:08:06.1143809Z                       ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1143811Z
2026-10-24T11:08:06.1144102Z 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-24T11:08:06.1144104Z
2026-10-24T11:08:06.1144165Z 112       Effect.flatMap(() => writingCaller),
2026-10-24T11:08:06.1144209Z           ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1144211Z
2026-10-24T11:08:06.1144723Z src/mcp/OrchestratorMcpService.ts:2465: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-24T11:08:06.1144727Z
2026-10-24T11:08:06.1144801Z 2465       const cancelOrphan = Effect.gen(function* () {
2026-10-24T11:08:06.1144855Z                                            ~~~~~~~~~
2026-10-24T11:08:06.1144857Z
2026-10-24T11:08:06.1145099Z   src/mcp/OrchestratorMcpService.ts:2480:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-24T11:08:06.1145181Z     2480           .pipe(Effect.mapError(threadManagementFailure));
2026-10-24T11:08:06.1145229Z                          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1145231Z
2026-10-24T11:08:06.1145464Z   src/mcp/OrchestratorMcpService.ts:2483:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-24T11:08:06.1145545Z     2483           .pipe(Effect.mapError(threadManagementFailure));
2026-10-24T11:08:06.1145591Z                          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1145593Z
2026-10-24T11:08:06.1145875Z 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-24T11:08:06.1145877Z
2026-10-24T11:08:06.1145924Z 651         onNone: () =>
2026-10-24T11:08:06.1145965Z             ~~~~~~
2026-10-24T11:08:06.1145968Z
2026-10-24T11:08:06.1146172Z src/mcp/WorktreeMcpService.test.ts:355:3 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-24T11:08:06.1146174Z
2026-10-24T11:08:06.1146225Z 355   Effect.gen(function* () {
2026-10-24T11:08:06.1146269Z       ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1146354Z 356     return yield* WorktreeMcpService.WorktreeMcpService;
2026-10-24T11:08:06.1146481Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1146544Z 357   }).pipe(Effect.provide(harness.layer));
2026-10-24T11:08:06.1146588Z     ~~~~
2026-10-24T11:08:06.1146641Z
2026-10-24T11:08:06.1146916Z 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-24T11:08:06.1146919Z
2026-10-24T11:08:06.1146970Z 222     const thread = yield* engine
2026-10-24T11:08:06.1147016Z                               ~~~~~~
2026-10-24T11:08:06.1147068Z 223       .getThreadShell(threadId)
2026-10-24T11:08:06.1147112Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1147178Z 224       .pipe(Effect.map(Option.fromNullishOr))
2026-10-24T11:08:06.1147231Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1147316Z 225       .pipe(Effect.mapError((cause) => new Failure({ cause })));
2026-10-24T11:08:06.1147385Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1147389Z
2026-10-24T11:08:06.1147684Z 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-24T11:08:06.1147689Z
2026-10-24T11:08:06.1147810Z 96   McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-24T11:08:06.1147856Z                              ~~~
2026-10-24T11:08:06.1147858Z
2026-10-24T11:08:06.1148160Z 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-24T11:08:06.1148162Z
2026-10-24T11:08:06.1148280Z 96   McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-24T11:08:06.1148339Z                                                      ~~~~~~~~~
2026-10-24T11:08:06.1148342Z
2026-10-24T11:08:06.1148670Z 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-24T11:08:06.1148674Z
2026-10-24T11:08:06.1148722Z 16     record: (records) =>
2026-10-24T11:08:06.1148765Z        ~~~~~~
2026-10-24T11:08:06.1148767Z
2026-10-24T11:08:06.1149045Z 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-24T11:08:06.1149049Z
2026-10-24T11:08:06.1149152Z 41   defaultValue: () => ({ latestNoticeableStall: Effect.succeed(undefined) }),
2026-10-24T11:08:06.1149218Z                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1149221Z
2026-10-24T11:08:06.1149683Z 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-24T11:08:06.1149687Z
2026-10-24T11:08:06.1149791Z 30 const REPLAY_SETTINGS = Schema.decodeUnknownSync(AcpRegistrySettings)({
2026-10-24T11:08:06.1149844Z                                   ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1149848Z
2026-10-24T11:08:06.1150199Z 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-24T11:08:06.1150202Z
2026-10-24T11:08:06.1150264Z 48   defaultModel: Effect.succeed(undefined),
2026-10-24T11:08:06.1150313Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1150316Z
2026-10-24T11:08:06.1150683Z 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-24T11:08:06.1150722Z
2026-10-24T11:08:06.1150788Z 169         defaultModel: Effect.succeed(undefined),
2026-10-24T11:08:06.1150839Z                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1150842Z
2026-10-24T11:08:06.1151158Z 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-24T11:08:06.1151160Z
2026-10-24T11:08:06.1151223Z 306         defaultModel: Effect.succeed(undefined),
2026-10-24T11:08:06.1151275Z                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1151277Z
2026-10-24T11:08:06.1151593Z 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-24T11:08:06.1151596Z
2026-10-24T11:08:06.1151658Z 542         defaultModel: Effect.succeed(undefined),
2026-10-24T11:08:06.1151711Z                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1151713Z
2026-10-24T11:08:06.1152061Z 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-24T11:08:06.1152063Z
2026-10-24T11:08:06.1152124Z 974       const controller = new AbortController();
2026-10-24T11:08:06.1152174Z                              ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1152177Z
2026-10-24T11:08:06.1152479Z 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-24T11:08:06.1152481Z
2026-10-24T11:08:06.1152549Z 1326         const requestEvent = yield* runtime.events
2026-10-24T11:08:06.1152605Z                                          ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1152651Z 1327           .pipe(
2026-10-24T11:08:06.1152693Z      ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1152734Z  ...
2026-10-24T11:08:06.1152775Z 1330           )
2026-10-24T11:08:06.1152815Z      ~~~~~~~~~~~
2026-10-24T11:08:06.1152871Z 1331           .pipe(Effect.forkScoped);
2026-10-24T11:08:06.1152919Z      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1152921Z
2026-10-24T11:08:06.1153270Z 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-24T11:08:06.1153272Z
2026-10-24T11:08:06.1153339Z 1332         const controller = new AbortController();
2026-10-24T11:08:06.1153393Z                                 ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1153395Z
2026-10-24T11:08:06.1153739Z 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-24T11:08:06.1153743Z
2026-10-24T11:08:06.1153822Z 1355         const cancelledController = new AbortController();
2026-10-24T11:08:06.1153880Z                                          ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1153883Z
2026-10-24T11:08:06.1154258Z 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-24T11:08:06.1154260Z
2026-10-24T11:08:06.1154366Z 4018     getCapabilities: () => Effect.succeed(ClaudeProviderCapabilitiesV2),
2026-10-24T11:08:06.1154459Z          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1154461Z
2026-10-24T11:08:06.1154851Z 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-24T11:08:06.1154908Z
2026-10-24T11:08:06.1155034Z 4019     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T11:08:06.1155080Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1155083Z
2026-10-24T11:08:06.1155453Z 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-24T11:08:06.1155456Z
2026-10-24T11:08:06.1155516Z 201         signal: new AbortController().signal,
2026-10-24T11:08:06.1155567Z                     ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1155569Z
2026-10-24T11:08:06.1155973Z 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-24T11:08:06.1155977Z
2026-10-24T11:08:06.1156030Z 74   const pause = Effect.raceFirst(
2026-10-24T11:08:06.1156075Z                    ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1156078Z
2026-10-24T11:08:06.1156380Z 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-24T11:08:06.1156382Z
2026-10-24T11:08:06.1156490Z 1741     threadId === null ? Effect.succeed(undefined) : mcpSessions.read(threadId);
2026-10-24T11:08:06.1156546Z                              ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1156549Z
2026-10-24T11:08:06.1156919Z 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-24T11:08:06.1156923Z
2026-10-24T11:08:06.1157025Z 1748     getCapabilities: () => Effect.succeed(CodexProviderCapabilitiesV2),
2026-10-24T11:08:06.1157071Z          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1157073Z
2026-10-24T11:08:06.1157459Z 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-24T11:08:06.1157462Z
2026-10-24T11:08:06.1157583Z 1749     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T11:08:06.1157630Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1157632Z
2026-10-24T11:08:06.1157958Z 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-24T11:08:06.1157964Z
2026-10-24T11:08:06.1158036Z 3045                   Effect.catch(() => Effect.succeed(null)),
2026-10-24T11:08:06.1158082Z                        ~~~~~~~~~~~~
2026-10-24T11:08:06.1158084Z
2026-10-24T11:08:06.1158467Z 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-24T11:08:06.1158470Z
2026-10-24T11:08:06.1158531Z 3046                   Effect.flatMap((response) =>
2026-10-24T11:08:06.1158577Z                        ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1158579Z
2026-10-24T11:08:06.1158917Z 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-24T11:08:06.1158956Z
2026-10-24T11:08:06.1159022Z 3068                   Effect.catch(() => Effect.void),
2026-10-24T11:08:06.1159068Z                        ~~~~~~~~~~~~
2026-10-24T11:08:06.1159070Z
2026-10-24T11:08:06.1159441Z 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-24T11:08:06.1159443Z
2026-10-24T11:08:06.1159526Z 7268                   return yield* Effect.fail(failedTermination.error);
2026-10-24T11:08:06.1159571Z                               ~~~~~
2026-10-24T11:08:06.1159573Z
2026-10-24T11:08:06.1160043Z 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-24T11:08:06.1160047Z
2026-10-24T11:08:06.1160152Z 33 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-24T11:08:06.1160210Z                                         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1160212Z
2026-10-24T11:08:06.1160655Z 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-24T11:08:06.1160659Z
2026-10-24T11:08:06.1160786Z 414 const DEFAULT_MUSE_SETTINGS = Schema.decodeUnknownSync(MuseSettings)({ enabled: true });
2026-10-24T11:08:06.1160845Z                                          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1160847Z
2026-10-24T11:08:06.1161203Z 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-24T11:08:06.1161207Z
2026-10-24T11:08:06.1161258Z 242       execute: (input) =>
2026-10-24T11:08:06.1161299Z           ~~~~~~~
2026-10-24T11:08:06.1161301Z
2026-10-24T11:08:06.1161570Z src/orchestration-v2/CheckpointRestoreSafety.test.ts:104:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1161573Z
2026-10-24T11:08:06.1161682Z 104             get: () => Effect.succeed(Option.some({ workspaceRoot: parent } as never)),
2026-10-24T11:08:06.1161732Z                            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1161734Z
2026-10-24T11:08:06.1162097Z 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-24T11:08:06.1162101Z
2026-10-24T11:08:06.1162151Z 41             Effect.catch((error) =>
2026-10-24T11:08:06.1162196Z                ~~~~~~~~~~~~
2026-10-24T11:08:06.1162198Z
2026-10-24T11:08:06.1162554Z 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-24T11:08:06.1162556Z
2026-10-24T11:08:06.1162609Z 83                 Effect.catch((error) =>
2026-10-24T11:08:06.1162654Z                    ~~~~~~~~~~~~
2026-10-24T11:08:06.1162656Z
2026-10-24T11:08:06.1162976Z src/orchestration-v2/CheckpointRollbackService.test.ts:233:22 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1162980Z
2026-10-24T11:08:06.1163080Z 233               return Effect.succeed(Option.some({ workspaceRoot } as never));
2026-10-24T11:08:06.1163165Z                          ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1163167Z
2026-10-24T11:08:06.1163539Z 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-24T11:08:06.1163542Z
2026-10-24T11:08:06.1163607Z 142         const batchAbort = new AbortController();
2026-10-24T11:08:06.1163660Z                                ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1163663Z
2026-10-24T11:08:06.1164042Z 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-24T11:08:06.1164045Z
2026-10-24T11:08:06.1164096Z 168     Effect.flatMap((frame) =>
2026-10-24T11:08:06.1164141Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1164144Z
2026-10-24T11:08:06.1164396Z src/orchestration-v2/CommandReceiptStore.ts:164:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1164398Z
2026-10-24T11:08:06.1164469Z 164               onNone: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1164520Z                                 ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1164522Z
2026-10-24T11:08:06.1164769Z src/orchestration-v2/CommandReceiptStore.ts:167:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1164772Z
2026-10-24T11:08:06.1164836Z 167                   ? Effect.succeed(Option.none())
2026-10-24T11:08:06.1164885Z                         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1164887Z
2026-10-24T11:08:06.1165140Z src/orchestration-v2/CommandReceiptStore.ts:168:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1165143Z
2026-10-24T11:08:06.1165329Z 168                   : fromApplicationReceipt(receipt).pipe(Effect.map(Option.some)),
2026-10-24T11:08:06.1165395Z                                                              ~~~~~~~~~~
2026-10-24T11:08:06.1165398Z
2026-10-24T11:08:06.1165648Z src/orchestration-v2/CommandReceiptStore.ts:183:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1165650Z
2026-10-24T11:08:06.1165709Z 183               ? Effect.succeed(Option.none())
2026-10-24T11:08:06.1165756Z                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1165758Z
2026-10-24T11:08:06.1166012Z src/orchestration-v2/CommandReceiptStore.ts:192:25 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1166014Z
2026-10-24T11:08:06.1166078Z 192                 }).pipe(Effect.map(Option.some)),
2026-10-24T11:08:06.1166125Z                             ~~~~~~~~~~
2026-10-24T11:08:06.1166127Z
2026-10-24T11:08:06.1166360Z src/orchestration-v2/EffectOutbox.ts:429:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1166364Z
2026-10-24T11:08:06.1166421Z 429               ? Effect.succeed(Option.none())
2026-10-24T11:08:06.1166467Z                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1166469Z
2026-10-24T11:08:06.1166710Z src/orchestration-v2/EffectOutbox.ts:430:39 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1166712Z
2026-10-24T11:08:06.1166853Z 430               : rowToEffect(row).pipe(Effect.map(Option.some));
2026-10-24T11:08:06.1166907Z                                           ~~~~~~~~~~
2026-10-24T11:08:06.1166909Z
2026-10-24T11:08:06.1167197Z src/orchestration-v2/EffectWorker.test.ts:107:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1167200Z
2026-10-24T11:08:06.1167263Z 107         get: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1167311Z                        ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1167313Z
2026-10-24T11:08:06.1167554Z src/orchestration-v2/EffectWorker.test.ts:302:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1167557Z
2026-10-24T11:08:06.1167642Z 302       claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T11:08:06.1167692Z                            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1167694Z
2026-10-24T11:08:06.1167938Z src/orchestration-v2/EffectWorker.test.ts:369:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1167942Z
2026-10-24T11:08:06.1168027Z 369       claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T11:08:06.1168073Z                            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1168077Z
2026-10-24T11:08:06.1168320Z src/orchestration-v2/EffectWorker.test.ts:436:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1168323Z
2026-10-24T11:08:06.1168406Z 436       claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T11:08:06.1168453Z                            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1168456Z
2026-10-24T11:08:06.1168698Z src/orchestration-v2/EffectWorker.test.ts:437:18 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1168701Z
2026-10-24T11:08:06.1168777Z 437       get: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T11:08:06.1168824Z                      ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1168828Z
2026-10-24T11:08:06.1169175Z 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-24T11:08:06.1169178Z
2026-10-24T11:08:06.1169230Z 98       execute: (effect, options) => {
2026-10-24T11:08:06.1169273Z          ~~~~~~~
2026-10-24T11:08:06.1169275Z
2026-10-24T11:08:06.1169613Z 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-24T11:08:06.1169616Z
2026-10-24T11:08:06.1169671Z 180                 Effect.catch((cause) =>
2026-10-24T11:08:06.1169717Z                     ~~~~~~~~~~~~
2026-10-24T11:08:06.1169720Z
2026-10-24T11:08:06.1170036Z 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-24T11:08:06.1170040Z
2026-10-24T11:08:06.1170091Z 110         append: (input) =>
2026-10-24T11:08:06.1170133Z             ~~~~~~
2026-10-24T11:08:06.1170135Z
2026-10-24T11:08:06.1170451Z 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-24T11:08:06.1170454Z
2026-10-24T11:08:06.1170510Z 120         appendProjectEvent: (event) =>
2026-10-24T11:08:06.1170555Z             ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1170557Z
2026-10-24T11:08:06.1170906Z 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-24T11:08:06.1170942Z
2026-10-24T11:08:06.1170994Z 131         latestSequence: (input) =>
2026-10-24T11:08:06.1171039Z             ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1171042Z
2026-10-24T11:08:06.1171309Z src/orchestration-v2/FoundationPersistence.test.ts:1791:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1171312Z
2026-10-24T11:08:06.1171401Z 1791         claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T11:08:06.1171451Z                               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1171455Z
2026-10-24T11:08:06.1171716Z src/orchestration-v2/FoundationPersistence.test.ts:1793:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1171720Z
2026-10-24T11:08:06.1171768Z 1793           Effect.succeed(
2026-10-24T11:08:06.1171813Z                ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1171817Z
2026-10-24T11:08:06.1172077Z src/orchestration-v2/FoundationPersistence.test.ts:2663:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1172080Z
2026-10-24T11:08:06.1172158Z 2663             nextClaimableAt: Effect.succeed(Option.none()),
2026-10-24T11:08:06.1172212Z                                   ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1172214Z
2026-10-24T11:08:06.1172476Z src/orchestration-v2/FoundationPersistence.test.ts:2880:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1172478Z
2026-10-24T11:08:06.1172554Z 2880             nextClaimableAt: Effect.succeed(Option.none()),
2026-10-24T11:08:06.1172607Z                                   ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1172609Z
2026-10-24T11:08:06.1172973Z src/orchestration-v2/Orchestrator.ts:11796:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-24T11:08:06.1172977Z
2026-10-24T11:08:06.1173031Z 11796       Effect.flatMap((planned) =>
2026-10-24T11:08:06.1173076Z             ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1173078Z
2026-10-24T11:08:06.1173423Z src/orchestration-v2/Orchestrator.ts:12219:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.restartContinuationPending")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1173425Z
2026-10-24T11:08:06.1173489Z 12219     restartContinuationPending: (run) =>
2026-10-24T11:08:06.1173535Z           ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1173537Z
2026-10-24T11:08:06.1173874Z src/orchestration-v2/Orchestrator.ts:12221:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.awaitRestartContinuation")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1173878Z
2026-10-24T11:08:06.1173939Z 12221     awaitRestartContinuation: (run) =>
2026-10-24T11:08:06.1173984Z           ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1173986Z
2026-10-24T11:08:06.1174315Z src/orchestration-v2/Orchestrator.ts:12224:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.autoArmLimitRecovery")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1174317Z
2026-10-24T11:08:06.1174373Z 12224     autoArmLimitRecovery: (input) =>
2026-10-24T11:08:06.1174419Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1174421Z
2026-10-24T11:08:06.1174781Z src/orchestration-v2/Orchestrator.ts:12252:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.searchThread")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1174784Z
2026-10-24T11:08:06.1174835Z 12252     searchThread: (input) =>
2026-10-24T11:08:06.1174921Z           ~~~~~~~~~~~~
2026-10-24T11:08:06.1174924Z
2026-10-24T11:08:06.1175327Z src/orchestration-v2/Orchestrator.ts:12260: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-24T11:08:06.1175329Z
2026-10-24T11:08:06.1175451Z 12260     getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-24T11:08:06.1175496Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1175498Z
2026-10-24T11:08:06.1175838Z src/orchestration-v2/Orchestrator.ts:12264:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1175841Z
2026-10-24T11:08:06.1175905Z 12264     getTimelinePage: (threadId, options) =>
2026-10-24T11:08:06.1175951Z           ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1175953Z
2026-10-24T11:08:06.1176279Z src/orchestration-v2/Orchestrator.ts:12268:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1176281Z
2026-10-24T11:08:06.1176335Z 12268     getMessageCount: (threadId) =>
2026-10-24T11:08:06.1176379Z           ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1176381Z
2026-10-24T11:08:06.1176693Z src/orchestration-v2/Orchestrator.ts:12272:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1176697Z
2026-10-24T11:08:06.1176746Z 12272     getTurnItem: (input) =>
2026-10-24T11:08:06.1176791Z           ~~~~~~~~~~~
2026-10-24T11:08:06.1176793Z
2026-10-24T11:08:06.1177141Z src/orchestration-v2/Orchestrator.ts:12280:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1177146Z
2026-10-24T11:08:06.1177221Z 12280     getThreadRecords: (threadId, fields, filter) =>
2026-10-24T11:08:06.1177264Z           ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1177267Z
2026-10-24T11:08:06.1177597Z src/orchestration-v2/Orchestrator.ts:12284:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadProjection")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1177600Z
2026-10-24T11:08:06.1177660Z 12284     getThreadProjection: (threadId) =>
2026-10-24T11:08:06.1177707Z           ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1177709Z
2026-10-24T11:08:06.1178044Z src/orchestration-v2/Orchestrator.ts:12288:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getCheckpointContext")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1178047Z
2026-10-24T11:08:06.1178107Z 12288     getCheckpointContext: (threadId) =>
2026-10-24T11:08:06.1178151Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1178153Z
2026-10-24T11:08:06.1178481Z src/orchestration-v2/Orchestrator.ts:12292:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshot")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1178483Z
2026-10-24T11:08:06.1178540Z 12292     getThreadSnapshot: (threadId) =>
2026-10-24T11:08:06.1178585Z           ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1178587Z
2026-10-24T11:08:06.1178987Z src/orchestration-v2/Orchestrator.ts:12296:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshotWindow")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1179023Z
2026-10-24T11:08:06.1179100Z 12296     getThreadSnapshotWindow: (threadId, options) =>
2026-10-24T11:08:06.1179147Z           ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1179150Z
2026-10-24T11:08:06.1179472Z src/orchestration-v2/Orchestrator.ts:12300:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1179474Z
2026-10-24T11:08:06.1179528Z 12300     getShellSnapshot: (options) =>
2026-10-24T11:08:06.1179572Z           ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1179574Z
2026-10-24T11:08:06.1179910Z src/orchestration-v2/Orchestrator.ts:12302:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.listActiveSubagentThreadIds")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1179912Z
2026-10-24T11:08:06.1179973Z 12302     listActiveSubagentThreadIds: () =>
2026-10-24T11:08:06.1180045Z           ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1180047Z
2026-10-24T11:08:06.1180373Z src/orchestration-v2/Orchestrator.ts:12304:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.readShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1180375Z
2026-10-24T11:08:06.1180429Z 12304     readShellSnapshot: (options) =>
2026-10-24T11:08:06.1180474Z           ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1180476Z
2026-10-24T11:08:06.1180795Z src/orchestration-v2/Orchestrator.ts:12311:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadShell")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1180798Z
2026-10-24T11:08:06.1180851Z 12311     getThreadShell: (threadId) =>
2026-10-24T11:08:06.1180896Z           ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1180898Z
2026-10-24T11:08:06.1181233Z src/orchestration-v2/Orchestrator.ts:12315:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadEventSequence")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T11:08:06.1181236Z
2026-10-24T11:08:06.1181298Z 12315     getThreadEventSequence: (threadId) =>
2026-10-24T11:08:06.1181344Z           ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1181346Z
2026-10-24T11:08:06.1181681Z 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-24T11:08:06.1181683Z
2026-10-24T11:08:06.1181752Z 160         getInstance: () => Effect.succeed(undefined),
2026-10-24T11:08:06.1181807Z                                ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1181811Z
2026-10-24T11:08:06.1182122Z 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-24T11:08:06.1182125Z
2026-10-24T11:08:06.1182238Z 269     getShell: (projectId) => get(projectId).pipe(Effect.map(Option.map(toShell))),
2026-10-24T11:08:06.1182280Z         ~~~~~~~~
2026-10-24T11:08:06.1182282Z
2026-10-24T11:08:06.1182590Z 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-24T11:08:06.1182593Z
2026-10-24T11:08:06.1182641Z 270     listShells: (options) =>
2026-10-24T11:08:06.1182684Z         ~~~~~~~~~~
2026-10-24T11:08:06.1182686Z
2026-10-24T11:08:06.1183024Z src/orchestration-v2/ProjectionControlReads.test.ts:279:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1183027Z
2026-10-24T11:08:06.1183075Z 279           Effect.succeed(
2026-10-24T11:08:06.1183154Z               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1183156Z
2026-10-24T11:08:06.1183499Z 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-24T11:08:06.1183501Z
2026-10-24T11:08:06.1183549Z 78       get: (instanceId) =>
2026-10-24T11:08:06.1183592Z          ~~~
2026-10-24T11:08:06.1183594Z
2026-10-24T11:08:06.1183923Z 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-24T11:08:06.1183926Z
2026-10-24T11:08:06.1183971Z 135       list: () =>
2026-10-24T11:08:06.1184013Z           ~~~~
2026-10-24T11:08:06.1184015Z
2026-10-24T11:08:06.1184350Z 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-24T11:08:06.1184354Z
2026-10-24T11:08:06.1184441Z 93       record: (properties: Readonly<Record<string, unknown>>) =>
2026-10-24T11:08:06.1184485Z          ~~~~~~
2026-10-24T11:08:06.1184487Z
2026-10-24T11:08:06.1184865Z 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-24T11:08:06.1184867Z
2026-10-24T11:08:06.1184928Z 818               Effect.flatMap((storedEvents) =>
2026-10-24T11:08:06.1184973Z                   ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1184977Z
2026-10-24T11:08:06.1185245Z src/orchestration-v2/ProviderSessionManager.test.ts:1155:19 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1185249Z
2026-10-24T11:08:06.1185374Z 1155                 : Effect.succeed(Option.some(makeBrowserAccessProject(requestedProjectId))),
2026-10-24T11:08:06.1185421Z                        ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1185423Z
2026-10-24T11:08:06.1185692Z src/orchestration-v2/ProviderTurnStartService.test.ts:150:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1185694Z
2026-10-24T11:08:06.1185743Z 150             Effect.succeed(
2026-10-24T11:08:06.1185789Z                 ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1185792Z
2026-10-24T11:08:06.1186058Z src/orchestration-v2/ProviderTurnStartService.test.ts:703:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1186062Z
2026-10-24T11:08:06.1186199Z 703             Effect.succeed(Option.some({ workspaceRoot: "/tmp/native-account-project" } as never)),
2026-10-24T11:08:06.1186245Z                 ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1186248Z
2026-10-24T11:08:06.1186519Z src/orchestration-v2/ProviderTurnStartService.testkit.ts:14:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1186521Z
2026-10-24T11:08:06.1186589Z 14     getById: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1186634Z                       ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1186636Z
2026-10-24T11:08:06.1186939Z src/orchestration-v2/ProviderTurnStartService.ts:205:39 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-24T11:08:06.1186941Z
2026-10-24T11:08:06.1187078Z 205               Effect.catchCause(() => Effect.succeed(undefined)),
2026-10-24T11:08:06.1187140Z                                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1187174Z
2026-10-24T11:08:06.1187565Z src/orchestration-v2/ProviderTurnStartService.ts:512:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T11:08:06.1187568Z
2026-10-24T11:08:06.1187625Z 512               Effect.catchCause((cause) =>
2026-10-24T11:08:06.1187673Z                   ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1187675Z
2026-10-24T11:08:06.1188100Z src/orchestration-v2/ProviderTurnStartService.ts:1302: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-24T11:08:06.1188103Z
2026-10-24T11:08:06.1188165Z 1302       return runExecution.startRootRun({
2026-10-24T11:08:06.1188208Z            ~~~~~~
2026-10-24T11:08:06.1188212Z
2026-10-24T11:08:06.1188473Z src/orchestration-v2/PullRequestWatchReactor.ts:478:53 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T11:08:06.1188476Z
2026-10-24T11:08:06.1188577Z 478             ? pullRequests.activity(reference).pipe(Effect.map(Option.some))
2026-10-24T11:08:06.1188639Z                                                         ~~~~~~~~~~
2026-10-24T11:08:06.1188641Z
2026-10-24T11:08:06.1189012Z 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-24T11:08:06.1189014Z
2026-10-24T11:08:06.1189087Z 49       cleanupScheduledTasks: (threadId: ThreadId) =>
2026-10-24T11:08:06.1189132Z          ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1189134Z
2026-10-24T11:08:06.1189493Z 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-24T11:08:06.1189496Z
2026-10-24T11:08:06.1189558Z 58       cleanupTerminals: (threadId: string) =>
2026-10-24T11:08:06.1189603Z          ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1189605Z
2026-10-24T11:08:06.1189960Z 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-24T11:08:06.1189962Z
2026-10-24T11:08:06.1190054Z 66       cleanupPreviews: (threadId: string) =>
2026-10-24T11:08:06.1190100Z          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1190102Z
2026-10-24T11:08:06.1190470Z 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-24T11:08:06.1190474Z
2026-10-24T11:08:06.1190567Z 74       cleanupAttachments: (attachmentIds: ReadonlyArray<string>) =>
2026-10-24T11:08:06.1190610Z          ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1190613Z
2026-10-24T11:08:06.1190877Z 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-24T11:08:06.1190880Z
2026-10-24T11:08:06.1190939Z 1812         ).pipe(Effect.map(Option.some)),
2026-10-24T11:08:06.1190984Z                     ~~~~~~~~~~
2026-10-24T11:08:06.1190986Z
2026-10-24T11:08:06.1191425Z src/orchestration-v2/RunExecutionService.ts:931:15 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T11:08:06.1191461Z
2026-10-24T11:08:06.1191519Z 931               Effect.catchCause((cause) =>
2026-10-24T11:08:06.1191565Z                   ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1191567Z
2026-10-24T11:08:06.1191810Z src/orchestration-v2/RuntimePolicy.test.ts:90:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1191813Z
2026-10-24T11:08:06.1191860Z 90         Effect.succeed(
2026-10-24T11:08:06.1191904Z            ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1191906Z
2026-10-24T11:08:06.1192211Z 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-24T11:08:06.1192215Z
2026-10-24T11:08:06.1192262Z 54   resolve: (input) =>
2026-10-24T11:08:06.1192304Z      ~~~~~~~
2026-10-24T11:08:06.1192307Z
2026-10-24T11:08:06.1192567Z src/orchestration-v2/RuntimeRequestService.test.ts:29:7 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1192570Z
2026-10-24T11:08:06.1192617Z 29       Effect.succeed(
2026-10-24T11:08:06.1192659Z          ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1192661Z
2026-10-24T11:08:06.1192917Z src/orchestration-v2/ThreadLaunchService.test.ts:189:33 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1192920Z
2026-10-24T11:08:06.1193013Z 189       getByWorkspaceRoot: () => Effect.succeed(Option.some(project)),
2026-10-24T11:08:06.1193066Z                                     ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1193068Z
2026-10-24T11:08:06.1193324Z src/orchestration-v2/ThreadLaunchService.test.ts:220:32 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1193328Z
2026-10-24T11:08:06.1193410Z 220         folderForThread: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1193463Z                                    ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1193465Z
2026-10-24T11:08:06.1193801Z 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-24T11:08:06.1193803Z
2026-10-24T11:08:06.1193852Z 91     archive: (input) =>
2026-10-24T11:08:06.1193894Z        ~~~~~~~
2026-10-24T11:08:06.1193896Z
2026-10-24T11:08:06.1194232Z 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-24T11:08:06.1194234Z
2026-10-24T11:08:06.1194284Z 97     unarchive: (input) =>
2026-10-24T11:08:06.1194328Z        ~~~~~~~~~
2026-10-24T11:08:06.1194330Z
2026-10-24T11:08:06.1194661Z 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-24T11:08:06.1194663Z
2026-10-24T11:08:06.1194709Z 103     delete: (input) =>
2026-10-24T11:08:06.1194749Z         ~~~~~~
2026-10-24T11:08:06.1194751Z
2026-10-24T11:08:06.1195101Z 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-24T11:08:06.1195103Z
2026-10-24T11:08:06.1195155Z 109     updateMetadata: (input) =>
2026-10-24T11:08:06.1195246Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1195249Z
2026-10-24T11:08:06.1195597Z 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-24T11:08:06.1195657Z
2026-10-24T11:08:06.1195707Z 118     setRuntimeMode: (input) =>
2026-10-24T11:08:06.1195749Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1195752Z
2026-10-24T11:08:06.1196109Z 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-24T11:08:06.1196112Z
2026-10-24T11:08:06.1196167Z 125     setInteractionMode: (input) =>
2026-10-24T11:08:06.1196210Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1196212Z
2026-10-24T11:08:06.1196567Z 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-24T11:08:06.1196570Z
2026-10-24T11:08:06.1196624Z 132     setModelSelection: (input) =>
2026-10-24T11:08:06.1196668Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1196671Z
2026-10-24T11:08:06.1197054Z 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-24T11:08:06.1197056Z
2026-10-24T11:08:06.1197111Z 689       Effect.flatMap((projection) =>
2026-10-24T11:08:06.1197155Z           ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1197157Z
2026-10-24T11:08:06.1197447Z 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-24T11:08:06.1197450Z
2026-10-24T11:08:06.1197518Z 706     ensureProjectionTranscript(input.threadId)
2026-10-24T11:08:06.1197574Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1197706Z 707       .pipe(Effect.andThen(orchestrator.getThreadRecords(input.threadId, fields, filter)))
2026-10-24T11:08:06.1197794Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1197834Z ...
2026-10-24T11:08:06.1197875Z 726         ),
2026-10-24T11:08:06.1197915Z     ~~~~~~~~~~
2026-10-24T11:08:06.1197959Z 727       );
2026-10-24T11:08:06.1198000Z     ~~~~~~~
2026-10-24T11:08:06.1198003Z
2026-10-24T11:08:06.1198386Z 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-24T11:08:06.1198388Z
2026-10-24T11:08:06.1198444Z 717         Effect.flatMap((projection) =>
2026-10-24T11:08:06.1198490Z             ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1198493Z
2026-10-24T11:08:06.1198869Z 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-24T11:08:06.1198871Z
2026-10-24T11:08:06.1198972Z 1131     if (failures[0] !== undefined) return yield* Effect.fail(failures[0]);
2026-10-24T11:08:06.1199026Z                                                ~~~~~
2026-10-24T11:08:06.1199029Z
2026-10-24T11:08:06.1199379Z 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-24T11:08:06.1199425Z
2026-10-24T11:08:06.1199477Z 1142     searchThread: (input) =>
2026-10-24T11:08:06.1199520Z          ~~~~~~~~~~~~
2026-10-24T11:08:06.1199522Z
2026-10-24T11:08:06.1200061Z 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-24T11:08:06.1200064Z
2026-10-24T11:08:06.1200183Z 1147     getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-24T11:08:06.1200227Z          ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1200230Z
2026-10-24T11:08:06.1200606Z 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-24T11:08:06.1200610Z
2026-10-24T11:08:06.1200672Z 1153     getTimelinePage: (threadId, options) =>
2026-10-24T11:08:06.1200715Z          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1200717Z
2026-10-24T11:08:06.1201080Z 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-24T11:08:06.1201082Z
2026-10-24T11:08:06.1201136Z 1157     getMessageCount: (threadId) =>
2026-10-24T11:08:06.1201178Z          ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1201181Z
2026-10-24T11:08:06.1201528Z 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-24T11:08:06.1201531Z
2026-10-24T11:08:06.1201583Z 1161     getTurnItem: (input) =>
2026-10-24T11:08:06.1201625Z          ~~~~~~~~~~~
2026-10-24T11:08:06.1201629Z
2026-10-24T11:08:06.1202012Z 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-24T11:08:06.1202016Z
2026-10-24T11:08:06.1202088Z 1166     getThreadRecords: (threadId, fields, filter) =>
2026-10-24T11:08:06.1202133Z          ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1202135Z
2026-10-24T11:08:06.1202534Z 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-24T11:08:06.1202536Z
2026-10-24T11:08:06.1202674Z 1206     ensureTranscript: () => Effect.succeed({ importedThreadCount: 0, importedMessageCount: 0 }),
2026-10-24T11:08:06.1202718Z          ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1202720Z
2026-10-24T11:08:06.1202995Z src/orchestration-v2/ThreadPullRequestService.test.ts:119:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1202999Z
2026-10-24T11:08:06.1203079Z 119             getShell: () => Effect.succeed(Option.some(project)),
2026-10-24T11:08:06.1203130Z                                 ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1203132Z
2026-10-24T11:08:06.1203401Z src/orchestration-v2/ThreadPullRequestService.test.ts:238:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1203404Z
2026-10-24T11:08:06.1203484Z 238               getShell: () => Effect.succeed(Option.some(project)),
2026-10-24T11:08:06.1203536Z                                   ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1203538Z
2026-10-24T11:08:06.1203989Z 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-24T11:08:06.1204027Z
2026-10-24T11:08:06.1204086Z 329                 Effect.catchCause((cause) =>
2026-10-24T11:08:06.1204132Z                     ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1204136Z
2026-10-24T11:08:06.1204521Z 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-24T11:08:06.1204523Z
2026-10-24T11:08:06.1204579Z 353           Effect.catchCause((cause) =>
2026-10-24T11:08:06.1204625Z               ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1204627Z
2026-10-24T11:08:06.1205009Z 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-24T11:08:06.1205013Z
2026-10-24T11:08:06.1205067Z 516           Effect.catchCause((cause) =>
2026-10-24T11:08:06.1205111Z               ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1205114Z
2026-10-24T11:08:06.1205576Z 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-24T11:08:06.1205578Z
2026-10-24T11:08:06.1205632Z 534       Effect.catchCause((cause) =>
2026-10-24T11:08:06.1205676Z           ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1205678Z
2026-10-24T11:08:06.1206063Z 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-24T11:08:06.1206066Z
2026-10-24T11:08:06.1206118Z 576         Effect.catchCause((cause) =>
2026-10-24T11:08:06.1206166Z             ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1206168Z
2026-10-24T11:08:06.1206527Z 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-24T11:08:06.1206530Z
2026-10-24T11:08:06.1206585Z 106       normalize: (item, runOrdinal) =>
2026-10-24T11:08:06.1206626Z           ~~~~~~~~~
2026-10-24T11:08:06.1206629Z
2026-10-24T11:08:06.1207038Z 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-24T11:08:06.1207041Z
2026-10-24T11:08:06.1207140Z 54 const thread = Schema.decodeUnknownSync(OrchestrationV2AppThread)({
2026-10-24T11:08:06.1207189Z                          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1207191Z
2026-10-24T11:08:06.1207568Z 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-24T11:08:06.1207570Z
2026-10-24T11:08:06.1207613Z 231           try {
2026-10-24T11:08:06.1207654Z               ~~~~~
2026-10-24T11:08:06.1207733Z 232             decodeThreadHistoryCursor(args.query.cursor);
2026-10-24T11:08:06.1207798Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1207837Z ...
2026-10-24T11:08:06.1207968Z 236             return yield* failEnvironmentInternal("orchestration_thread_history_failed", cause);
2026-10-24T11:08:06.1208129Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1208172Z 237           }
2026-10-24T11:08:06.1208258Z     ~~~~~~~~~~~
2026-10-24T11:08:06.1208260Z
2026-10-24T11:08:06.1208509Z src/orchestration-v2/runtimeLayer.test.ts:120:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1208511Z
2026-10-24T11:08:06.1208577Z 120   getById: () => Effect.succeed(Option.none()),
2026-10-24T11:08:06.1208624Z                      ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1208627Z
2026-10-24T11:08:06.1208870Z src/orchestration-v2/runtimeLayer.test.ts:996:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1208872Z
2026-10-24T11:08:06.1208919Z 996           Effect.succeed(
2026-10-24T11:08:06.1208964Z               ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1208968Z
2026-10-24T11:08:06.1209339Z 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-24T11:08:06.1209343Z
2026-10-24T11:08:06.1209390Z 40         append: (input) =>
2026-10-24T11:08:06.1209431Z            ~~~~~~
2026-10-24T11:08:06.1209434Z
2026-10-24T11:08:06.1209757Z 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-24T11:08:06.1209759Z
2026-10-24T11:08:06.1209820Z 283       const awaitDispatch = (key: string) =>
2026-10-24T11:08:06.1209864Z                 ~~~~~~~~~~~~~
2026-10-24T11:08:06.1209866Z
2026-10-24T11:08:06.1210317Z 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-24T11:08:06.1210321Z
2026-10-24T11:08:06.1210372Z 447       execute: () => Effect.void,
2026-10-24T11:08:06.1210412Z           ~~~~~~~
2026-10-24T11:08:06.1210415Z
2026-10-24T11:08:06.1210759Z 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-24T11:08:06.1210761Z
2026-10-24T11:08:06.1210808Z 92     list: (input) =>
2026-10-24T11:08:06.1210850Z        ~~~~
2026-10-24T11:08:06.1210852Z
2026-10-24T11:08:06.1211194Z 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-24T11:08:06.1211198Z
2026-10-24T11:08:06.1211243Z 102     set: (input) =>
2026-10-24T11:08:06.1211284Z         ~~~
2026-10-24T11:08:06.1211288Z
2026-10-24T11:08:06.1211626Z 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-24T11:08:06.1211628Z
2026-10-24T11:08:06.1211672Z 54     get: (key) =>
2026-10-24T11:08:06.1211712Z        ~~~
2026-10-24T11:08:06.1211714Z
2026-10-24T11:08:06.1212061Z 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-24T11:08:06.1212064Z
2026-10-24T11:08:06.1212112Z 64     put: (key, guide) =>
2026-10-24T11:08:06.1212155Z        ~~~
2026-10-24T11:08:06.1212157Z
2026-10-24T11:08:06.1212548Z 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-24T11:08:06.1212582Z
2026-10-24T11:08:06.1212633Z 45         Effect.catch((error) =>
2026-10-24T11:08:06.1212676Z            ~~~~~~~~~~~~
2026-10-24T11:08:06.1212678Z
2026-10-24T11:08:06.1213000Z 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-24T11:08:06.1213002Z
2026-10-24T11:08:06.1213067Z 75       awaitAttached: () => Effect.succeed(false),
2026-10-24T11:08:06.1213109Z          ~~~~~~~~~~~~~
2026-10-24T11:08:06.1213112Z
2026-10-24T11:08:06.1213426Z 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-24T11:08:06.1213429Z
2026-10-24T11:08:06.1213489Z 78       isAttached: () => Effect.succeed(false),
2026-10-24T11:08:06.1213533Z          ~~~~~~~~~~
2026-10-24T11:08:06.1213535Z
2026-10-24T11:08:06.1213842Z 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-24T11:08:06.1213844Z
2026-10-24T11:08:06.1213947Z 79       endpoint: () => Effect.die("No desktop app is attached to this server."),
2026-10-24T11:08:06.1213988Z          ~~~~~~~~
2026-10-24T11:08:06.1213990Z
2026-10-24T11:08:06.1214296Z 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-24T11:08:06.1214300Z
2026-10-24T11:08:06.1214353Z 80       pointer: () => Effect.void,
2026-10-24T11:08:06.1214393Z          ~~~~~~~
2026-10-24T11:08:06.1214396Z
2026-10-24T11:08:06.1214733Z 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-24T11:08:06.1214737Z
2026-10-24T11:08:06.1214789Z 194     awaitAttached: (key, timeout) =>
2026-10-24T11:08:06.1214832Z         ~~~~~~~~~~~~~
2026-10-24T11:08:06.1214835Z
2026-10-24T11:08:06.1215152Z 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-24T11:08:06.1215154Z
2026-10-24T11:08:06.1215253Z 216     isAttached: (key) => Effect.sync(() => attachedTabs.has(keyOf(key))),
2026-10-24T11:08:06.1215296Z         ~~~~~~~~~~
2026-10-24T11:08:06.1215298Z
2026-10-24T11:08:06.1215624Z 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-24T11:08:06.1215627Z
2026-10-24T11:08:06.1215732Z 218     pointer: (key, pointer) => command({ type: "pointer", ...key, ...pointer }),
2026-10-24T11:08:06.1215774Z         ~~~~~~~
2026-10-24T11:08:06.1215776Z
2026-10-24T11:08:06.1216237Z src/preview/ServerBrowser.ts:481: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-24T11:08:06.1216240Z
2026-10-24T11:08:06.1216334Z 481     executable: () => Effect.runPromise(previewBrowser.executable),
2026-10-24T11:08:06.1216433Z                           ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1216435Z
2026-10-24T11:08:06.1216889Z src/preview/ServerBrowser.ts:688: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-24T11:08:06.1216945Z
2026-10-24T11:08:06.1216997Z 688       ? Effect.runPromise(
2026-10-24T11:08:06.1217041Z             ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1217044Z
2026-10-24T11:08:06.1217491Z src/preview/ServerBrowser.ts:697: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-24T11:08:06.1217495Z
2026-10-24T11:08:06.1217574Z 697     const scope = await Effect.runPromise(Scope.make());
2026-10-24T11:08:06.1217625Z                             ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1217627Z
2026-10-24T11:08:06.1218077Z src/preview/ServerBrowser.ts:699: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-24T11:08:06.1218081Z
2026-10-24T11:08:06.1218144Z 699       const endpoint = await Effect.runPromise(
2026-10-24T11:08:06.1218198Z                                  ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1218200Z
2026-10-24T11:08:06.1218647Z src/preview/ServerBrowser.ts:709: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-24T11:08:06.1218649Z
2026-10-24T11:08:06.1218735Z 709           await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-24T11:08:06.1218783Z                     ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1218785Z
2026-10-24T11:08:06.1219233Z src/preview/ServerBrowser.ts:713: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-24T11:08:06.1219235Z
2026-10-24T11:08:06.1219320Z 713       await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-24T11:08:06.1219365Z                 ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1219367Z
2026-10-24T11:08:06.1219819Z src/preview/ServerBrowser.ts:1200: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-24T11:08:06.1219821Z
2026-10-24T11:08:06.1219874Z 1200     await Effect.runPromise(
2026-10-24T11:08:06.1219919Z                ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1219921Z
2026-10-24T11:08:06.1220399Z src/preview/ServerBrowser.ts:1693: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-24T11:08:06.1220402Z
2026-10-24T11:08:06.1220456Z 1693         : await Effect.runPromise(
2026-10-24T11:08:06.1220502Z                      ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1220504Z
2026-10-24T11:08:06.1221002Z src/preview/ServerBrowser.ts:1757: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-24T11:08:06.1221039Z
2026-10-24T11:08:06.1221098Z 1757             ? await Effect.runPromise(
2026-10-24T11:08:06.1221146Z                          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1221148Z
2026-10-24T11:08:06.1221419Z src/preview/ServerBrowser.ts:1760:58 - suggestion TS377016: `Effect.void` represents the same outcome as `Effect.succeed(undefined)` or `Effect.succeed(void 0)`. effect(effectSucceedWithVoid)
2026-10-24T11:08:06.1221423Z
2026-10-24T11:08:06.1221531Z 1760                     ServerBrowserTabNotFoundError: () => Effect.succeed(undefined),
2026-10-24T11:08:06.1221600Z                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1221602Z
2026-10-24T11:08:06.1222058Z src/preview/ServerBrowser.ts:1766: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-24T11:08:06.1222061Z
2026-10-24T11:08:06.1222134Z 1766           const { sessions } = await Effect.runPromise(
2026-10-24T11:08:06.1222193Z                                           ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1222196Z
2026-10-24T11:08:06.1222645Z src/preview/ServerBrowser.ts:1794: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-24T11:08:06.1222650Z
2026-10-24T11:08:06.1222705Z 1794             await Effect.runPromise(
2026-10-24T11:08:06.1222751Z                        ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1222753Z
2026-10-24T11:08:06.1223206Z src/preview/ServerBrowser.ts:1825: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-24T11:08:06.1223210Z
2026-10-24T11:08:06.1223264Z 1825               await Effect.runPromise(
2026-10-24T11:08:06.1223310Z                          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1223312Z
2026-10-24T11:08:06.1223765Z src/preview/ServerBrowser.ts:1889: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-24T11:08:06.1223767Z
2026-10-24T11:08:06.1223900Z 1889       await Effect.runPromise(manager.close({ threadId: tab.threadId, tabId: tab.tabId }));
2026-10-24T11:08:06.1223948Z                  ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1223950Z
2026-10-24T11:08:06.1224401Z src/preview/ServerBrowser.ts:1957: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-24T11:08:06.1224405Z
2026-10-24T11:08:06.1224457Z 1957         await Effect.runPromise(
2026-10-24T11:08:06.1224502Z                    ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1224504Z
2026-10-24T11:08:06.1224956Z src/preview/ServerBrowser.ts:1969: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-24T11:08:06.1224958Z
2026-10-24T11:08:06.1225075Z 1969         const snapshot = await Effect.runPromise(
2026-10-24T11:08:06.1225131Z                                     ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1225173Z
2026-10-24T11:08:06.1225624Z src/preview/ServerBrowser.ts:2215: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-24T11:08:06.1225626Z
2026-10-24T11:08:06.1225677Z 2215         await Effect.runPromise(
2026-10-24T11:08:06.1225723Z                    ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1225725Z
2026-10-24T11:08:06.1226004Z 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-24T11:08:06.1226006Z
2026-10-24T11:08:06.1226083Z 179       const receive = (chunk: Uint8Array | string) => {
2026-10-24T11:08:06.1226129Z                 ~~~~~~~
2026-10-24T11:08:06.1226131Z
2026-10-24T11:08:06.1226431Z 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-24T11:08:06.1226435Z
2026-10-24T11:08:06.1226530Z 209     Effect.catch(() => Effect.succeed(HttpServerResponse.empty())),
2026-10-24T11:08:06.1226573Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1226575Z
2026-10-24T11:08:06.1226901Z 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-24T11:08:06.1226903Z
2026-10-24T11:08:06.1226988Z 860     resolveAvailableEditors: () => cachedAvailableEditors,
2026-10-24T11:08:06.1227033Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1227037Z
2026-10-24T11:08:06.1227371Z 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-24T11:08:06.1227375Z
2026-10-24T11:08:06.1227435Z 861     resolveFileManagerRevealKind: () =>
2026-10-24T11:08:06.1227481Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1227483Z
2026-10-24T11:08:06.1227792Z 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-24T11:08:06.1227796Z
2026-10-24T11:08:06.1227845Z 865     launchBrowser: (target) =>
2026-10-24T11:08:06.1227888Z         ~~~~~~~~~~~~~
2026-10-24T11:08:06.1227890Z
2026-10-24T11:08:06.1228197Z 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-24T11:08:06.1228199Z
2026-10-24T11:08:06.1228251Z 869     launchEditor: (input) =>
2026-10-24T11:08:06.1228293Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1228295Z
2026-10-24T11:08:06.1228545Z src/project/AgentSessionImporter.test.ts:212:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1228547Z
2026-10-24T11:08:06.1228595Z 212               Effect.succeed(
2026-10-24T11:08:06.1228639Z                   ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1228641Z
2026-10-24T11:08:06.1228879Z src/project/ManagedProjectFolders.ts:346:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1228881Z
2026-10-24T11:08:06.1228964Z 346           ? Effect.succeed(Option.some(folderFor(id.slice(-8))))
2026-10-24T11:08:06.1229060Z                 ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1229062Z
2026-10-24T11:08:06.1229300Z src/project/ManagedProjectFolders.ts:348:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1229350Z
2026-10-24T11:08:06.1229421Z 348             ? Effect.succeed(Option.some(fullFolder))
2026-10-24T11:08:06.1231035Z                   ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1231038Z
2026-10-24T11:08:06.1231371Z 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-24T11:08:06.1231374Z
2026-10-24T11:08:06.1231454Z 432     start: (input, hooks) => locked(start(input, hooks)),
2026-10-24T11:08:06.1231497Z         ~~~~~
2026-10-24T11:08:06.1231499Z
2026-10-24T11:08:06.1231820Z 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-24T11:08:06.1231824Z
2026-10-24T11:08:06.1231895Z 433     cancel: (projectId) => locked(cancel(projectId)),
2026-10-24T11:08:06.1231938Z         ~~~~~~
2026-10-24T11:08:06.1231941Z
2026-10-24T11:08:06.1232253Z 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-24T11:08:06.1232255Z
2026-10-24T11:08:06.1232324Z 434     retry: (projectId) => locked(retry(projectId)),
2026-10-24T11:08:06.1232366Z         ~~~~~
2026-10-24T11:08:06.1232368Z
2026-10-24T11:08:06.1232682Z 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-24T11:08:06.1232684Z
2026-10-24T11:08:06.1232759Z 435     discard: (projectId) => locked(discard(projectId)),
2026-10-24T11:08:06.1232803Z         ~~~~~~~
2026-10-24T11:08:06.1232806Z
2026-10-24T11:08:06.1233141Z 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-24T11:08:06.1233143Z
2026-10-24T11:08:06.1233244Z 21         get: (key) => Effect.sync(() => Option.fromUndefinedOr(bytes.get(key))),
2026-10-24T11:08:06.1233285Z            ~~~
2026-10-24T11:08:06.1233287Z
2026-10-24T11:08:06.1233626Z 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-24T11:08:06.1233628Z
2026-10-24T11:08:06.1233677Z 22         set: (key, value) =>
2026-10-24T11:08:06.1233718Z            ~~~
2026-10-24T11:08:06.1233720Z
2026-10-24T11:08:06.1234054Z 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-24T11:08:06.1234059Z
2026-10-24T11:08:06.1234106Z 26         remove: (key) =>
2026-10-24T11:08:06.1234149Z            ~~~~~~
2026-10-24T11:08:06.1234152Z
2026-10-24T11:08:06.1234486Z 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-24T11:08:06.1234488Z
2026-10-24T11:08:06.1234587Z 30         create: () => Effect.die("Handoff does not create persistent secrets."),
2026-10-24T11:08:06.1234627Z            ~~~~~~
2026-10-24T11:08:06.1234629Z
2026-10-24T11:08:06.1235045Z 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-24T11:08:06.1235084Z
2026-10-24T11:08:06.1235214Z 31         getOrCreateRandom: () => Effect.die("Handoff uses the destination environment identity."),
2026-10-24T11:08:06.1235262Z            ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1235264Z
2026-10-24T11:08:06.1235683Z 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-24T11:08:06.1235685Z
2026-10-24T11:08:06.1235797Z 205     return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(
2026-10-24T11:08:06.1235849Z                              ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1235853Z
2026-10-24T11:08:06.1236125Z 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-24T11:08:06.1236129Z
2026-10-24T11:08:06.1236182Z 569         ? Effect.succeed(undefined)
2026-10-24T11:08:06.1236229Z               ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1236231Z
2026-10-24T11:08:06.1236551Z 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-24T11:08:06.1236554Z
2026-10-24T11:08:06.1236604Z 284       current: (driverKind) =>
2026-10-24T11:08:06.1236645Z           ~~~~~~~
2026-10-24T11:08:06.1236648Z
2026-10-24T11:08:06.1237017Z 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-24T11:08:06.1237019Z
2026-10-24T11:08:06.1237078Z 284                 return yield* Effect.fail(
2026-10-24T11:08:06.1237123Z                            ~~~~~
2026-10-24T11:08:06.1237125Z
2026-10-24T11:08:06.1237450Z 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-24T11:08:06.1237452Z
2026-10-24T11:08:06.1237504Z 211     importProfile: (input) =>
2026-10-24T11:08:06.1237546Z         ~~~~~~~~~~~~~
2026-10-24T11:08:06.1237548Z
2026-10-24T11:08:06.1237899Z 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-24T11:08:06.1237903Z
2026-10-24T11:08:06.1237963Z 39       credentials: (namespace, bindingId) =>
2026-10-24T11:08:06.1238006Z          ~~~~~~~~~~~
2026-10-24T11:08:06.1238010Z
2026-10-24T11:08:06.1238386Z 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-24T11:08:06.1238389Z
2026-10-24T11:08:06.1238441Z 2933       Effect.catchCause((cause) =>
2026-10-24T11:08:06.1238486Z            ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1238488Z
2026-10-24T11:08:06.1238856Z 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-24T11:08:06.1238858Z
2026-10-24T11:08:06.1238910Z 3336       Effect.catchCause((cause) =>
2026-10-24T11:08:06.1239000Z            ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1239002Z
2026-10-24T11:08:06.1239323Z 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-24T11:08:06.1239380Z
2026-10-24T11:08:06.1239431Z 3556     listStats: (input) =>
2026-10-24T11:08:06.1239471Z          ~~~~~~~~~
2026-10-24T11:08:06.1239474Z
2026-10-24T11:08:06.1239716Z src/relay/AgentAwarenessRelay.test.ts:271:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T11:08:06.1239719Z
2026-10-24T11:08:06.1239766Z 271         Effect.succeed(
2026-10-24T11:08:06.1239811Z             ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1239813Z
2026-10-24T11:08:06.1240157Z 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-24T11:08:06.1240161Z
2026-10-24T11:08:06.1240283Z 822     requestCatchUp: () => Queue.offer(catchUpRequests, undefined).pipe(Effect.asVoid),
2026-10-24T11:08:06.1240329Z         ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1240331Z
2026-10-24T11:08:06.1240717Z 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-24T11:08:06.1240719Z
2026-10-24T11:08:06.1240780Z 641     requestDesktopUpdate: (requestId) =>
2026-10-24T11:08:06.1240823Z         ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1240826Z
2026-10-24T11:08:06.1241204Z 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-24T11:08:06.1241206Z
2026-10-24T11:08:06.1241264Z 647     commitDesktopUpdate: (requestId) =>
2026-10-24T11:08:06.1241310Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1241312Z
2026-10-24T11:08:06.1241686Z 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-24T11:08:06.1241688Z
2026-10-24T11:08:06.1241744Z 649     cancelDesktopUpdate: (requestId) =>
2026-10-24T11:08:06.1241788Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1241790Z
2026-10-24T11:08:06.1242155Z 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-24T11:08:06.1242159Z
2026-10-24T11:08:06.1242223Z 698       setDiagnosticsDemand: () => Effect.void,
2026-10-24T11:08:06.1242269Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1242273Z
2026-10-24T11:08:06.1242636Z 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-24T11:08:06.1242639Z
2026-10-24T11:08:06.1242701Z 699       requestDesktopUpdate: () => Effect.void,
2026-10-24T11:08:06.1242745Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1242747Z
2026-10-24T11:08:06.1243108Z 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-24T11:08:06.1243110Z
2026-10-24T11:08:06.1243220Z 700       commitDesktopUpdate: () => Effect.void,
2026-10-24T11:08:06.1243265Z           ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1243267Z
2026-10-24T11:08:06.1243629Z 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-24T11:08:06.1243685Z
2026-10-24T11:08:06.1243747Z 701       cancelDesktopUpdate: () => Effect.void,
2026-10-24T11:08:06.1243792Z           ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1243794Z
2026-10-24T11:08:06.1244130Z 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-24T11:08:06.1244132Z
2026-10-24T11:08:06.1244178Z 1091       readHistory: () =>
2026-10-24T11:08:06.1244220Z            ~~~~~~~~~~~
2026-10-24T11:08:06.1244223Z
2026-10-24T11:08:06.1244578Z 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-24T11:08:06.1244582Z
2026-10-24T11:08:06.1244645Z 1097       setExternalProcesses: () => Effect.void,
2026-10-24T11:08:06.1244690Z            ~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1244692Z
2026-10-24T11:08:06.1245038Z 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-24T11:08:06.1245040Z
2026-10-24T11:08:06.1245101Z 1098       setHostPowerState: () => Effect.void,
2026-10-24T11:08:06.1245145Z            ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1245148Z
2026-10-24T11:08:06.1245530Z 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-24T11:08:06.1245533Z
2026-10-24T11:08:06.1245603Z 1136                             ? Effect.succeed(undefined)
2026-10-24T11:08:06.1245660Z                                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1245663Z
2026-10-24T11:08:06.1245945Z 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-24T11:08:06.1245948Z
2026-10-24T11:08:06.1246005Z 166       const results = yield* Effect.all(
2026-10-24T11:08:06.1246056Z                                  ~~~~~~~~~~
2026-10-24T11:08:06.1246058Z
2026-10-24T11:08:06.1246422Z src/server.ts:482: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-24T11:08:06.1246425Z
2026-10-24T11:08:06.1246478Z 482     return Effect.gen(function* () {
2026-10-24T11:08:06.1246522Z         ~~~~~~
2026-10-24T11:08:06.1246524Z
2026-10-24T11:08:06.1246802Z 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-24T11:08:06.1246804Z
2026-10-24T11:08:06.1246873Z 209           prepareTrial: Effect.succeed(undefined),
2026-10-24T11:08:06.1246928Z                             ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1246931Z
2026-10-24T11:08:06.1247198Z 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-24T11:08:06.1247201Z
2026-10-24T11:08:06.1247257Z 413       const results = yield* Effect.all(
2026-10-24T11:08:06.1247372Z                                  ~~~~~~~~~~
2026-10-24T11:08:06.1247375Z
2026-10-24T11:08:06.1247797Z 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-24T11:08:06.1247865Z
2026-10-24T11:08:06.1247919Z 204     listChangeRequests: (input) =>
2026-10-24T11:08:06.1247964Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1247967Z
2026-10-24T11:08:06.1248377Z 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-24T11:08:06.1248379Z
2026-10-24T11:08:06.1248432Z 209     getChangeRequest: (input) =>
2026-10-24T11:08:06.1248478Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1248480Z
2026-10-24T11:08:06.1248893Z 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-24T11:08:06.1248898Z
2026-10-24T11:08:06.1248951Z 214     createChangeRequest: (input) =>
2026-10-24T11:08:06.1248995Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1248997Z
2026-10-24T11:08:06.1249418Z 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-24T11:08:06.1249420Z
2026-10-24T11:08:06.1249480Z 219     getRepositoryCloneUrls: (input) =>
2026-10-24T11:08:06.1249524Z         ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1249526Z
2026-10-24T11:08:06.1249934Z 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-24T11:08:06.1249938Z
2026-10-24T11:08:06.1250068Z 224     createRepository: (input) => provider.createRepository(input),
2026-10-24T11:08:06.1250112Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1250114Z
2026-10-24T11:08:06.1250521Z 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-24T11:08:06.1250523Z
2026-10-24T11:08:06.1250574Z 225     getDefaultBranch: (input) =>
2026-10-24T11:08:06.1250617Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1250619Z
2026-10-24T11:08:06.1251037Z 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-24T11:08:06.1251041Z
2026-10-24T11:08:06.1251099Z 230     checkoutChangeRequest: (input) =>
2026-10-24T11:08:06.1251145Z         ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1251147Z
2026-10-24T11:08:06.1251506Z 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-24T11:08:06.1251510Z
2026-10-24T11:08:06.1251639Z 345       resolve: (input) => resolveHandle(input).pipe(Effect.map((handle) => handle.provider)),
2026-10-24T11:08:06.1251680Z           ~~~~~~~
2026-10-24T11:08:06.1251683Z
2026-10-24T11:08:06.1252099Z 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-24T11:08:06.1252139Z
2026-10-24T11:08:06.1252192Z 409       Effect.catch((sshError) =>
2026-10-24T11:08:06.1252233Z           ~~~~~~~~~~~~
2026-10-24T11:08:06.1252235Z
2026-10-24T11:08:06.1252619Z 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-24T11:08:06.1252621Z
2026-10-24T11:08:06.1252672Z 556     lookupRepository: (input) =>
2026-10-24T11:08:06.1252716Z         ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1252718Z
2026-10-24T11:08:06.1253095Z 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-24T11:08:06.1253098Z
2026-10-24T11:08:06.1253148Z 558     prepareClone: (input) =>
2026-10-24T11:08:06.1253192Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1253194Z
2026-10-24T11:08:06.1253587Z 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-24T11:08:06.1253589Z
2026-10-24T11:08:06.1253649Z 565     cloneRepository: (input, options) =>
2026-10-24T11:08:06.1253694Z         ~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1253696Z
2026-10-24T11:08:06.1254084Z 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-24T11:08:06.1254088Z
2026-10-24T11:08:06.1254143Z 572     discardClone: (destinationPath) =>
2026-10-24T11:08:06.1254184Z         ~~~~~~~~~~~~
2026-10-24T11:08:06.1254188Z
2026-10-24T11:08:06.1254569Z 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-24T11:08:06.1254571Z
2026-10-24T11:08:06.1254626Z 576     publishRepository: (input) =>
2026-10-24T11:08:06.1254670Z         ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1254672Z
2026-10-24T11:08:06.1255001Z 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-24T11:08:06.1255003Z
2026-10-24T11:08:06.1255055Z 708       return yield* Effect.fail(
2026-10-24T11:08:06.1255097Z                  ~~~~~
2026-10-24T11:08:06.1255099Z
2026-10-24T11:08:06.1255391Z 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-24T11:08:06.1255395Z
2026-10-24T11:08:06.1255443Z 113       record: () => Effect.void,
2026-10-24T11:08:06.1255486Z           ~~~~~~
2026-10-24T11:08:06.1255488Z
2026-10-24T11:08:06.1255789Z 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-24T11:08:06.1255792Z
2026-10-24T11:08:06.1255846Z 115       recordOwners: () => Effect.void,
2026-10-24T11:08:06.1255886Z           ~~~~~~~~~~~~
2026-10-24T11:08:06.1255890Z
2026-10-24T11:08:06.1256258Z 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-24T11:08:06.1256292Z
2026-10-24T11:08:06.1256438Z 329   yield* Effect.forever(Effect.sleep(FLUSH_INTERVAL_MS).pipe(Effect.flatMap(() => flushWhenDue)), {
2026-10-24T11:08:06.1256508Z                                                                  ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1256510Z
2026-10-24T11:08:06.1256790Z 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-24T11:08:06.1256792Z
2026-10-24T11:08:06.1256853Z 90       .pipe(Effect.catch(() => Effect.void));
2026-10-24T11:08:06.1256897Z                ~~~~~~~~~~~~
2026-10-24T11:08:06.1256899Z
2026-10-24T11:08:06.1257230Z 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-24T11:08:06.1257233Z
2026-10-24T11:08:06.1257288Z 60     generateCommitMessage: (input) =>
2026-10-24T11:08:06.1257335Z        ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1257337Z
2026-10-24T11:08:06.1257653Z 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-24T11:08:06.1257657Z
2026-10-24T11:08:06.1257707Z 64     generatePrContent: (input) =>
2026-10-24T11:08:06.1257751Z        ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1257753Z
2026-10-24T11:08:06.1258071Z 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-24T11:08:06.1258073Z
2026-10-24T11:08:06.1258128Z 68     generateBranchName: (input) =>
2026-10-24T11:08:06.1258172Z        ~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1258174Z
2026-10-24T11:08:06.1258495Z 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-24T11:08:06.1258499Z
2026-10-24T11:08:06.1258553Z 72     generateReviewGuide: (input) =>
2026-10-24T11:08:06.1258597Z        ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1258600Z
2026-10-24T11:08:06.1258921Z 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-24T11:08:06.1258923Z
2026-10-24T11:08:06.1258975Z 76     generateThreadTitle: (input) =>
2026-10-24T11:08:06.1259019Z        ~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1259021Z
2026-10-24T11:08:06.1259310Z 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-24T11:08:06.1259313Z
2026-10-24T11:08:06.1259363Z 172     readSummary: (input) =>
2026-10-24T11:08:06.1259405Z         ~~~~~~~~~~~
2026-10-24T11:08:06.1259408Z
2026-10-24T11:08:06.1259653Z 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-24T11:08:06.1259656Z
2026-10-24T11:08:06.1259713Z 642         usageInstances(driver, settings)
2026-10-24T11:08:06.1259763Z             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1259806Z 643           .pipe(
2026-10-24T11:08:06.1259847Z     ~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1259887Z ...
2026-10-24T11:08:06.1259955Z 664             Effect.provideContext(readerContext),
2026-10-24T11:08:06.1260089Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1260132Z 665           ),
2026-10-24T11:08:06.1260173Z     ~~~~~~~~~~~
2026-10-24T11:08:06.1260212Z
2026-10-24T11:08:06.1260560Z 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-24T11:08:06.1260563Z
2026-10-24T11:08:06.1260615Z 4009         Effect.flatMap((result) =>
2026-10-24T11:08:06.1260658Z              ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1260660Z
2026-10-24T11:08:06.1260999Z 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-24T11:08:06.1261001Z
2026-10-24T11:08:06.1261063Z 4500     commit: (cwd, subject, body, options) =>
2026-10-24T11:08:06.1261106Z          ~~~~~~
2026-10-24T11:08:06.1261109Z
2026-10-24T11:08:06.1261476Z 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-24T11:08:06.1261480Z
2026-10-24T11:08:06.1261561Z 4502     pushCurrentBranch: (cwd, fallbackBranch, options) =>
2026-10-24T11:08:06.1261607Z          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1261609Z
2026-10-24T11:08:06.1261935Z 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-24T11:08:06.1261937Z
2026-10-24T11:08:06.1262066Z 4504     pullCurrentBranch: (cwd) => withListRefsInvalidation(cwd, pullCurrentBranch(cwd)),
2026-10-24T11:08:06.1262111Z          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1262115Z
2026-10-24T11:08:06.1262449Z 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-24T11:08:06.1262453Z
2026-10-24T11:08:06.1262511Z 4511     createWorktree: (input, options) =>
2026-10-24T11:08:06.1262554Z          ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1262556Z
2026-10-24T11:08:06.1262893Z 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-24T11:08:06.1262896Z
2026-10-24T11:08:06.1262953Z 4513     fetchPullRequestBranch: (input) =>
2026-10-24T11:08:06.1262998Z          ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1263000Z
2026-10-24T11:08:06.1263340Z 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-24T11:08:06.1263344Z
2026-10-24T11:08:06.1263404Z 4517     refreshCheckedOutBranch: (input) =>
2026-10-24T11:08:06.1263452Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1263454Z
2026-10-24T11:08:06.1263770Z 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-24T11:08:06.1263774Z
2026-10-24T11:08:06.1263896Z 4519     ensureRemote: (input) => withListRefsInvalidation(input.cwd, ensureRemote(input)),
2026-10-24T11:08:06.1263939Z          ~~~~~~~~~~~~
2026-10-24T11:08:06.1263941Z
2026-10-24T11:08:06.1264308Z 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-24T11:08:06.1264311Z
2026-10-24T11:08:06.1264362Z 4522     fetchRemote: (input) =>
2026-10-24T11:08:06.1264455Z          ~~~~~~~~~~~
2026-10-24T11:08:06.1264457Z
2026-10-24T11:08:06.1264798Z 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-24T11:08:06.1264800Z
2026-10-24T11:08:06.1264859Z 4537     fetchWorktreeBaseCommit: (input) =>
2026-10-24T11:08:06.1264904Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1264906Z
2026-10-24T11:08:06.1265233Z 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-24T11:08:06.1265235Z
2026-10-24T11:08:06.1265376Z 4539     fetchRemoteBranch: (input) => withListRefsInvalidation(input.cwd, fetchRemoteBranch(input)),
2026-10-24T11:08:06.1265421Z          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1265424Z
2026-10-24T11:08:06.1265771Z 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-24T11:08:06.1265773Z
2026-10-24T11:08:06.1265835Z 4540     fetchRemoteTrackingBranch: (input) =>
2026-10-24T11:08:06.1265882Z          ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1265884Z
2026-10-24T11:08:06.1266209Z 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-24T11:08:06.1266213Z
2026-10-24T11:08:06.1266352Z 4542     setBranchUpstream: (input) => withListRefsInvalidation(input.cwd, setBranchUpstream(input)),
2026-10-24T11:08:06.1266396Z          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1266398Z
2026-10-24T11:08:06.1266720Z 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-24T11:08:06.1266724Z
2026-10-24T11:08:06.1266855Z 4543     removeWorktree: (input) => withListRefsInvalidation(input.cwd, removeWorktree(input)),
2026-10-24T11:08:06.1266896Z          ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1266899Z
2026-10-24T11:08:06.1267221Z 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-24T11:08:06.1267223Z
2026-10-24T11:08:06.1267352Z 4544     pruneWorktrees: (input) => withListRefsInvalidation(input.cwd, pruneWorktrees(input)),
2026-10-24T11:08:06.1267394Z          ~~~~~~~~~~~~~~
2026-10-24T11:08:06.1267397Z
2026-10-24T11:08:06.1267726Z 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-24T11:08:06.1267730Z
2026-10-24T11:08:06.1267866Z 4545     deleteLocalBranch: (input) => withListRefsInvalidation(input.cwd, deleteLocalBranch(input)),
2026-10-24T11:08:06.1267910Z          ~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1267912Z
2026-10-24T11:08:06.1268233Z 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-24T11:08:06.1268235Z
2026-10-24T11:08:06.1268355Z 4546     renameBranch: (input) => withListRefsInvalidation(input.cwd, renameBranch(input)),
2026-10-24T11:08:06.1268447Z          ~~~~~~~~~~~~
2026-10-24T11:08:06.1268450Z
2026-10-24T11:08:06.1268764Z 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-24T11:08:06.1268832Z
2026-10-24T11:08:06.1268942Z 4547     createRef: (input) => withListRefsInvalidation(input.cwd, createRef(input)),
2026-10-24T11:08:06.1268984Z          ~~~~~~~~~
2026-10-24T11:08:06.1268986Z
2026-10-24T11:08:06.1269298Z 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-24T11:08:06.1269300Z
2026-10-24T11:08:06.1269408Z 4548     switchRef: (input) => withListRefsInvalidation(input.cwd, switchRef(input)),
2026-10-24T11:08:06.1269449Z          ~~~~~~~~~
2026-10-24T11:08:06.1269451Z
2026-10-24T11:08:06.1269846Z 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-24T11:08:06.1269850Z
2026-10-24T11:08:06.1269918Z 153     return serverSettings.getSettings.pipe(
2026-10-24T11:08:06.1269961Z         ~~~~~~
2026-10-24T11:08:06.1269963Z
2026-10-24T11:08:06.1270299Z 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-24T11:08:06.1270302Z
2026-10-24T11:08:06.1270383Z 171       }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-24T11:08:06.1270429Z                   ~~~~~~~~~~~~
2026-10-24T11:08:06.1270431Z
2026-10-24T11:08:06.1270715Z 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-24T11:08:06.1270717Z
2026-10-24T11:08:06.1270799Z 171       }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-24T11:08:06.1270859Z                                      ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1270861Z
2026-10-24T11:08:06.1271102Z 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-24T11:08:06.1271105Z
2026-10-24T11:08:06.1271206Z 401           resolveFileManagerRevealKind: () => Effect.succeed(undefined),
2026-10-24T11:08:06.1271270Z                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T11:08:06.1271273Z
2026-10-24T11:08:06.1271559Z 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-24T11:08:06.1271562Z
2026-10-24T11:08:06.1271624Z 1384         return yield* Option.match(project, {
2026-10-24T11:08:06.1271671Z                            ~~~~~~~~~~~~
2026-10-24T11:08:06.1271674Z
2026-10-24T11:08:06.1271981Z 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-24T11:08:06.1271984Z
2026-10-24T11:08:06.1272040Z 2319                 return yield* Effect.fail(
2026-10-24T11:08:06.1272087Z                             ~~~~~
2026-10-24T11:08:06.1272089Z
2026-10-24T11:08:06.1272391Z 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-24T11:08:06.1272393Z
2026-10-24T11:08:06.1272499Z 2328                 return yield* Effect.fail(
2026-10-24T11:08:06.1272545Z                             ~~~~~
2026-10-24T11:08:06.1272547Z
2026-10-24T11:08:06.1272881Z 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-24T11:08:06.1272883Z
2026-10-24T11:08:06.1272939Z 2336                 return yield* Effect.fail(
2026-10-24T11:08:06.1272983Z                             ~~~~~
2026-10-24T11:08:06.1272987Z
2026-10-24T11:08:06.1272989Z
2026-10-24T11:08:06.1273028Z ---
2026-10-24T11:08:06.1273305Z 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-24T11:08:06.1758001Z Post job cleanup.
2026-10-24T11:08:06.2400071Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-24T11:08:06.2471904Z Post job cleanup.
2026-10-24T11:08:06.2484537Z ##[start-action display=Cache full pnpm store;id=__9ab0a23e-8c7d-41d1-b27b-5a8c26160b60.__actions_cache]
2026-10-24T11:08:06.2799251Z Post job cleanup.
2026-10-24T11:08:06.3439470Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-8600a8d4a7fcc9519d421cef0c77201c793c5d8afbbef2897636b5b9305a9b7d, not saving cache.
2026-10-24T11:08:06.3478871Z ##[end-action id=__9ab0a23e-8c7d-41d1-b27b-5a8c26160b60.__actions_cache;outcome=success;conclusion=success;duration_ms=99]
2026-10-24T11:08:06.3480663Z ##[start-action display=Cache Vite+;id=__9ab0a23e-8c7d-41d1-b27b-5a8c26160b60.vp_cache]
2026-10-24T11:08:06.3501841Z Post job cleanup.
2026-10-24T11:08:06.4097058Z 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-24T11:08:06.4143199Z ##[end-action id=__9ab0a23e-8c7d-41d1-b27b-5a8c26160b60.vp_cache;outcome=success;conclusion=success;duration_ms=66]
2026-10-24T11:08:06.4209703Z Post job cleanup.
2026-10-24T11:08:06.4638683Z [command]/usr/local/bin/git version
2026-10-24T11:08:06.4693302Z git version 2.55.0
2026-10-24T11:08:06.4710947Z Temporarily overriding HOME='/home/runner/_work/_temp/0f425984-5362-44d3-89b4-3cb1f8a95518' before making global git config changes
2026-10-24T11:08:06.4711147Z Adding repository directory to the temporary git global config as a safe directory
2026-10-24T11:08:06.4714107Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-24T11:08:06.4753595Z Removing SSH command configuration
2026-10-24T11:08:06.4756984Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-24T11:08:06.4792766Z [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-24T11:08:06.4946106Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-24T11:08:06.4977676Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-24T11:08:06.5023254Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-24T11:08:06.5044522Z ##[group]Run '/job_completed.sh'
2026-10-24T11:08:06.5058052Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-24T11:08:06.5058096Z env:
2026-10-24T11:08:06.5058164Z   BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 153
2026-10-24T11:08:06.5058225Z   BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 402
2026-10-24T11:08:06.5058282Z   BLACKSMITH_CHECK_RUN_ID: 120856260525
2026-10-24T11:08:06.5058354Z   BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck
2026-10-24T11:08:06.5058408Z   GITHUB_ACTIONS_CACHE_MODE: write
2026-10-24T11:08:06.5058461Z ##[endgroup]
2026-10-24T11:08:06.5142805Z Docker container cache not activated, skipping hash computation.
2026-10-24T11:08:06.5433916Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-24T11:08:06.5481112Z Cleaning up orphan processes