GitHub check

256 KB of 527 KB loaded Download the full log (527 KB)
271 KB of earlier output not loaded
... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9675111Z
2026-10-24T03:18:41.9675169Z 2348     listLabelCandidates: (input) => {
2026-10-24T03:18:41.9675362Z          ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9675459Z
2026-10-24T03:18:41.9675784Z src/server/GitHubPullRequestApi.ts:2360:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.listRepositoryLabels")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9676148Z
2026-10-24T03:18:41.9676205Z 2360     listRepositoryLabels: (input) => {
2026-10-24T03:18:41.9676343Z          ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9676418Z
2026-10-24T03:18:41.9676754Z src/server/GitHubPullRequestApi.ts:2372:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.searchRepositoryAuthors")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9677131Z
2026-10-24T03:18:41.9677193Z 2372     searchRepositoryAuthors: (input) => {
2026-10-24T03:18:41.9677338Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9677414Z
2026-10-24T03:18:41.9677726Z src/server/GitHubPullRequestApi.ts:2384:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setLabels")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9678076Z
2026-10-24T03:18:41.9678125Z 2384     setLabels: (input) => {
2026-10-24T03:18:41.9678243Z          ~~~~~~~~~
2026-10-24T03:18:41.9678304Z
2026-10-24T03:18:41.9678631Z src/server/GitHubPullRequestApi.ts:2411:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.runPullRequestAction")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9679000Z
2026-10-24T03:18:41.9679057Z 2411     runPullRequestAction: (input) => {
2026-10-24T03:18:41.9679195Z          ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9679267Z
2026-10-24T03:18:41.9679601Z src/server/GitHubPullRequestApi.ts:2670:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.commentOnPullRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9679973Z
2026-10-24T03:18:41.9680028Z 2670     commentOnPullRequest: (input) =>
2026-10-24T03:18:41.9680169Z          ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9680245Z
2026-10-24T03:18:41.9680563Z src/server/GitHubPullRequestApi.ts:2680:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.submitReview")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9680920Z
2026-10-24T03:18:41.9680970Z 2680     submitReview: (input) => {
2026-10-24T03:18:41.9681096Z          ~~~~~~~~~~~~
2026-10-24T03:18:41.9681163Z
2026-10-24T03:18:41.9681490Z src/server/GitHubPullRequestApi.ts:2697:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.replyToReviewThread")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9681860Z
2026-10-24T03:18:41.9681917Z 2697     replyToReviewThread: (input) =>
2026-10-24T03:18:41.9682050Z          ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9682124Z
2026-10-24T03:18:41.9682464Z src/server/GitHubPullRequestApi.ts:2702:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getPullRequestFilesViewed")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9682847Z
2026-10-24T03:18:41.9682910Z 2702     getPullRequestFilesViewed: (input) => {
2026-10-24T03:18:41.9683063Z          ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9683142Z
2026-10-24T03:18:41.9683533Z src/server/GitHubPullRequestApi.ts:2730:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.getPullRequestFileStats")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9683906Z
2026-10-24T03:18:41.9683968Z 2730     getPullRequestFileStats: (input) => {
2026-10-24T03:18:41.9684110Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9684234Z
2026-10-24T03:18:41.9684572Z src/server/GitHubPullRequestApi.ts:2758:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setPullRequestFilesViewed")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9684951Z
2026-10-24T03:18:41.9685015Z 2758     setPullRequestFilesViewed: (input) => {
2026-10-24T03:18:41.9685158Z          ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9685238Z
2026-10-24T03:18:41.9685597Z src/server/GitHubPullRequestApi.ts:2779:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setReviewThreadResolution")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9685975Z
2026-10-24T03:18:41.9686037Z 2779     setReviewThreadResolution: (input) =>
2026-10-24T03:18:41.9686183Z          ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9686260Z
2026-10-24T03:18:41.9686574Z src/server/GitHubPullRequestApi.ts:2785:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.setReaction")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9686927Z
2026-10-24T03:18:41.9686976Z 2785     setReaction: (input) => {
2026-10-24T03:18:41.9687096Z          ~~~~~~~~~~~
2026-10-24T03:18:41.9687161Z
2026-10-24T03:18:41.9687483Z src/server/GitHubPullRequestApi.ts:2818:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.updatePullRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9687844Z
2026-10-24T03:18:41.9687899Z 2818     updatePullRequest: (input) =>
2026-10-24T03:18:41.9688037Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9688105Z
2026-10-24T03:18:41.9688419Z src/server/GitHubPullRequestApi.ts:2834:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitHubPullRequestApi.updateComment")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9688772Z
2026-10-24T03:18:41.9688823Z 2834     updateComment: (input) =>
2026-10-24T03:18:41.9688943Z          ~~~~~~~~~~~~~
2026-10-24T03:18:41.9689008Z
2026-10-24T03:18:41.9689401Z src/server/GitHubSourceControlProvider.ts:894:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.readChangeRequestTemplate")((_) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9689831Z
2026-10-24T03:18:41.9689904Z 894     readChangeRequestTemplate: ({ cwd, treeish }) =>
2026-10-24T03:18:41.9690182Z         ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9690259Z
2026-10-24T03:18:41.9690641Z src/server/GitHubSourceControlProvider.ts:905:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9691066Z
2026-10-24T03:18:41.9691121Z 905     listChangeRequests: (input) =>
2026-10-24T03:18:41.9691250Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9691320Z
2026-10-24T03:18:41.9691701Z src/server/GitHubSourceControlProvider.ts:923:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9692127Z
2026-10-24T03:18:41.9692178Z 923     getChangeRequest: (input) =>
2026-10-24T03:18:41.9692307Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9692374Z
2026-10-24T03:18:41.9692833Z src/server/GitHubSourceControlProvider.ts:1036:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9693261Z
2026-10-24T03:18:41.9693372Z 1036     checkoutChangeRequest: (input) =>
2026-10-24T03:18:41.9693507Z          ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9693582Z
2026-10-24T03:18:41.9693920Z src/server/gitHubGraphQlClient.ts:118:12 - 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-24T03:18:41.9694292Z
2026-10-24T03:18:41.9694344Z 118     return yield* Effect.fail(error);
2026-10-24T03:18:41.9694476Z                ~~~~~
2026-10-24T03:18:41.9694541Z
2026-10-24T03:18:41.9694543Z
2026-10-24T03:18:41.9694596Z ~/packages/provider-muse$ tsc --noEmit
2026-10-24T03:18:41.9695067Z 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-24T03:18:41.9695531Z
2026-10-24T03:18:41.9695584Z 340     getChangeRequest: (input) =>
2026-10-24T03:18:41.9695712Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9695781Z
2026-10-24T03:18:41.9695782Z
2026-10-24T03:18:41.9695839Z ~/packages/provider-opencode$ tsc --noEmit
2026-10-24T03:18:41.9696250Z 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-24T03:18:41.9696602Z
2026-10-24T03:18:41.9696699Z 440     getCapabilities: () => Effect.succeed(PiProviderCapabilitiesV2),
2026-10-24T03:18:41.9696877Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9696944Z
2026-10-24T03:18:41.9697275Z 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-24T03:18:41.9697638Z
2026-10-24T03:18:41.9697761Z 441     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T03:18:41.9697971Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9698045Z
2026-10-24T03:18:41.9698266Z src/server/adapter.ts:1694:31 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9698517Z
2026-10-24T03:18:41.9698586Z 1694                               Effect.map(Option.some),
2026-10-24T03:18:41.9698743Z                                    ~~~~~~~~~~
2026-10-24T03:18:41.9698834Z
2026-10-24T03:18:41.9699049Z src/server/adapter.ts:1697:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9699301Z
2026-10-24T03:18:41.9699373Z 1697                           : Effect.succeed(Option.none()),
2026-10-24T03:18:41.9699537Z                                  ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9699628Z
2026-10-24T03:18:41.9699876Z 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-24T03:18:41.9700162Z
2026-10-24T03:18:41.9700214Z 334       onSuccess: () =>
2026-10-24T03:18:41.9700326Z           ~~~~~~~~~
2026-10-24T03:18:41.9700388Z
2026-10-24T03:18:41.9700596Z src/server/rpc.ts:342:17 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9700837Z
2026-10-24T03:18:41.9700894Z 342                 Effect.map(Option.some),
2026-10-24T03:18:41.9701034Z                     ~~~~~~~~~~
2026-10-24T03:18:41.9701107Z
2026-10-24T03:18:41.9701109Z
2026-10-24T03:18:41.9701212Z ~/packages/provider-cursor$ tsc --noEmit
2026-10-24T03:18:41.9701622Z 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-24T03:18:41.9702022Z
2026-10-24T03:18:41.9702120Z 284     getCapabilities: () => Effect.succeed(MuseProviderCapabilitiesV2),
2026-10-24T03:18:41.9702303Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9702368Z
2026-10-24T03:18:41.9702694Z 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-24T03:18:41.9703062Z
2026-10-24T03:18:41.9703181Z 285     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T03:18:41.9703388Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9703465Z
2026-10-24T03:18:41.9703735Z 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-24T03:18:41.9704038Z
2026-10-24T03:18:41.9704088Z 388             TimeoutError: (cause) =>
2026-10-24T03:18:41.9704225Z                 ~~~~~~~~~~~~
2026-10-24T03:18:41.9704295Z
2026-10-24T03:18:41.9704508Z src/server/adapter.ts:1366:35 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9704759Z
2026-10-24T03:18:41.9704885Z 1366                   wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-24T03:18:41.9705097Z                                        ~~~~~~~~~~
2026-10-24T03:18:41.9705191Z
2026-10-24T03:18:41.9705439Z src/server/adapter.ts:1366:71 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9705687Z
2026-10-24T03:18:41.9705806Z 1366                   wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-24T03:18:41.9706037Z                                                                            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9706152Z
2026-10-24T03:18:41.9706154Z
2026-10-24T03:18:41.9706207Z ~/packages/provider-grok$ tsc --noEmit
2026-10-24T03:18:41.9706576Z 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-24T03:18:41.9706893Z
2026-10-24T03:18:41.9706946Z 147     return Effect.succeed(undefined);
2026-10-24T03:18:41.9707084Z                ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9707167Z
2026-10-24T03:18:41.9707565Z 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-24T03:18:41.9707994Z
2026-10-24T03:18:41.9708056Z 188       if (!recordable) return Effect.void;
2026-10-24T03:18:41.9708198Z                            ~~~~~~
2026-10-24T03:18:41.9708278Z
2026-10-24T03:18:41.9708661Z 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-24T03:18:41.9709084Z
2026-10-24T03:18:41.9709134Z 208         return Effect.void;
2026-10-24T03:18:41.9709249Z             ~~~~~~
2026-10-24T03:18:41.9709312Z
2026-10-24T03:18:41.9709740Z 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-24T03:18:41.9710156Z
2026-10-24T03:18:41.9710201Z 228       return fs
2026-10-24T03:18:41.9710305Z           ~~~~~~
2026-10-24T03:18:41.9710409Z
2026-10-24T03:18:41.9710703Z 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-24T03:18:41.9711039Z
2026-10-24T03:18:41.9711145Z 311   OpenCodeServerLedger.of({ track: () => Effect.succeed(Effect.void) }),
2026-10-24T03:18:41.9711336Z                                 ~~~~~
2026-10-24T03:18:41.9711421Z
2026-10-24T03:18:41.9711728Z 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-24T03:18:41.9712077Z
2026-10-24T03:18:41.9712127Z 169     withServer: (use) =>
2026-10-24T03:18:41.9712243Z         ~~~~~~~~~~
2026-10-24T03:18:41.9712300Z
2026-10-24T03:18:41.9712685Z 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-24T03:18:41.9713110Z
2026-10-24T03:18:41.9713226Z 103 const OPENCODE_TEST_SETTINGS = Schema.decodeUnknownSync(OpenCodeSettings)({});
2026-10-24T03:18:41.9713436Z                                           ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9713535Z
2026-10-24T03:18:41.9713852Z 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-24T03:18:41.9714206Z
2026-10-24T03:18:41.9714314Z 938     getCapabilities: () => Effect.succeed(OpenCodeProviderCapabilitiesV2),
2026-10-24T03:18:41.9714505Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9714572Z
2026-10-24T03:18:41.9714905Z 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-24T03:18:41.9715287Z
2026-10-24T03:18:41.9715434Z 939     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T03:18:41.9715636Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9715713Z
2026-10-24T03:18:41.9716002Z 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-24T03:18:41.9716327Z
2026-10-24T03:18:41.9716400Z 1011         const abortController = new AbortController();
2026-10-24T03:18:41.9716572Z                                      ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9716670Z
2026-10-24T03:18:41.9716981Z 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-24T03:18:41.9717339Z
2026-10-24T03:18:41.9717415Z 1088           if (failure) return yield* Effect.fail(failure);
2026-10-24T03:18:41.9717573Z                                    ~~~~~
2026-10-24T03:18:41.9717661Z
2026-10-24T03:18:41.9717933Z 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-24T03:18:41.9718242Z
2026-10-24T03:18:41.9718323Z 1584               Effect.catch(() => Effect.succeed(undefined)),
2026-10-24T03:18:41.9718479Z                    ~~~~~~~~~~~~
2026-10-24T03:18:41.9718553Z
2026-10-24T03:18:41.9718851Z 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-24T03:18:41.9719137Z
2026-10-24T03:18:41.9719258Z 1584               Effect.catch(() => Effect.succeed(undefined)),
2026-10-24T03:18:41.9719426Z                                       ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9719522Z
2026-10-24T03:18:41.9719807Z 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-24T03:18:41.9720127Z
2026-10-24T03:18:41.9720209Z 3194                 admissionAbortController: new AbortController(),
2026-10-24T03:18:41.9720392Z                                                ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9720492Z
2026-10-24T03:18:41.9720775Z 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-24T03:18:41.9721092Z
2026-10-24T03:18:41.9721182Z 3354               turn.admissionAbortController = new AbortController();
2026-10-24T03:18:41.9721374Z                                                    ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9721473Z
2026-10-24T03:18:41.9721758Z 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-24T03:18:41.9722079Z
2026-10-24T03:18:41.9722141Z 158     connect: ({ baseUrl, password }) => {
2026-10-24T03:18:41.9722279Z         ~~~~~~~
2026-10-24T03:18:41.9722340Z
2026-10-24T03:18:41.9722642Z 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-24T03:18:41.9722981Z
2026-10-24T03:18:41.9723031Z 160       withConnection: (use) =>
2026-10-24T03:18:41.9723161Z           ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9723229Z
2026-10-24T03:18:41.9723527Z 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-24T03:18:41.9723864Z
2026-10-24T03:18:41.9723915Z 175     withConnection: (use) =>
2026-10-24T03:18:41.9724036Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9724102Z
2026-10-24T03:18:41.9724321Z src/server/v2/adapter.ts:1544:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9724577Z
2026-10-24T03:18:41.9724698Z 1544           wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-24T03:18:41.9724909Z                               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9724998Z
2026-10-24T03:18:41.9725213Z src/server/v2/adapter.ts:1544:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9725508Z
2026-10-24T03:18:41.9725627Z 1544           wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-24T03:18:41.9725844Z                                                               ~~~~~~~~~~
2026-10-24T03:18:41.9725948Z
2026-10-24T03:18:41.9726272Z 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-24T03:18:41.9726636Z
2026-10-24T03:18:41.9726740Z 4137     getCapabilities: () => Effect.succeed(OpenCode2ProviderCapabilities),
2026-10-24T03:18:41.9732959Z          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9733136Z
2026-10-24T03:18:41.9733477Z 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-24T03:18:41.9733914Z
2026-10-24T03:18:41.9734038Z 4138     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T03:18:41.9734245Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9734325Z
2026-10-24T03:18:41.9734327Z
2026-10-24T03:18:41.9734396Z ~/packages/provider-acp-registry$ tsc --noEmit
2026-10-24T03:18:41.9734843Z 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-24T03:18:41.9735225Z
2026-10-24T03:18:41.9735316Z 31       read: (credentialSource, sinceMs, untilMs) =>
2026-10-24T03:18:41.9735474Z          ~~~~
2026-10-24T03:18:41.9735531Z
2026-10-24T03:18:41.9735816Z 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-24T03:18:41.9736140Z
2026-10-24T03:18:41.9736189Z 82     read: (apiKey) =>
2026-10-24T03:18:41.9736297Z        ~~~~
2026-10-24T03:18:41.9736356Z
2026-10-24T03:18:41.9736640Z 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-24T03:18:41.9736961Z
2026-10-24T03:18:41.9737011Z 360     Effect.catch(() =>
2026-10-24T03:18:41.9737128Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9737192Z
2026-10-24T03:18:41.9737514Z 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-24T03:18:41.9737874Z
2026-10-24T03:18:41.9737979Z 904     getCapabilities: () => Effect.succeed(CursorProviderCapabilitiesV2),
2026-10-24T03:18:41.9738162Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9738231Z
2026-10-24T03:18:41.9738562Z 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-24T03:18:41.9738935Z
2026-10-24T03:18:41.9739057Z 905     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T03:18:41.9739268Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9739343Z
2026-10-24T03:18:41.9739792Z 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-24T03:18:41.9740275Z
2026-10-24T03:18:41.9740325Z 55       Effect.runPromise(
2026-10-24T03:18:41.9740443Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9740517Z
2026-10-24T03:18:41.9740780Z 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-24T03:18:41.9741081Z
2026-10-24T03:18:41.9741146Z 59               onNone: () => Effect.succeed(undefined),
2026-10-24T03:18:41.9741306Z                                ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9741399Z
2026-10-24T03:18:41.9741894Z 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-24T03:18:41.9742366Z
2026-10-24T03:18:41.9742415Z 69       Effect.runPromise(
2026-10-24T03:18:41.9742531Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9742600Z
2026-10-24T03:18:41.9743086Z 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-24T03:18:41.9743566Z
2026-10-24T03:18:41.9743637Z 82     clear: () => Effect.runPromise(credentials.remove),
2026-10-24T03:18:41.9743796Z                     ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9743879Z
2026-10-24T03:18:41.9744207Z 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-24T03:18:41.9744567Z
2026-10-24T03:18:41.9744624Z 228           Effect.flatMap((snapshot) =>
2026-10-24T03:18:41.9744764Z               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9744835Z
2026-10-24T03:18:41.9745030Z src/server/usageLimits.test.ts:74:5 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-24T03:18:41.9745261Z
2026-10-24T03:18:41.9745324Z  74     Effect.gen(function* () {
2026-10-24T03:18:41.9745470Z         ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9745596Z  75       yield* withNodeServices(
2026-10-24T03:18:41.9745727Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9745840Z ...
2026-10-24T03:18:41.9745936Z 115       );
2026-10-24T03:18:41.9746030Z     ~~~~~~~~
2026-10-24T03:18:41.9746127Z 116     }),
2026-10-24T03:18:41.9746220Z     ~~~~~~
2026-10-24T03:18:41.9746276Z
2026-10-24T03:18:41.9746278Z
2026-10-24T03:18:41.9746334Z ~/packages/client-runtime$ tsc --noEmit
2026-10-24T03:18:41.9746752Z 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-24T03:18:41.9747116Z
2026-10-24T03:18:41.9747170Z 174       Effect.flatMap((snapshot) =>
2026-10-24T03:18:41.9747300Z           ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9747369Z
2026-10-24T03:18:41.9747609Z 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-24T03:18:41.9747882Z
2026-10-24T03:18:41.9747950Z 1507       }).pipe(Effect.catch(() => Effect.void));
2026-10-24T03:18:41.9748099Z                    ~~~~~~~~~~~~
2026-10-24T03:18:41.9748172Z
2026-10-24T03:18:41.9748432Z 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-24T03:18:41.9748734Z
2026-10-24T03:18:41.9748799Z 1507       }).pipe(Effect.catch(() => Effect.void));
2026-10-24T03:18:41.9748942Z                    ~~~~~~~~~~~~
2026-10-24T03:18:41.9749017Z
2026-10-24T03:18:41.9749365Z 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-24T03:18:41.9749750Z
2026-10-24T03:18:41.9749809Z 1588             Effect.catchCause((cause) =>
2026-10-24T03:18:41.9749955Z                  ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9750033Z
2026-10-24T03:18:41.9750035Z
2026-10-24T03:18:41.9750294Z src/server/AcpRegistryRuntimeCoordinator.ts:154:52 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9750596Z
2026-10-24T03:18:41.9750782Z 154         return yield* Effect.raceFirst(effect.pipe(Effect.map(Option.some)), foregroundStarted);
2026-10-24T03:18:41.9751016Z                                                        ~~~~~~~~~~
2026-10-24T03:18:41.9751118Z
2026-10-24T03:18:41.9751444Z 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-24T03:18:41.9751861Z
2026-10-24T03:18:41.9751909Z 1301         Effect.catch((error) =>
2026-10-24T03:18:41.9752042Z              ~~~~~~~~~~~~
2026-10-24T03:18:41.9752108Z
2026-10-24T03:18:41.9752402Z 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-24T03:18:41.9752734Z
2026-10-24T03:18:41.9752787Z 146             Option.isSome(result)
2026-10-24T03:18:41.9752916Z                 ~~~~~~~~~~~~~
2026-10-24T03:18:41.9752993Z
2026-10-24T03:18:41.9753247Z 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-24T03:18:41.9753538Z
2026-10-24T03:18:41.9753634Z 640       enrichSnapshot: ({ snapshot, getSnapshot, publishSnapshot }) => {
2026-10-24T03:18:41.9753819Z           ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9753888Z
2026-10-24T03:18:41.9754098Z src/server/driver.ts:650:51 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9754348Z
2026-10-24T03:18:41.9754447Z 650             : enrichProviderCached(snapshot).pipe(Effect.map(Option.some))
2026-10-24T03:18:41.9754642Z                                                       ~~~~~~~~~~
2026-10-24T03:18:41.9754743Z
2026-10-24T03:18:41.9754745Z
2026-10-24T03:18:41.9754974Z src/authorization/remote.test.ts:232:25 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9755247Z
2026-10-24T03:18:41.9755362Z 232               identity: Effect.succeed(Option.some({ accountId: "user_connect" })),
2026-10-24T03:18:41.9755587Z                             ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9755672Z
2026-10-24T03:18:41.9755895Z src/authorization/remote.test.ts:237:17 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9756162Z
2026-10-24T03:18:41.9756238Z 237             id: Effect.succeed(Option.some("device-1")),
2026-10-24T03:18:41.9756395Z                     ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9756475Z
2026-10-24T03:18:41.9756804Z 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-24T03:18:41.9757171Z
2026-10-24T03:18:41.9757221Z 553     authorizeDpop: (input) =>
2026-10-24T03:18:41.9757348Z         ~~~~~~~~~~~~~
2026-10-24T03:18:41.9757414Z
2026-10-24T03:18:41.9757746Z 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-24T03:18:41.9758129Z
2026-10-24T03:18:41.9758184Z 555     authorizeDpopHttp: (input) =>
2026-10-24T03:18:41.9758314Z         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9758383Z
2026-10-24T03:18:41.9758709Z 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-24T03:18:41.9759083Z
2026-10-24T03:18:41.9759129Z 138       get: (entry) =>
2026-10-24T03:18:41.9759240Z           ~~~
2026-10-24T03:18:41.9759298Z
2026-10-24T03:18:41.9759687Z 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-24T03:18:41.9760092Z
2026-10-24T03:18:41.9760146Z 143       set: (entry, permission) => {
2026-10-24T03:18:41.9760280Z           ~~~
2026-10-24T03:18:41.9760335Z
2026-10-24T03:18:41.9760669Z 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-24T03:18:41.9761048Z
2026-10-24T03:18:41.9761099Z 159       forget: (environmentId) =>
2026-10-24T03:18:41.9761223Z           ~~~~~~
2026-10-24T03:18:41.9761283Z
2026-10-24T03:18:41.9761592Z 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-24T03:18:41.9761941Z
2026-10-24T03:18:41.9761996Z 298     registerPairing: (input) =>
2026-10-24T03:18:41.9762126Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9762193Z
2026-10-24T03:18:41.9762493Z 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-24T03:18:41.9762836Z
2026-10-24T03:18:41.9762885Z 304     registerSsh: (input) =>
2026-10-24T03:18:41.9763004Z         ~~~~~~~~~~~
2026-10-24T03:18:41.9763066Z
2026-10-24T03:18:41.9763371Z 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-24T03:18:41.9763709Z
2026-10-24T03:18:41.9763763Z 309     updateBearer: (input) =>
2026-10-24T03:18:41.9763888Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9763950Z
2026-10-24T03:18:41.9764217Z 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-24T03:18:41.9764527Z
2026-10-24T03:18:41.9764585Z 1392             ? Effect.succeed(undefined)
2026-10-24T03:18:41.9764727Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9764814Z
2026-10-24T03:18:41.9765077Z 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-24T03:18:41.9765414Z
2026-10-24T03:18:41.9765469Z 1476             ? Effect.succeed(undefined)
2026-10-24T03:18:41.9765609Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9765690Z
2026-10-24T03:18:41.9765952Z 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-24T03:18:41.9766254Z
2026-10-24T03:18:41.9766319Z 1489                     : Effect.succeed(undefined),
2026-10-24T03:18:41.9766475Z                            ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9766567Z
2026-10-24T03:18:41.9766812Z src/platform/orchestrationCache.test.ts:104:15 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9767093Z
2026-10-24T03:18:41.9767148Z 104       }).pipe(Effect.map(Option.some));
2026-10-24T03:18:41.9767290Z                   ~~~~~~~~~~
2026-10-24T03:18:41.9767360Z
2026-10-24T03:18:41.9767777Z 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-24T03:18:41.9768182Z
2026-10-24T03:18:41.9768273Z 72       load: (prepared: PreparedConnection, threadId: ThreadId) => {
2026-10-24T03:18:41.9768440Z          ~~~~
2026-10-24T03:18:41.9768498Z
2026-10-24T03:18:41.9768835Z 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-24T03:18:41.9769162Z
2026-10-24T03:18:41.9769260Z 56             Effect.catch(() => Effect.succeed(Option.none<AuthSessionState>())),
2026-10-24T03:18:41.9769445Z                ~~~~~~~~~~~~
2026-10-24T03:18:41.9769518Z
2026-10-24T03:18:41.9769850Z 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-24T03:18:41.9770297Z
2026-10-24T03:18:41.9770354Z 62             return yield* Effect.fail(
2026-10-24T03:18:41.9770485Z                       ~~~~~
2026-10-24T03:18:41.9770556Z
2026-10-24T03:18:41.9770853Z 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-24T03:18:41.9771186Z
2026-10-24T03:18:41.9771279Z 57     execute: (target: OutdatedServerUpdateTarget, atomRegistry) => {
2026-10-24T03:18:41.9771458Z        ~~~~~~~
2026-10-24T03:18:41.9771517Z
2026-10-24T03:18:41.9771827Z 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-24T03:18:41.9772179Z
2026-10-24T03:18:41.9772231Z 90       load: (prepared, input) =>
2026-10-24T03:18:41.9772355Z          ~~~~
2026-10-24T03:18:41.9772412Z
2026-10-24T03:18:41.9772810Z 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-24T03:18:41.9773248Z
2026-10-24T03:18:41.9773349Z 34       return yield* Schema.decodeUnknownEffect(codec)(stored.value).pipe(
2026-10-24T03:18:41.9773540Z                               ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9773634Z
2026-10-24T03:18:41.9773858Z src/state/queryPersistence.ts:35:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9774123Z
2026-10-24T03:18:41.9774176Z 35         Effect.map(Option.some),
2026-10-24T03:18:41.9774304Z            ~~~~~~~~~~
2026-10-24T03:18:41.9774368Z
2026-10-24T03:18:41.9774634Z 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-24T03:18:41.9774932Z
2026-10-24T03:18:41.9774991Z 680     execute: (target, atomRegistry) => {
2026-10-24T03:18:41.9775123Z         ~~~~~~~
2026-10-24T03:18:41.9775183Z
2026-10-24T03:18:41.9775547Z 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-24T03:18:41.9775906Z
2026-10-24T03:18:41.9775964Z 1125           Effect.flatMap((summary) =>
2026-10-24T03:18:41.9776101Z                ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9776174Z
2026-10-24T03:18:41.9776393Z src/state/shell-sync.test.ts:90:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9776648Z
2026-10-24T03:18:41.9776793Z 90         loadShell: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9776954Z                             ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9777039Z
2026-10-24T03:18:41.9777256Z src/state/shell-sync.test.ts:96:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9777564Z
2026-10-24T03:18:41.9777636Z 96         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9777796Z                              ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9777880Z
2026-10-24T03:18:41.9778097Z src/state/shell-sync.test.ts:99:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9778354Z
2026-10-24T03:18:41.9778436Z 99         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9778604Z                                    ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9778606Z
2026-10-24T03:18:41.9778826Z src/state/shell-sync.test.ts:101:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9778828Z
2026-10-24T03:18:41.9778907Z 101         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9778960Z                                ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9778962Z
2026-10-24T03:18:41.9779178Z src/state/shell-sync.test.ts:108:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9779180Z
2026-10-24T03:18:41.9779249Z 108         load: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9779297Z                         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9779299Z
2026-10-24T03:18:41.9779514Z src/state/shell-sync.test.ts:229:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9779516Z
2026-10-24T03:18:41.9779589Z 229         loadShell: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9779634Z                              ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9779636Z
2026-10-24T03:18:41.9779850Z src/state/shell-sync.test.ts:238:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9779853Z
2026-10-24T03:18:41.9779927Z 238         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9779976Z                               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9779978Z
2026-10-24T03:18:41.9780190Z src/state/shell-sync.test.ts:241:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9780195Z
2026-10-24T03:18:41.9780275Z 241         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9780328Z                                     ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9780330Z
2026-10-24T03:18:41.9780546Z src/state/shell-sync.test.ts:243:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9780548Z
2026-10-24T03:18:41.9780620Z 243         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9780669Z                                ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9780671Z
2026-10-24T03:18:41.9780884Z src/state/shell-sync.test.ts:250:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9780886Z
2026-10-24T03:18:41.9780951Z 250         load: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9780998Z                         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9781000Z
2026-10-24T03:18:41.9781213Z src/state/shell-sync.test.ts:349:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9781216Z
2026-10-24T03:18:41.9781328Z 349         loadShell: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9781378Z                              ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9781380Z
2026-10-24T03:18:41.9781591Z src/state/shell-sync.test.ts:355:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9781638Z
2026-10-24T03:18:41.9781709Z 355         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9781755Z                               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9781759Z
2026-10-24T03:18:41.9781970Z src/state/shell-sync.test.ts:358:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9781972Z
2026-10-24T03:18:41.9782053Z 358         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9782105Z                                     ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9782107Z
2026-10-24T03:18:41.9782323Z src/state/shell-sync.test.ts:360:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9782325Z
2026-10-24T03:18:41.9782395Z 360         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9782447Z                                ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9782449Z
2026-10-24T03:18:41.9782662Z src/state/shell-sync.test.ts:367:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9782664Z
2026-10-24T03:18:41.9782728Z 367         load: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9782774Z                         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9782776Z
2026-10-24T03:18:41.9782987Z src/state/shell-sync.test.ts:446:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9782989Z
2026-10-24T03:18:41.9783078Z 446         loadShell: () => Effect.succeed(Option.some(cachedSnapshot)),
2026-10-24T03:18:41.9783125Z                              ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9783127Z
2026-10-24T03:18:41.9783340Z src/state/shell-sync.test.ts:448:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9783344Z
2026-10-24T03:18:41.9783414Z 448         loadThread: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9783465Z                               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9783467Z
2026-10-24T03:18:41.9783680Z src/state/shell-sync.test.ts:451:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9783682Z
2026-10-24T03:18:41.9783762Z 451         loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9783813Z                                     ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9783816Z
2026-10-24T03:18:41.9784026Z src/state/shell-sync.test.ts:453:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9784031Z
2026-10-24T03:18:41.9784100Z 453         loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9784151Z                                ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9784153Z
2026-10-24T03:18:41.9784367Z src/state/shell-sync.test.ts:460:21 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9784369Z
2026-10-24T03:18:41.9784446Z 460         load: () => Effect.succeed(Option.some(httpSnapshot)),
2026-10-24T03:18:41.9784490Z                         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9784492Z
2026-10-24T03:18:41.9784797Z 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-24T03:18:41.9784839Z
2026-10-24T03:18:41.9784903Z 98       load: (prepared: PreparedConnection) =>
2026-10-24T03:18:41.9784946Z          ~~~~
2026-10-24T03:18:41.9784948Z
2026-10-24T03:18:41.9785325Z 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-24T03:18:41.9785405Z
2026-10-24T03:18:41.9785473Z 52       register: (environmentId, threadId, handler) =>
2026-10-24T03:18:41.9785517Z          ~~~~~~~~
2026-10-24T03:18:41.9785519Z
2026-10-24T03:18:41.9785846Z 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-24T03:18:41.9785848Z
2026-10-24T03:18:41.9785900Z 64       unregister: (registration) =>
2026-10-24T03:18:41.9785942Z          ~~~~~~~~~~
2026-10-24T03:18:41.9785945Z
2026-10-24T03:18:41.9786317Z 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-24T03:18:41.9786321Z
2026-10-24T03:18:41.9786404Z 79       loadEarlier: (environmentId, threadId, throughEntryId) =>
2026-10-24T03:18:41.9786446Z          ~~~~~~~~~~~
2026-10-24T03:18:41.9786448Z
2026-10-24T03:18:41.9786806Z 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-24T03:18:41.9786809Z
2026-10-24T03:18:41.9786884Z 89       reconcilePendingWork: (environmentId, threadId) =>
2026-10-24T03:18:41.9786929Z          ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9786931Z
2026-10-24T03:18:41.9787153Z src/state/threads-sync.test.ts:1458:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9787156Z
2026-10-24T03:18:41.9787238Z 1458             : { loadCached: Effect.succeed(Option.some(saved!)) },
2026-10-24T03:18:41.9787292Z                                  ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9787294Z
2026-10-24T03:18:41.9787552Z 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-24T03:18:41.9787558Z
2026-10-24T03:18:41.9787641Z 447       execute: (input: RunVcsStackedActionInput, registry) => {
2026-10-24T03:18:41.9787683Z           ~~~~~~~
2026-10-24T03:18:41.9787685Z
2026-10-24T03:18:41.9787687Z
2026-10-24T03:18:41.9787738Z ~/apps/mobile$ tsc --noEmit
2026-10-24T03:18:41.9787788Z ~/infra/relay$ tsc --noEmit
2026-10-24T03:18:41.9787833Z ~/apps/web$ tsc --noEmit
2026-10-24T03:18:41.9787882Z Result (22 files):
2026-10-24T03:18:41.9787924Z - 0 errors
2026-10-24T03:18:41.9787966Z - 0 warnings
2026-10-24T03:18:41.9788005Z - 0 hints
2026-10-24T03:18:41.9788009Z
2026-10-24T03:18:41.9788011Z
2026-10-24T03:18:41.9788063Z ~/apps/desktop$ tsc --noEmit
2026-10-24T03:18:41.9788381Z 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-24T03:18:41.9788383Z
2026-10-24T03:18:41.9788430Z 220           send: (body) =>
2026-10-24T03:18:41.9788470Z               ~~~~
2026-10-24T03:18:41.9788472Z
2026-10-24T03:18:41.9788771Z 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-24T03:18:41.9788816Z
2026-10-24T03:18:41.9788866Z 12       onFailure: (error) =>
2026-10-24T03:18:41.9788907Z          ~~~~~~~~~
2026-10-24T03:18:41.9788909Z
2026-10-24T03:18:41.9789230Z 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-24T03:18:41.9789278Z
2026-10-24T03:18:41.9789328Z 64     pauseUntil: (untilMillis) =>
2026-10-24T03:18:41.9789369Z        ~~~~~~~~~~
2026-10-24T03:18:41.9789371Z
2026-10-24T03:18:41.9789604Z 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-24T03:18:41.9789606Z
2026-10-24T03:18:41.9789652Z 198         onNone: () =>
2026-10-24T03:18:41.9789690Z             ~~~~~~
2026-10-24T03:18:41.9789692Z
2026-10-24T03:18:41.9789957Z src/previewTunnelSweep.test.ts:53:11 - suggestion TS377124: `Effect.provideService` provides this inline single-service layer directly. effect(provideLayerSucceedToProvideService)
2026-10-24T03:18:41.9789959Z
2026-10-24T03:18:41.9790076Z 53   }).pipe(Effect.provide(Layer.succeed(HttpClient.HttpClient, cloudflare.client)));
2026-10-24T03:18:41.9790122Z              ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9790125Z
2026-10-24T03:18:41.9790404Z 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-24T03:18:41.9790406Z
2026-10-24T03:18:41.9790511Z 92   fileResponse: () => Effect.die("Relay API does not serve filesystem responses"),
2026-10-24T03:18:41.9790552Z      ~~~~~~~~~~~~
2026-10-24T03:18:41.9790554Z
2026-10-24T03:18:41.9790840Z 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-24T03:18:41.9790843Z
2026-10-24T03:18:41.9790948Z 93   fileWebResponse: () => Effect.die("Relay API does not serve file responses"),
2026-10-24T03:18:41.9790990Z      ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9790993Z
2026-10-24T03:18:41.9791241Z 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-24T03:18:41.9791243Z
2026-10-24T03:18:41.9791306Z 242       hold: ({ endpointKey, baseUrl, hook }) =>
2026-10-24T03:18:41.9791348Z           ~~~~
2026-10-24T03:18:41.9791350Z
2026-10-24T03:18:41.9791598Z 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-24T03:18:41.9791600Z
2026-10-24T03:18:41.9791658Z 244       wake: ({ endpointKey, baseUrl }) =>
2026-10-24T03:18:41.9791698Z           ~~~~
2026-10-24T03:18:41.9791700Z
2026-10-24T03:18:41.9791952Z 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-24T03:18:41.9791956Z
2026-10-24T03:18:41.9792011Z 246       clear: ({ endpointKey }) =>
2026-10-24T03:18:41.9792052Z           ~~~~~
2026-10-24T03:18:41.9792055Z
2026-10-24T03:18:41.9792361Z 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-24T03:18:41.9792366Z
2026-10-24T03:18:41.9792411Z 275               send: (body) =>
2026-10-24T03:18:41.9792461Z                   ~~~~
2026-10-24T03:18:41.9792464Z
2026-10-24T03:18:41.9792466Z
2026-10-24T03:18:41.9792823Z 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-24T03:18:41.9792826Z
2026-10-24T03:18:41.9792926Z 389     complete: (response) => Effect.sync(() => broker.complete(response)),
2026-10-24T03:18:41.9793003Z         ~~~~~~~~
2026-10-24T03:18:41.9793005Z
2026-10-24T03:18:41.9793228Z src/app/DesktopClerk.test.ts:300:27 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9793230Z
2026-10-24T03:18:41.9793318Z 300       currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-24T03:18:41.9793367Z                               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9793370Z
2026-10-24T03:18:41.9793643Z 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-24T03:18:41.9793645Z
2026-10-24T03:18:41.9793692Z 461     onSome: (logFile) =>
2026-10-24T03:18:41.9793734Z         ~~~~~~
2026-10-24T03:18:41.9793736Z
2026-10-24T03:18:41.9794059Z 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-24T03:18:41.9794063Z
2026-10-24T03:18:41.9794120Z 591       forInstance: (id) => makeForId(id),
2026-10-24T03:18:41.9794161Z           ~~~~~~~~~~~
2026-10-24T03:18:41.9794164Z
2026-10-24T03:18:41.9794382Z src/app/DesktopWebLinks.test.ts:29:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9794384Z
2026-10-24T03:18:41.9794470Z 29           currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-24T03:18:41.9794521Z                                  ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9794523Z
2026-10-24T03:18:41.9794800Z 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-24T03:18:41.9794802Z
2026-10-24T03:18:41.9794851Z 72     receive: (url) =>
2026-10-24T03:18:41.9794889Z        ~~~~~~~
2026-10-24T03:18:41.9794891Z
2026-10-24T03:18:41.9795189Z 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-24T03:18:41.9795191Z
2026-10-24T03:18:41.9795243Z 77     setRendererReady: (ready) =>
2026-10-24T03:18:41.9795311Z        ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9795313Z
2026-10-24T03:18:41.9795587Z 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-24T03:18:41.9795594Z
2026-10-24T03:18:41.9795637Z 1062       onSome: (run) =>
2026-10-24T03:18:41.9795679Z            ~~~~~~
2026-10-24T03:18:41.9795681Z
2026-10-24T03:18:41.9795968Z 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-24T03:18:41.9795972Z
2026-10-24T03:18:41.9796016Z 307       get: (id) =>
2026-10-24T03:18:41.9796054Z           ~~~
2026-10-24T03:18:41.9796056Z
2026-10-24T03:18:41.9796338Z 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-24T03:18:41.9796340Z
2026-10-24T03:18:41.9796430Z 342         get: (id) => Effect.succeed(Option.fromNullishOr(byId.get(id))),
2026-10-24T03:18:41.9796472Z             ~~~
2026-10-24T03:18:41.9796474Z
2026-10-24T03:18:41.9796816Z 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-24T03:18:41.9796819Z
2026-10-24T03:18:41.9796973Z 345         register: () => Effect.die("DesktopBackendPool.layerTest does not support register"),
2026-10-24T03:18:41.9797016Z             ~~~~~~~~
2026-10-24T03:18:41.9797018Z
2026-10-24T03:18:41.9797312Z 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-24T03:18:41.9797314Z
2026-10-24T03:18:41.9797445Z 346         unregister: () => Effect.die("DesktopBackendPool.layerTest does not support unregister"),
2026-10-24T03:18:41.9797487Z             ~~~~~~~~~~
2026-10-24T03:18:41.9797489Z
2026-10-24T03:18:41.9797754Z 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-24T03:18:41.9797756Z
2026-10-24T03:18:41.9797802Z 145   exit: (code) =>
2026-10-24T03:18:41.9797846Z       ~~~~
2026-10-24T03:18:41.9797848Z
2026-10-24T03:18:41.9798131Z 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-24T03:18:41.9798134Z
2026-10-24T03:18:41.9798181Z 149   relaunch: (options) =>
2026-10-24T03:18:41.9798222Z       ~~~~~~~~
2026-10-24T03:18:41.9798224Z
2026-10-24T03:18:41.9798501Z 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-24T03:18:41.9798503Z
2026-10-24T03:18:41.9798555Z 153   setPath: (name, path) =>
2026-10-24T03:18:41.9798596Z       ~~~~~~~
2026-10-24T03:18:41.9798598Z
2026-10-24T03:18:41.9798866Z 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-24T03:18:41.9798870Z
2026-10-24T03:18:41.9798917Z 157   setName: (name) =>
2026-10-24T03:18:41.9798958Z       ~~~~~~~
2026-10-24T03:18:41.9798960Z
2026-10-24T03:18:41.9799259Z 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-24T03:18:41.9799262Z
2026-10-24T03:18:41.9799321Z 161   setAboutPanelOptions: (options) =>
2026-10-24T03:18:41.9799363Z       ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9799365Z
2026-10-24T03:18:41.9799654Z 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-24T03:18:41.9799656Z
2026-10-24T03:18:41.9799709Z 165   setAppUserModelId: (id) =>
2026-10-24T03:18:41.9799751Z       ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9799754Z
2026-10-24T03:18:41.9800088Z 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-24T03:18:41.9800094Z
2026-10-24T03:18:41.9800174Z 170   setAsDefaultProtocolClient: (protocol, path, args) =>
2026-10-24T03:18:41.9800219Z       ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9800221Z
2026-10-24T03:18:41.9800515Z 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-24T03:18:41.9800557Z
2026-10-24T03:18:41.9800613Z 177   setDesktopName: (desktopName) =>
2026-10-24T03:18:41.9800652Z       ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9800654Z
2026-10-24T03:18:41.9800934Z 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-24T03:18:41.9800977Z
2026-10-24T03:18:41.9801027Z 184   setDockIcon: (iconPath) =>
2026-10-24T03:18:41.9801068Z       ~~~~~~~~~~~
2026-10-24T03:18:41.9801070Z
2026-10-24T03:18:41.9801387Z 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-24T03:18:41.9801389Z
2026-10-24T03:18:41.9801460Z 188   appendCommandLineSwitch: (switchName, value) =>
2026-10-24T03:18:41.9801507Z       ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9801510Z
2026-10-24T03:18:41.9801818Z 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-24T03:18:41.9801822Z
2026-10-24T03:18:41.9801881Z 196   onBeforeQuitForUpdate: (listener) =>
2026-10-24T03:18:41.9801925Z       ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9801927Z
2026-10-24T03:18:41.9802232Z 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-24T03:18:41.9802234Z
2026-10-24T03:18:41.9802296Z 206   removeCommandLineSwitch: (switchName) =>
2026-10-24T03:18:41.9802339Z       ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9802341Z
2026-10-24T03:18:41.9802655Z 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-24T03:18:41.9802658Z
2026-10-24T03:18:41.9802713Z 169   showMessageBox: (options, owner) =>
2026-10-24T03:18:41.9802753Z       ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9802755Z
2026-10-24T03:18:41.9803058Z 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-24T03:18:41.9803060Z
2026-10-24T03:18:41.9803115Z 185   showErrorBox: (title, content) =>
2026-10-24T03:18:41.9803158Z       ~~~~~~~~~~~~
2026-10-24T03:18:41.9803160Z
2026-10-24T03:18:41.9803466Z 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-24T03:18:41.9803470Z
2026-10-24T03:18:41.9803525Z 193     setApplicationMenu: (template) =>
2026-10-24T03:18:41.9803570Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9803572Z
2026-10-24T03:18:41.9803865Z 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-24T03:18:41.9803868Z
2026-10-24T03:18:41.9803921Z 207     popupTemplate: (input) =>
2026-10-24T03:18:41.9803961Z         ~~~~~~~~~~~~~
2026-10-24T03:18:41.9803963Z
2026-10-24T03:18:41.9804257Z 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-24T03:18:41.9804259Z
2026-10-24T03:18:41.9804312Z 225     showContextMenu: (input) =>
2026-10-24T03:18:41.9804355Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9804357Z
2026-10-24T03:18:41.9804756Z 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-24T03:18:41.9804792Z
2026-10-24T03:18:41.9804859Z 82   getSystemIdleState: (idleThresholdSeconds) =>
2026-10-24T03:18:41.9804903Z      ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9804905Z
2026-10-24T03:18:41.9805214Z 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-24T03:18:41.9805216Z
2026-10-24T03:18:41.9805279Z 77     encryptString: (value) =>
2026-10-24T03:18:41.9805321Z        ~~~~~~~~~~~~~
2026-10-24T03:18:41.9805323Z
2026-10-24T03:18:41.9805657Z 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-24T03:18:41.9805659Z
2026-10-24T03:18:41.9805709Z 82     decryptString: (value) =>
2026-10-24T03:18:41.9805749Z        ~~~~~~~~~~~~~
2026-10-24T03:18:41.9805753Z
2026-10-24T03:18:41.9806039Z 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-24T03:18:41.9806041Z
2026-10-24T03:18:41.9806093Z 68   openExternal: (rawUrl) =>
2026-10-24T03:18:41.9806131Z      ~~~~~~~~~~~~
2026-10-24T03:18:41.9806133Z
2026-10-24T03:18:41.9806428Z 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-24T03:18:41.9806431Z
2026-10-24T03:18:41.9806484Z 79   openSystemSettings: (pane) =>
2026-10-24T03:18:41.9806528Z      ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9806530Z
2026-10-24T03:18:41.9806803Z 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-24T03:18:41.9806809Z
2026-10-24T03:18:41.9806854Z 86   copyText: (text) =>
2026-10-24T03:18:41.9806897Z      ~~~~~~~~
2026-10-24T03:18:41.9806899Z
2026-10-24T03:18:41.9807179Z 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-24T03:18:41.9807181Z
2026-10-24T03:18:41.9807229Z 34   setSource: (theme) =>
2026-10-24T03:18:41.9807267Z      ~~~~~~~~~
2026-10-24T03:18:41.9807269Z
2026-10-24T03:18:41.9807558Z 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-24T03:18:41.9807560Z
2026-10-24T03:18:41.9807609Z 41   onUpdated: (listener) =>
2026-10-24T03:18:41.9807650Z      ~~~~~~~~~
2026-10-24T03:18:41.9807652Z
2026-10-24T03:18:41.9807945Z 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-24T03:18:41.9807947Z
2026-10-24T03:18:41.9807992Z 85   setFeedURL: (options) =>
2026-10-24T03:18:41.9808033Z      ~~~~~~~~~~
2026-10-24T03:18:41.9808035Z
2026-10-24T03:18:41.9808341Z 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-24T03:18:41.9808343Z
2026-10-24T03:18:41.9808392Z 90   setAutoDownload: (value) =>
2026-10-24T03:18:41.9808472Z      ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9808475Z
2026-10-24T03:18:41.9808790Z 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-24T03:18:41.9808833Z
2026-10-24T03:18:41.9808891Z 95   setAutoInstallOnAppQuit: (value) =>
2026-10-24T03:18:41.9808936Z      ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9808938Z
2026-10-24T03:18:41.9809234Z 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-24T03:18:41.9809236Z
2026-10-24T03:18:41.9809281Z 100   setChannel: (channel) =>
2026-10-24T03:18:41.9809322Z       ~~~~~~~~~~
2026-10-24T03:18:41.9809324Z
2026-10-24T03:18:41.9809637Z 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-24T03:18:41.9809639Z
2026-10-24T03:18:41.9809693Z 105   setAllowPrerelease: (value) =>
2026-10-24T03:18:41.9809738Z       ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9809740Z
2026-10-24T03:18:41.9810103Z 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-24T03:18:41.9810106Z
2026-10-24T03:18:41.9810159Z 111   setAllowDowngrade: (value) =>
2026-10-24T03:18:41.9810203Z       ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9810205Z
2026-10-24T03:18:41.9810506Z 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-24T03:18:41.9810508Z
2026-10-24T03:18:41.9810560Z 116   setFullChangelog: (value) =>
2026-10-24T03:18:41.9810600Z       ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9810602Z
2026-10-24T03:18:41.9810928Z 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-24T03:18:41.9810932Z
2026-10-24T03:18:41.9811000Z 121   setDisableDifferentialDownload: (value) =>
2026-10-24T03:18:41.9811046Z       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9811048Z
2026-10-24T03:18:41.9811334Z 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-24T03:18:41.9811339Z
2026-10-24T03:18:41.9811410Z 140   quitAndInstall: ({ isSilent, isForceRunAfter }) =>
2026-10-24T03:18:41.9811452Z       ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9811456Z
2026-10-24T03:18:41.9811749Z 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-24T03:18:41.9811753Z
2026-10-24T03:18:41.9811802Z 154   on: (eventName, listener) => {
2026-10-24T03:18:41.9811840Z       ~~
2026-10-24T03:18:41.9811842Z
2026-10-24T03:18:41.9812123Z 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-24T03:18:41.9812126Z
2026-10-24T03:18:41.9812174Z 211     create: (options) => {
2026-10-24T03:18:41.9812213Z         ~~~~~~
2026-10-24T03:18:41.9812216Z
2026-10-24T03:18:41.9812561Z 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-24T03:18:41.9812564Z
2026-10-24T03:18:41.9812655Z 243     setMain: (window) => Ref.set(mainWindowRef, Option.some(window)),
2026-10-24T03:18:41.9812696Z         ~~~~~~~
2026-10-24T03:18:41.9812745Z
2026-10-24T03:18:41.9813031Z 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-24T03:18:41.9813034Z
2026-10-24T03:18:41.9813080Z 244     clearMain: (window) =>
2026-10-24T03:18:41.9813119Z         ~~~~~~~~~
2026-10-24T03:18:41.9813123Z
2026-10-24T03:18:41.9813419Z 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-24T03:18:41.9813421Z
2026-10-24T03:18:41.9813472Z 254     prepareReveal: (window) =>
2026-10-24T03:18:41.9813518Z         ~~~~~~~~~~~~~
2026-10-24T03:18:41.9813520Z
2026-10-24T03:18:41.9813806Z 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-24T03:18:41.9813809Z
2026-10-24T03:18:41.9813854Z 264     reveal: (window) =>
2026-10-24T03:18:41.9813894Z         ~~~~~~
2026-10-24T03:18:41.9813897Z
2026-10-24T03:18:41.9814240Z 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-24T03:18:41.9814242Z
2026-10-24T03:18:41.9814313Z 526     setMainWindowBounds: (bounds, isMaximized) =>
2026-10-24T03:18:41.9814356Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9814358Z
2026-10-24T03:18:41.9814686Z 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-24T03:18:41.9814692Z
2026-10-24T03:18:41.9814746Z 538     setServerExposureMode: (mode) =>
2026-10-24T03:18:41.9814796Z         ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9814798Z
2026-10-24T03:18:41.9815120Z 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-24T03:18:41.9815122Z
2026-10-24T03:18:41.9815176Z 542     setTailscaleServe: (input) =>
2026-10-24T03:18:41.9815217Z         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9815220Z
2026-10-24T03:18:41.9815563Z 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-24T03:18:41.9815565Z
2026-10-24T03:18:41.9815620Z 546     setUpdateChannel: (channel) =>
2026-10-24T03:18:41.9815663Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9815665Z
2026-10-24T03:18:41.9815993Z 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-24T03:18:41.9815995Z
2026-10-24T03:18:41.9816049Z 550     setWslBackendEnabled: (enabled) =>
2026-10-24T03:18:41.9816095Z         ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9816097Z
2026-10-24T03:18:41.9816407Z 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-24T03:18:41.9816410Z
2026-10-24T03:18:41.9816506Z 554     setWslDistro: (distro) =>
2026-10-24T03:18:41.9816548Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9816550Z
2026-10-24T03:18:41.9816850Z 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-24T03:18:41.9816896Z
2026-10-24T03:18:41.9816946Z 560     setWslOnly: (enabled) =>
2026-10-24T03:18:41.9816988Z         ~~~~~~~~~~
2026-10-24T03:18:41.9816990Z
2026-10-24T03:18:41.9817327Z 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-24T03:18:41.9817329Z
2026-10-24T03:18:41.9817393Z 564     setLocalEnvironmentEnabled: (enabled) =>
2026-10-24T03:18:41.9817436Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9817438Z
2026-10-24T03:18:41.9817783Z 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-24T03:18:41.9817785Z
2026-10-24T03:18:41.9817858Z 599         setMainWindowBounds: (bounds, isMaximized) =>
2026-10-24T03:18:41.9817903Z             ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9817905Z
2026-10-24T03:18:41.9818223Z 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-24T03:18:41.9818228Z
2026-10-24T03:18:41.9818288Z 601         setServerExposureMode: (mode) =>
2026-10-24T03:18:41.9818334Z             ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9818336Z
2026-10-24T03:18:41.9818652Z 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-24T03:18:41.9818655Z
2026-10-24T03:18:41.9818782Z 603         setTailscaleServe: (input) => update((settings) => setTailscaleServe(settings, input)),
2026-10-24T03:18:41.9818825Z             ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9818827Z
2026-10-24T03:18:41.9819145Z 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-24T03:18:41.9819147Z
2026-10-24T03:18:41.9819274Z 604         setUpdateChannel: (channel) => update((settings) => setUpdateChannel(settings, channel)),
2026-10-24T03:18:41.9819319Z             ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9819321Z
2026-10-24T03:18:41.9819645Z 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-24T03:18:41.9819647Z
2026-10-24T03:18:41.9819707Z 605         setWslBackendEnabled: (enabled) =>
2026-10-24T03:18:41.9819749Z             ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9819752Z
2026-10-24T03:18:41.9820062Z 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-24T03:18:41.9820064Z
2026-10-24T03:18:41.9820177Z 607         setWslDistro: (distro) => update((settings) => setWslDistro(settings, distro)),
2026-10-24T03:18:41.9820221Z             ~~~~~~~~~~~~
2026-10-24T03:18:41.9820223Z
2026-10-24T03:18:41.9820567Z 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-24T03:18:41.9820573Z
2026-10-24T03:18:41.9820678Z 608         setWslOnly: (enabled) => update((settings) => setWslOnly(settings, enabled)),
2026-10-24T03:18:41.9820721Z             ~~~~~~~~~~
2026-10-24T03:18:41.9820768Z
2026-10-24T03:18:41.9821103Z 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-24T03:18:41.9821105Z
2026-10-24T03:18:41.9821172Z 609         setLocalEnvironmentEnabled: (enabled) =>
2026-10-24T03:18:41.9821217Z             ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9821219Z
2026-10-24T03:18:41.9821524Z 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-24T03:18:41.9821526Z
2026-10-24T03:18:41.9821575Z 197     set: (settings) =>
2026-10-24T03:18:41.9821617Z         ~~~
2026-10-24T03:18:41.9821619Z
2026-10-24T03:18:41.9821926Z 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-24T03:18:41.9821930Z
2026-10-24T03:18:41.9822018Z 231         set: (settings) => Ref.set(settingsRef, Option.some(settings)),
2026-10-24T03:18:41.9822059Z             ~~~
2026-10-24T03:18:41.9822061Z
2026-10-24T03:18:41.9822398Z 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-24T03:18:41.9822400Z
2026-10-24T03:18:41.9822473Z 1729     setAnimationDestination: (id, destination) =>
2026-10-24T03:18:41.9822518Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9822520Z
2026-10-24T03:18:41.9822819Z 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-24T03:18:41.9822823Z
2026-10-24T03:18:41.9822875Z 1740     dismissAnimation: (id) =>
2026-10-24T03:18:41.9822919Z          ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9822922Z
2026-10-24T03:18:41.9823212Z 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-24T03:18:41.9823215Z
2026-10-24T03:18:41.9823267Z 1745     acknowledge: (id) =>
2026-10-24T03:18:41.9823306Z          ~~~~~~~~~~~
2026-10-24T03:18:41.9823308Z
2026-10-24T03:18:41.9823624Z 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-24T03:18:41.9823626Z
2026-10-24T03:18:41.9823676Z 136     discoverHosts: (input) =>
2026-10-24T03:18:41.9823717Z         ~~~~~~~~~~~~~
2026-10-24T03:18:41.9823721Z
2026-10-24T03:18:41.9824036Z 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-24T03:18:41.9824041Z
2026-10-24T03:18:41.9824088Z 141     resolveHost: (alias) =>
2026-10-24T03:18:41.9824130Z         ~~~~~~~~~~~
2026-10-24T03:18:41.9824133Z
2026-10-24T03:18:41.9824487Z 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-24T03:18:41.9824489Z
2026-10-24T03:18:41.9824600Z 146     ensureEnvironment: (target, ensureOptions) =>
2026-10-24T03:18:41.9824641Z         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9824643Z
2026-10-24T03:18:41.9824971Z 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-24T03:18:41.9825014Z
2026-10-24T03:18:41.9825072Z 154     disconnectEnvironment: (target) =>
2026-10-24T03:18:41.9825116Z         ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9825118Z
2026-10-24T03:18:41.9825466Z 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-24T03:18:41.9825469Z
2026-10-24T03:18:41.9825594Z 1171     installPrepared: (expectedVersion) => installWithExpectedVersion(expectedVersion),
2026-10-24T03:18:41.9825640Z          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9825642Z
2026-10-24T03:18:41.9825938Z 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-24T03:18:41.9825942Z
2026-10-24T03:18:41.9825994Z 1101       preWarm: () => Effect.void,
2026-10-24T03:18:41.9826035Z            ~~~~~~~
2026-10-24T03:18:41.9826037Z
2026-10-24T03:18:41.9826373Z 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-24T03:18:41.9826379Z
2026-10-24T03:18:41.9826445Z 1102       windowsToWslPath: (distro, windowsPath) =>
2026-10-24T03:18:41.9826490Z            ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9826492Z
2026-10-24T03:18:41.9826802Z 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-24T03:18:41.9826804Z
2026-10-24T03:18:41.9826942Z 1104       getUserHome: (distro) => Effect.succeed(stub.getUserHome?.(distro) ?? Option.none<string>()),
2026-10-24T03:18:41.9826983Z            ~~~~~~~~~~~
2026-10-24T03:18:41.9826985Z
2026-10-24T03:18:41.9827295Z 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-24T03:18:41.9827297Z
2026-10-24T03:18:41.9827431Z 1105       getDistroIp: (distro) => Effect.succeed(stub.getDistroIp?.(distro) ?? Option.none<string>()),
2026-10-24T03:18:41.9827473Z            ~~~~~~~~~~~
2026-10-24T03:18:41.9827475Z
2026-10-24T03:18:41.9827803Z 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-24T03:18:41.9827807Z
2026-10-24T03:18:41.9827866Z 1106       prepareRuntime: (distro, archive) =>
2026-10-24T03:18:41.9827912Z            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9827914Z
2026-10-24T03:18:41.9828244Z 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-24T03:18:41.9828246Z
2026-10-24T03:18:41.9828378Z 1113       pruneRuntimes: (distro, runtimeId) => stub.pruneRuntimes?.(distro, runtimeId) ?? Effect.void,
2026-10-24T03:18:41.9828421Z            ~~~~~~~~~~~~~
2026-10-24T03:18:41.9828423Z
2026-10-24T03:18:41.9828805Z 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-24T03:18:41.9828811Z
2026-10-24T03:18:41.9828875Z 1114       invalidateRuntime: (distro, runtimeId) =>
2026-10-24T03:18:41.9828948Z            ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9828950Z
2026-10-24T03:18:41.9829282Z 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-24T03:18:41.9829284Z
2026-10-24T03:18:41.9829347Z 1116       probeRuntime: (distro, linuxAppRoot) =>
2026-10-24T03:18:41.9829388Z            ~~~~~~~~~~~~
2026-10-24T03:18:41.9829390Z
2026-10-24T03:18:41.9829745Z 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-24T03:18:41.9829747Z
2026-10-24T03:18:41.9829823Z 1120       ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-24T03:18:41.9829867Z            ~~~~~~~~~~~~~
2026-10-24T03:18:41.9829870Z
2026-10-24T03:18:41.9830174Z 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-24T03:18:41.9830177Z
2026-10-24T03:18:41.9830223Z 1187       preWarm: (distro) =>
2026-10-24T03:18:41.9830265Z            ~~~~~~~
2026-10-24T03:18:41.9830267Z
2026-10-24T03:18:41.9830594Z 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-24T03:18:41.9830596Z
2026-10-24T03:18:41.9830658Z 1192       prepareRuntime: (distro, archive) =>
2026-10-24T03:18:41.9830702Z            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9830704Z
2026-10-24T03:18:41.9831028Z 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-24T03:18:41.9831031Z
2026-10-24T03:18:41.9831094Z 1196       pruneRuntimes: (distro, runtimeId) =>
2026-10-24T03:18:41.9831136Z            ~~~~~~~~~~~~~
2026-10-24T03:18:41.9831139Z
2026-10-24T03:18:41.9831470Z 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-24T03:18:41.9831472Z
2026-10-24T03:18:41.9831538Z 1200       invalidateRuntime: (distro, runtimeId) =>
2026-10-24T03:18:41.9831583Z            ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9831586Z
2026-10-24T03:18:41.9831918Z 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-24T03:18:41.9831922Z
2026-10-24T03:18:41.9831984Z 1204       probeRuntime: (distro, linuxAppRoot) =>
2026-10-24T03:18:41.9832027Z            ~~~~~~~~~~~~
2026-10-24T03:18:41.9832029Z
2026-10-24T03:18:41.9832382Z 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-24T03:18:41.9832387Z
2026-10-24T03:18:41.9832461Z 1208       ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-24T03:18:41.9832504Z            ~~~~~~~~~~~~~
2026-10-24T03:18:41.9832506Z
2026-10-24T03:18:41.9832508Z
2026-10-24T03:18:41.9832509Z
2026-10-24T03:18:41.9832887Z 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-24T03:18:41.9832914Z
2026-10-24T03:18:41.9832964Z 820     clear: (environmentId) =>
2026-10-24T03:18:41.9833004Z         ~~~~~
2026-10-24T03:18:41.9833006Z
2026-10-24T03:18:41.9833305Z 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-24T03:18:41.9833308Z
2026-10-24T03:18:41.9833392Z 830     observe: ({ environmentId, environmentLabel, method }) =>
2026-10-24T03:18:41.9833433Z         ~~~~~~~
2026-10-24T03:18:41.9833435Z
2026-10-24T03:18:41.9833721Z 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-24T03:18:41.9833724Z
2026-10-24T03:18:41.9833768Z 549     get: (entry) =>
2026-10-24T03:18:41.9833807Z         ~~~
2026-10-24T03:18:41.9833809Z
2026-10-24T03:18:41.9834112Z 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-24T03:18:41.9834114Z
2026-10-24T03:18:41.9834166Z 576     set: (entry, permission) => {
2026-10-24T03:18:41.9834206Z         ~~~
2026-10-24T03:18:41.9834208Z
2026-10-24T03:18:41.9834516Z 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-24T03:18:41.9834520Z
2026-10-24T03:18:41.9834599Z 596     forget: (environmentId) => write(environmentId, null),
2026-10-24T03:18:41.9834640Z         ~~~~~~
2026-10-24T03:18:41.9834642Z
2026-10-24T03:18:41.9834989Z 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-24T03:18:41.9834993Z
2026-10-24T03:18:41.9835051Z 643       register: (registration, routes) =>
2026-10-24T03:18:41.9835089Z           ~~~~~~~~
2026-10-24T03:18:41.9835091Z
2026-10-24T03:18:41.9835457Z 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-24T03:18:41.9835460Z
2026-10-24T03:18:41.9835519Z 647       setRoutes: (environmentId, routes) =>
2026-10-24T03:18:41.9835560Z           ~~~~~~~~~
2026-10-24T03:18:41.9835563Z
2026-10-24T03:18:41.9835896Z 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-24T03:18:41.9835899Z
2026-10-24T03:18:41.9835954Z 651       remove: (environmentId) =>
2026-10-24T03:18:41.9835997Z           ~~~~~~
2026-10-24T03:18:41.9835999Z
2026-10-24T03:18:41.9836350Z 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-24T03:18:41.9836352Z
2026-10-24T03:18:41.9836414Z 655       setEnabled: (environmentId, enabled) =>
2026-10-24T03:18:41.9836455Z           ~~~~~~~~~~
2026-10-24T03:18:41.9836457Z
2026-10-24T03:18:41.9836824Z 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-24T03:18:41.9836826Z
2026-10-24T03:18:41.9836880Z 732       loadShell: (environmentId) =>
2026-10-24T03:18:41.9836950Z           ~~~~~~~~~
2026-10-24T03:18:41.9836953Z
2026-10-24T03:18:41.9837289Z 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-24T03:18:41.9837291Z
2026-10-24T03:18:41.9837352Z 768       loadServerConfig: (environmentId) =>
2026-10-24T03:18:41.9837394Z           ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9837396Z
2026-10-24T03:18:41.9837732Z 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-24T03:18:41.9837734Z
2026-10-24T03:18:41.9837796Z 802       loadThread: (environmentId, threadId) =>
2026-10-24T03:18:41.9837839Z           ~~~~~~~~~~
2026-10-24T03:18:41.9837841Z
2026-10-24T03:18:41.9838177Z 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-24T03:18:41.9838181Z
2026-10-24T03:18:41.9838237Z 851       loadVcsRefs: (environmentId, cwd) =>
2026-10-24T03:18:41.9838279Z           ~~~~~~~~~~~
2026-10-24T03:18:41.9838281Z
2026-10-24T03:18:41.9838615Z 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-24T03:18:41.9838617Z
2026-10-24T03:18:41.9838679Z 893       removeVcsRefs: (environmentId, cwd) =>
2026-10-24T03:18:41.9838718Z           ~~~~~~~~~~~~~
2026-10-24T03:18:41.9838720Z
2026-10-24T03:18:41.9839048Z 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-24T03:18:41.9839052Z
2026-10-24T03:18:41.9839108Z 899       clearVcsRefs: (environmentId) =>
2026-10-24T03:18:41.9839151Z           ~~~~~~~~~~~~
2026-10-24T03:18:41.9839153Z
2026-10-24T03:18:41.9839501Z 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-24T03:18:41.9839503Z
2026-10-24T03:18:41.9839567Z 905       removeThread: (environmentId, threadId) =>
2026-10-24T03:18:41.9839610Z           ~~~~~~~~~~~~
2026-10-24T03:18:41.9839613Z
2026-10-24T03:18:41.9839928Z 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-24T03:18:41.9839932Z
2026-10-24T03:18:41.9839984Z 911       clear: (environmentId) =>
2026-10-24T03:18:41.9840024Z           ~~~~~
2026-10-24T03:18:41.9840026Z
2026-10-24T03:18:41.9840028Z
2026-10-24T03:18:41.9840074Z ~/apps/server$ tsc --noEmit
2026-10-24T03:18:41.9840323Z 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-24T03:18:41.9840325Z
2026-10-24T03:18:41.9840383Z 941         yield* Effect.sleep("1200 millis")
2026-10-24T03:18:41.9840434Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9840475Z 942           .pipe(
2026-10-24T03:18:41.9840516Z     ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9840602Z ...
2026-10-24T03:18:41.9840643Z 954           )
2026-10-24T03:18:41.9840681Z     ~~~~~~~~~~~
2026-10-24T03:18:41.9840736Z 955           .pipe(Effect.forkDetach);
2026-10-24T03:18:41.9840783Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9840824Z
2026-10-24T03:18:41.9841125Z 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-24T03:18:41.9841127Z
2026-10-24T03:18:41.9841172Z 1175     logger: (event) => {
2026-10-24T03:18:41.9841213Z          ~~~~~~
2026-10-24T03:18:41.9841215Z
2026-10-24T03:18:41.9841628Z 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-24T03:18:41.9841632Z
2026-10-24T03:18:41.9841740Z 376 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-24T03:18:41.9841798Z                                          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9841800Z
2026-10-24T03:18:41.9842088Z 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-24T03:18:41.9842093Z
2026-10-24T03:18:41.9842140Z 1346     getDescriptor: () =>
2026-10-24T03:18:41.9842181Z          ~~~~~~~~~~~~~
2026-10-24T03:18:41.9842183Z
2026-10-24T03:18:41.9842496Z 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-24T03:18:41.9842498Z
2026-10-24T03:18:41.9842546Z 55     getDescriptor: () =>
2026-10-24T03:18:41.9842586Z        ~~~~~~~~~~~~~
2026-10-24T03:18:41.9842588Z
2026-10-24T03:18:41.9842911Z 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-24T03:18:41.9842915Z
2026-10-24T03:18:41.9842967Z 540       authenticate: (request) =>
2026-10-24T03:18:41.9843009Z           ~~~~~~~~~~~~
2026-10-24T03:18:41.9843011Z
2026-10-24T03:18:41.9843259Z 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-24T03:18:41.9843262Z
2026-10-24T03:18:41.9843313Z 468         : Effect.succeed(undefined),
2026-10-24T03:18:41.9843361Z               ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9843363Z
2026-10-24T03:18:41.9843651Z 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-24T03:18:41.9843654Z
2026-10-24T03:18:41.9843711Z 328       HttpClientError: (cause) =>
2026-10-24T03:18:41.9843752Z           ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9843756Z
2026-10-24T03:18:41.9843995Z src/cloud/CloudLink.lifecycle.test.ts:166:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9843997Z
2026-10-24T03:18:41.9844063Z 166             latest: Effect.succeed(Option.none()),
2026-10-24T03:18:41.9844109Z                         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9844111Z
2026-10-24T03:18:41.9844332Z src/cloud/CloudLink.test.ts:99:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9844334Z
2026-10-24T03:18:41.9844392Z 99         latest: Effect.succeed(Option.none()),
2026-10-24T03:18:41.9844475Z                    ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9844478Z
2026-10-24T03:18:41.9844814Z 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-24T03:18:41.9844855Z
2026-10-24T03:18:41.9844985Z 791     requestRecovery: (config) => Queue.offer(recoveryRequests, config).pipe(Effect.asVoid),
2026-10-24T03:18:41.9845027Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9845030Z
2026-10-24T03:18:41.9845234Z src/cloud/http.test.ts:81:67 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9845237Z
2026-10-24T03:18:41.9845406Z 81     Layer.mock(ConnectReachability.ConnectReachability)({ latest: Effect.succeed(Option.none()) }),
2026-10-24T03:18:41.9845475Z                                                                      ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9845478Z
2026-10-24T03:18:41.9845818Z 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-24T03:18:41.9845822Z
2026-10-24T03:18:41.9845908Z 371     commitDesktopUpdate: (requestId, onHandoffAccepted) =>
2026-10-24T03:18:41.9845950Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9845952Z
2026-10-24T03:18:41.9846238Z 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-24T03:18:41.9846240Z
2026-10-24T03:18:41.9846289Z 808       updateTool: (tool) =>
2026-10-24T03:18:41.9846332Z           ~~~~~~~~~~
2026-10-24T03:18:41.9846334Z
2026-10-24T03:18:41.9846611Z 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-24T03:18:41.9846613Z
2026-10-24T03:18:41.9846657Z 823       easAccount: () =>
2026-10-24T03:18:41.9846700Z           ~~~~~~~~~~
2026-10-24T03:18:41.9846703Z
2026-10-24T03:18:41.9847020Z 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-24T03:18:41.9847023Z
2026-10-24T03:18:41.9847077Z 868     ensureAgentReady: (onPhase) =>
2026-10-24T03:18:41.9847117Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9847119Z
2026-10-24T03:18:41.9847344Z src/device/easProjectId.ts:201:7 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9847346Z
2026-10-24T03:18:41.9847404Z 201       Effect.map(Option.some),
2026-10-24T03:18:41.9847447Z           ~~~~~~~~~~
2026-10-24T03:18:41.9847449Z
2026-10-24T03:18:41.9847737Z 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-24T03:18:41.9847741Z
2026-10-24T03:18:41.9847816Z 141   return DirectEndpoints.of({ resolve: () => resolve });
2026-10-24T03:18:41.9847865Z                                   ~~~~~~~
2026-10-24T03:18:41.9847867Z
2026-10-24T03:18:41.9848176Z 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-24T03:18:41.9848178Z
2026-10-24T03:18:41.9848279Z 83   return RemoteOpenTargets.of({ resolveTargets: () => resolveTargets });
2026-10-24T03:18:41.9848333Z                                    ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9848335Z
2026-10-24T03:18:41.9848713Z 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-24T03:18:41.9848716Z
2026-10-24T03:18:41.9848800Z 302     isRepository: (cwd) =>
2026-10-24T03:18:41.9848843Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9848845Z
2026-10-24T03:18:41.9849133Z 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-24T03:18:41.9849135Z
2026-10-24T03:18:41.9849183Z 315     hasCommit: (input) =>
2026-10-24T03:18:41.9849221Z         ~~~~~~~~~
2026-10-24T03:18:41.9849223Z
2026-10-24T03:18:41.9849517Z 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-24T03:18:41.9849520Z
2026-10-24T03:18:41.9849569Z 327     hasRefNamed: (input) =>
2026-10-24T03:18:41.9849610Z         ~~~~~~~~~~~
2026-10-24T03:18:41.9849612Z
2026-10-24T03:18:41.9849892Z 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-24T03:18:41.9849898Z
2026-10-24T03:18:41.9849988Z 346     status: (input) =>
2026-10-24T03:18:41.9850029Z         ~~~~~~
2026-10-24T03:18:41.9850032Z
2026-10-24T03:18:41.9850327Z 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-24T03:18:41.9850329Z
2026-10-24T03:18:41.9850378Z 352     localStatus: (input) =>
2026-10-24T03:18:41.9850417Z         ~~~~~~~~~~~
2026-10-24T03:18:41.9850419Z
2026-10-24T03:18:41.9850729Z 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-24T03:18:41.9850733Z
2026-10-24T03:18:41.9850789Z 360     remoteStatus: (input, options) =>
2026-10-24T03:18:41.9850831Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9850833Z
2026-10-24T03:18:41.9851137Z 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-24T03:18:41.9851140Z
2026-10-24T03:18:41.9851189Z 369     pullCurrentBranch: (cwd) =>
2026-10-24T03:18:41.9851235Z         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9851237Z
2026-10-24T03:18:41.9851559Z 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-24T03:18:41.9851562Z
2026-10-24T03:18:41.9851623Z 373     runStackedAction: (input, options) =>
2026-10-24T03:18:41.9851666Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9851670Z
2026-10-24T03:18:41.9851990Z 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-24T03:18:41.9851992Z
2026-10-24T03:18:41.9852054Z 388     preparePullRequestThread: (input) =>
2026-10-24T03:18:41.9852101Z         ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9852103Z
2026-10-24T03:18:41.9852395Z 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-24T03:18:41.9852397Z
2026-10-24T03:18:41.9852523Z 399     listRefs: (input) =>
2026-10-24T03:18:41.9852563Z         ~~~~~~~~
2026-10-24T03:18:41.9852565Z
2026-10-24T03:18:41.9852878Z 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-24T03:18:41.9852929Z
2026-10-24T03:18:41.9852986Z 405     createWorktree: (input, options) =>
2026-10-24T03:18:41.9853029Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9853031Z
2026-10-24T03:18:41.9853342Z 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-24T03:18:41.9853348Z
2026-10-24T03:18:41.9853400Z 409     listLocalBranchNames: (cwd) =>
2026-10-24T03:18:41.9853444Z         ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9853446Z
2026-10-24T03:18:41.9853743Z 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-24T03:18:41.9853745Z
2026-10-24T03:18:41.9853794Z 413     fetchRemote: (input) =>
2026-10-24T03:18:41.9853833Z         ~~~~~~~~~~~
2026-10-24T03:18:41.9853835Z
2026-10-24T03:18:41.9854137Z 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-24T03:18:41.9854139Z
2026-10-24T03:18:41.9854189Z 417     remoteExists: (input) =>
2026-10-24T03:18:41.9854231Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9854233Z
2026-10-24T03:18:41.9854546Z 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-24T03:18:41.9854549Z
2026-10-24T03:18:41.9854600Z 421     remoteBranchExists: (input) =>
2026-10-24T03:18:41.9854644Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9854646Z
2026-10-24T03:18:41.9854972Z 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-24T03:18:41.9854975Z
2026-10-24T03:18:41.9855040Z 425     resolveRemoteTrackingCommit: (input) =>
2026-10-24T03:18:41.9855084Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9855089Z
2026-10-24T03:18:41.9855433Z 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-24T03:18:41.9855436Z
2026-10-24T03:18:41.9855506Z 429     resolveWorktreeBaseRemote: (input) =>
2026-10-24T03:18:41.9855553Z         ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9855555Z
2026-10-24T03:18:41.9855885Z 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-24T03:18:41.9855889Z
2026-10-24T03:18:41.9855948Z 433     fetchWorktreeBaseCommit: (input) =>
2026-10-24T03:18:41.9855991Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9855993Z
2026-10-24T03:18:41.9856300Z 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-24T03:18:41.9856303Z
2026-10-24T03:18:41.9856355Z 437     removeWorktree: (input) =>
2026-10-24T03:18:41.9856397Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9856399Z
2026-10-24T03:18:41.9856743Z 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-24T03:18:41.9856748Z
2026-10-24T03:18:41.9856826Z 441     pruneWorktrees: (input) =>
2026-10-24T03:18:41.9856869Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9856871Z
2026-10-24T03:18:41.9857180Z 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-24T03:18:41.9857183Z
2026-10-24T03:18:41.9857237Z 445     deleteLocalBranch: (input) =>
2026-10-24T03:18:41.9857279Z         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9857282Z
2026-10-24T03:18:41.9857580Z 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-24T03:18:41.9857582Z
2026-10-24T03:18:41.9857631Z 449     createRef: (input) =>
2026-10-24T03:18:41.9857673Z         ~~~~~~~~~
2026-10-24T03:18:41.9857675Z
2026-10-24T03:18:41.9857971Z 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-24T03:18:41.9857974Z
2026-10-24T03:18:41.9858018Z 457     switchRef: (input) =>
2026-10-24T03:18:41.9858061Z         ~~~~~~~~~
2026-10-24T03:18:41.9858063Z
2026-10-24T03:18:41.9858363Z 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-24T03:18:41.9858365Z
2026-10-24T03:18:41.9858414Z 463     renameBranch: (input) =>
2026-10-24T03:18:41.9858452Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9858458Z
2026-10-24T03:18:41.9858716Z 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-24T03:18:41.9858720Z
2026-10-24T03:18:41.9858774Z 281   const receive = (raw: string) => {
2026-10-24T03:18:41.9858816Z             ~~~~~~~
2026-10-24T03:18:41.9858818Z
2026-10-24T03:18:41.9859184Z 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-24T03:18:41.9859186Z
2026-10-24T03:18:41.9859225Z 284       try {
2026-10-24T03:18:41.9859266Z           ~~~~~
2026-10-24T03:18:41.9859319Z 285         parsed = JSON.parse(line);
2026-10-24T03:18:41.9859364Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9859401Z ...
2026-10-24T03:18:41.9859508Z 287         return yield* respondWithError(null, "Parse error", -32700);
2026-10-24T03:18:41.9859575Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9859617Z 288       }
2026-10-24T03:18:41.9859656Z     ~~~~~~~
2026-10-24T03:18:41.9859658Z
2026-10-24T03:18:41.9859929Z 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-24T03:18:41.9859931Z
2026-10-24T03:18:41.9859992Z 324       Effect.catchCause(() => Effect.void),
2026-10-24T03:18:41.9860036Z           ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9860038Z
2026-10-24T03:18:41.9860265Z src/mcp/McpDeviceToolkit.test.ts:105:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9860271Z
2026-10-24T03:18:41.9860334Z 105   getById: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9860422Z                      ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9860424Z
2026-10-24T03:18:41.9860703Z 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-24T03:18:41.9860745Z
2026-10-24T03:18:41.9860841Z 421 const previewSnapshotFailure = <E>(cause: Cause.Cause<E>) => {
2026-10-24T03:18:41.9860884Z           ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9860886Z
2026-10-24T03:18:41.9861171Z src/mcp/McpHttpServer.ts:933:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpServer.McpServer.addTool")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9861173Z
2026-10-24T03:18:41.9861222Z 933       addTool: (options) =>
2026-10-24T03:18:41.9861262Z           ~~~~~~~
2026-10-24T03:18:41.9861264Z
2026-10-24T03:18:41.9861537Z 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-24T03:18:41.9861539Z
2026-10-24T03:18:41.9861597Z 22     resolve: () => Effect.succeed(undefined),
2026-10-24T03:18:41.9861651Z                       ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9861653Z
2026-10-24T03:18:41.9861933Z 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-24T03:18:41.9861935Z
2026-10-24T03:18:41.9861995Z 112       Effect.flatMap(() => writingCaller),
2026-10-24T03:18:41.9862039Z           ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9862041Z
2026-10-24T03:18:41.9862538Z 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-24T03:18:41.9862545Z
2026-10-24T03:18:41.9862616Z 2465       const cancelOrphan = Effect.gen(function* () {
2026-10-24T03:18:41.9862672Z                                            ~~~~~~~~~
2026-10-24T03:18:41.9862675Z
2026-10-24T03:18:41.9862910Z   src/mcp/OrchestratorMcpService.ts:2480:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-24T03:18:41.9862994Z     2480           .pipe(Effect.mapError(threadManagementFailure));
2026-10-24T03:18:41.9863039Z                          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9863041Z
2026-10-24T03:18:41.9863270Z   src/mcp/OrchestratorMcpService.ts:2483:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-24T03:18:41.9863359Z     2483           .pipe(Effect.mapError(threadManagementFailure));
2026-10-24T03:18:41.9863406Z                          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9863408Z
2026-10-24T03:18:41.9863681Z 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-24T03:18:41.9863688Z
2026-10-24T03:18:41.9863733Z 651         onNone: () =>
2026-10-24T03:18:41.9863775Z             ~~~~~~
2026-10-24T03:18:41.9863777Z
2026-10-24T03:18:41.9863982Z src/mcp/WorktreeMcpService.test.ts:355:3 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-24T03:18:41.9863984Z
2026-10-24T03:18:41.9864034Z 355   Effect.gen(function* () {
2026-10-24T03:18:41.9864075Z       ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9864160Z 356     return yield* WorktreeMcpService.WorktreeMcpService;
2026-10-24T03:18:41.9864267Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9864331Z 357   }).pipe(Effect.provide(harness.layer));
2026-10-24T03:18:41.9864370Z     ~~~~
2026-10-24T03:18:41.9864373Z
2026-10-24T03:18:41.9864642Z 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-24T03:18:41.9864691Z
2026-10-24T03:18:41.9864743Z 222     const thread = yield* engine
2026-10-24T03:18:41.9864789Z                               ~~~~~~
2026-10-24T03:18:41.9864838Z 223       .getThreadShell(threadId)
2026-10-24T03:18:41.9864885Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9864949Z 224       .pipe(Effect.map(Option.fromNullishOr))
2026-10-24T03:18:41.9865003Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9865085Z 225       .pipe(Effect.mapError((cause) => new Failure({ cause })));
2026-10-24T03:18:41.9865154Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9865156Z
2026-10-24T03:18:41.9865482Z 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-24T03:18:41.9865486Z
2026-10-24T03:18:41.9865607Z 96   McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-24T03:18:41.9865650Z                              ~~~
2026-10-24T03:18:41.9865657Z
2026-10-24T03:18:41.9865950Z 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-24T03:18:41.9865953Z
2026-10-24T03:18:41.9866070Z 96   McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-24T03:18:41.9866130Z                                                      ~~~~~~~~~
2026-10-24T03:18:41.9866134Z
2026-10-24T03:18:41.9866461Z 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-24T03:18:41.9866465Z
2026-10-24T03:18:41.9866515Z 16     record: (records) =>
2026-10-24T03:18:41.9866554Z        ~~~~~~
2026-10-24T03:18:41.9866556Z
2026-10-24T03:18:41.9866831Z 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-24T03:18:41.9866834Z
2026-10-24T03:18:41.9866938Z 41   defaultValue: () => ({ latestNoticeableStall: Effect.succeed(undefined) }),
2026-10-24T03:18:41.9867003Z                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9867005Z
2026-10-24T03:18:41.9867451Z 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-24T03:18:41.9867455Z
2026-10-24T03:18:41.9867554Z 30 const REPLAY_SETTINGS = Schema.decodeUnknownSync(AcpRegistrySettings)({
2026-10-24T03:18:41.9867607Z                                   ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9867609Z
2026-10-24T03:18:41.9867920Z 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-24T03:18:41.9867922Z
2026-10-24T03:18:41.9867983Z 48   defaultModel: Effect.succeed(undefined),
2026-10-24T03:18:41.9868035Z                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9868037Z
2026-10-24T03:18:41.9868381Z 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-24T03:18:41.9868384Z
2026-10-24T03:18:41.9868451Z 169         defaultModel: Effect.succeed(undefined),
2026-10-24T03:18:41.9868530Z                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9868532Z
2026-10-24T03:18:41.9868832Z 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-24T03:18:41.9868835Z
2026-10-24T03:18:41.9868898Z 306         defaultModel: Effect.succeed(undefined),
2026-10-24T03:18:41.9868945Z                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9868948Z
2026-10-24T03:18:41.9869250Z 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-24T03:18:41.9869252Z
2026-10-24T03:18:41.9869314Z 542         defaultModel: Effect.succeed(undefined),
2026-10-24T03:18:41.9869365Z                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9869370Z
2026-10-24T03:18:41.9869706Z 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-24T03:18:41.9869712Z
2026-10-24T03:18:41.9869770Z 974       const controller = new AbortController();
2026-10-24T03:18:41.9869821Z                              ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9869823Z
2026-10-24T03:18:41.9870116Z 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-24T03:18:41.9870118Z
2026-10-24T03:18:41.9870187Z 1326         const requestEvent = yield* runtime.events
2026-10-24T03:18:41.9870238Z                                          ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9870283Z 1327           .pipe(
2026-10-24T03:18:41.9870328Z      ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9870368Z  ...
2026-10-24T03:18:41.9870407Z 1330           )
2026-10-24T03:18:41.9870448Z      ~~~~~~~~~~~
2026-10-24T03:18:41.9870507Z 1331           .pipe(Effect.forkScoped);
2026-10-24T03:18:41.9870554Z      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9870556Z
2026-10-24T03:18:41.9870893Z 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-24T03:18:41.9870896Z
2026-10-24T03:18:41.9870964Z 1332         const controller = new AbortController();
2026-10-24T03:18:41.9871019Z                                 ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9871021Z
2026-10-24T03:18:41.9871353Z 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-24T03:18:41.9871358Z
2026-10-24T03:18:41.9871439Z 1355         const cancelledController = new AbortController();
2026-10-24T03:18:41.9871495Z                                          ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9871497Z
2026-10-24T03:18:41.9871871Z 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-24T03:18:41.9871874Z
2026-10-24T03:18:41.9871980Z 4018     getCapabilities: () => Effect.succeed(ClaudeProviderCapabilitiesV2),
2026-10-24T03:18:41.9872066Z          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9872069Z
2026-10-24T03:18:41.9872443Z 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-24T03:18:41.9872486Z
2026-10-24T03:18:41.9872604Z 4019     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T03:18:41.9872650Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9872653Z
2026-10-24T03:18:41.9873003Z 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-24T03:18:41.9873005Z
2026-10-24T03:18:41.9873071Z 201         signal: new AbortController().signal,
2026-10-24T03:18:41.9873121Z                     ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9873124Z
2026-10-24T03:18:41.9873510Z 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-24T03:18:41.9873516Z
2026-10-24T03:18:41.9873568Z 74   const pause = Effect.raceFirst(
2026-10-24T03:18:41.9873614Z                    ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9873617Z
2026-10-24T03:18:41.9873912Z 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-24T03:18:41.9873914Z
2026-10-24T03:18:41.9874023Z 1741     threadId === null ? Effect.succeed(undefined) : mcpSessions.read(threadId);
2026-10-24T03:18:41.9874077Z                              ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9874079Z
2026-10-24T03:18:41.9874439Z 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-24T03:18:41.9874443Z
2026-10-24T03:18:41.9874546Z 1748     getCapabilities: () => Effect.succeed(CodexProviderCapabilitiesV2),
2026-10-24T03:18:41.9874592Z          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9874594Z
2026-10-24T03:18:41.9874970Z 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-24T03:18:41.9874973Z
2026-10-24T03:18:41.9875089Z 1749     planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T03:18:41.9875137Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9875139Z
2026-10-24T03:18:41.9875490Z 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-24T03:18:41.9875494Z
2026-10-24T03:18:41.9875568Z 3045                   Effect.catch(() => Effect.succeed(null)),
2026-10-24T03:18:41.9875614Z                        ~~~~~~~~~~~~
2026-10-24T03:18:41.9875616Z
2026-10-24T03:18:41.9875984Z 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-24T03:18:41.9875988Z
2026-10-24T03:18:41.9876046Z 3046                   Effect.flatMap((response) =>
2026-10-24T03:18:41.9876094Z                        ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9876097Z
2026-10-24T03:18:41.9876415Z 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-24T03:18:41.9876417Z
2026-10-24T03:18:41.9876511Z 3068                   Effect.catch(() => Effect.void),
2026-10-24T03:18:41.9876554Z                        ~~~~~~~~~~~~
2026-10-24T03:18:41.9876556Z
2026-10-24T03:18:41.9876914Z 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-24T03:18:41.9876916Z
2026-10-24T03:18:41.9876999Z 7268                   return yield* Effect.fail(failedTermination.error);
2026-10-24T03:18:41.9877044Z                               ~~~~~
2026-10-24T03:18:41.9877046Z
2026-10-24T03:18:41.9877486Z 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-24T03:18:41.9877490Z
2026-10-24T03:18:41.9877590Z 33 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-24T03:18:41.9877647Z                                         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9877650Z
2026-10-24T03:18:41.9878076Z 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-24T03:18:41.9878078Z
2026-10-24T03:18:41.9878205Z 414 const DEFAULT_MUSE_SETTINGS = Schema.decodeUnknownSync(MuseSettings)({ enabled: true });
2026-10-24T03:18:41.9878263Z                                          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9878265Z
2026-10-24T03:18:41.9878609Z 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-24T03:18:41.9878612Z
2026-10-24T03:18:41.9878659Z 242       execute: (input) =>
2026-10-24T03:18:41.9878702Z           ~~~~~~~
2026-10-24T03:18:41.9878704Z
2026-10-24T03:18:41.9878969Z src/orchestration-v2/CheckpointRestoreSafety.test.ts:104:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9878971Z
2026-10-24T03:18:41.9879078Z 104             get: () => Effect.succeed(Option.some({ workspaceRoot: parent } as never)),
2026-10-24T03:18:41.9879123Z                            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9879129Z
2026-10-24T03:18:41.9879475Z 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-24T03:18:41.9879479Z
2026-10-24T03:18:41.9879533Z 41             Effect.catch((error) =>
2026-10-24T03:18:41.9879578Z                ~~~~~~~~~~~~
2026-10-24T03:18:41.9879580Z
2026-10-24T03:18:41.9879928Z 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-24T03:18:41.9879931Z
2026-10-24T03:18:41.9879984Z 83                 Effect.catch((error) =>
2026-10-24T03:18:41.9880026Z                    ~~~~~~~~~~~~
2026-10-24T03:18:41.9880028Z
2026-10-24T03:18:41.9880334Z src/orchestration-v2/CheckpointRollbackService.test.ts:233:22 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9880337Z
2026-10-24T03:18:41.9880437Z 233               return Effect.succeed(Option.some({ workspaceRoot } as never));
2026-10-24T03:18:41.9880483Z                          ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9880529Z
2026-10-24T03:18:41.9880882Z 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-24T03:18:41.9880890Z
2026-10-24T03:18:41.9880956Z 142         const batchAbort = new AbortController();
2026-10-24T03:18:41.9881011Z                                ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9881013Z
2026-10-24T03:18:41.9881384Z 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-24T03:18:41.9881386Z
2026-10-24T03:18:41.9881438Z 168     Effect.flatMap((frame) =>
2026-10-24T03:18:41.9881478Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9881480Z
2026-10-24T03:18:41.9881726Z src/orchestration-v2/CommandReceiptStore.ts:164:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9881728Z
2026-10-24T03:18:41.9881802Z 164               onNone: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9881854Z                                 ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9881857Z
2026-10-24T03:18:41.9882095Z src/orchestration-v2/CommandReceiptStore.ts:167:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9882098Z
2026-10-24T03:18:41.9882157Z 167                   ? Effect.succeed(Option.none())
2026-10-24T03:18:41.9882205Z                         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9882207Z
2026-10-24T03:18:41.9882450Z src/orchestration-v2/CommandReceiptStore.ts:168:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9882454Z
2026-10-24T03:18:41.9882555Z 168                   : fromApplicationReceipt(receipt).pipe(Effect.map(Option.some)),
2026-10-24T03:18:41.9882618Z                                                              ~~~~~~~~~~
2026-10-24T03:18:41.9882620Z
2026-10-24T03:18:41.9882857Z src/orchestration-v2/CommandReceiptStore.ts:183:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9882859Z
2026-10-24T03:18:41.9882918Z 183               ? Effect.succeed(Option.none())
2026-10-24T03:18:41.9882966Z                     ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9882968Z
2026-10-24T03:18:41.9883213Z src/orchestration-v2/CommandReceiptStore.ts:192:25 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9883216Z
2026-10-24T03:18:41.9883278Z 192                 }).pipe(Effect.map(Option.some)),
2026-10-24T03:18:41.9883324Z                             ~~~~~~~~~~
2026-10-24T03:18:41.9883326Z
2026-10-24T03:18:41.9883557Z src/orchestration-v2/EffectOutbox.ts:429:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9883559Z
2026-10-24T03:18:41.9883617Z 429               ? Effect.succeed(Option.none())
2026-10-24T03:18:41.9883664Z                     ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9883666Z
2026-10-24T03:18:41.9883896Z src/orchestration-v2/EffectOutbox.ts:430:39 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9883902Z
2026-10-24T03:18:41.9884019Z 430               : rowToEffect(row).pipe(Effect.map(Option.some));
2026-10-24T03:18:41.9884072Z                                           ~~~~~~~~~~
2026-10-24T03:18:41.9884075Z
2026-10-24T03:18:41.9884308Z src/orchestration-v2/EffectWorker.test.ts:107:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9884349Z
2026-10-24T03:18:41.9884413Z 107         get: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9884458Z                        ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9884460Z
2026-10-24T03:18:41.9884697Z src/orchestration-v2/EffectWorker.test.ts:302:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9884700Z
2026-10-24T03:18:41.9884785Z 302       claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T03:18:41.9884832Z                            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9884834Z
2026-10-24T03:18:41.9885069Z src/orchestration-v2/EffectWorker.test.ts:369:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9885071Z
2026-10-24T03:18:41.9885153Z 369       claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T03:18:41.9885202Z                            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9885205Z
2026-10-24T03:18:41.9885455Z src/orchestration-v2/EffectWorker.test.ts:436:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9885458Z
2026-10-24T03:18:41.9885539Z 436       claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T03:18:41.9885583Z                            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9885588Z
2026-10-24T03:18:41.9885824Z src/orchestration-v2/EffectWorker.test.ts:437:18 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9885826Z
2026-10-24T03:18:41.9885905Z 437       get: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T03:18:41.9885951Z                      ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9885953Z
2026-10-24T03:18:41.9886295Z 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-24T03:18:41.9886299Z
2026-10-24T03:18:41.9886349Z 98       execute: (effect, options) => {
2026-10-24T03:18:41.9886392Z          ~~~~~~~
2026-10-24T03:18:41.9886394Z
2026-10-24T03:18:41.9886726Z 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-24T03:18:41.9886728Z
2026-10-24T03:18:41.9886784Z 180                 Effect.catch((cause) =>
2026-10-24T03:18:41.9886833Z                     ~~~~~~~~~~~~
2026-10-24T03:18:41.9886835Z
2026-10-24T03:18:41.9887120Z 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-24T03:18:41.9887127Z
2026-10-24T03:18:41.9887174Z 110         append: (input) =>
2026-10-24T03:18:41.9887217Z             ~~~~~~
2026-10-24T03:18:41.9887219Z
2026-10-24T03:18:41.9887528Z 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-24T03:18:41.9887530Z
2026-10-24T03:18:41.9887588Z 120         appendProjectEvent: (event) =>
2026-10-24T03:18:41.9887630Z             ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9887632Z
2026-10-24T03:18:41.9887973Z 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-24T03:18:41.9887975Z
2026-10-24T03:18:41.9888033Z 131         latestSequence: (input) =>
2026-10-24T03:18:41.9888109Z             ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9888111Z
2026-10-24T03:18:41.9888373Z src/orchestration-v2/FoundationPersistence.test.ts:1791:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9888375Z
2026-10-24T03:18:41.9888461Z 1791         claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T03:18:41.9888515Z                               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9888517Z
2026-10-24T03:18:41.9888774Z src/orchestration-v2/FoundationPersistence.test.ts:1793:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9888778Z
2026-10-24T03:18:41.9888827Z 1793           Effect.succeed(
2026-10-24T03:18:41.9888870Z                ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9888872Z
2026-10-24T03:18:41.9889132Z src/orchestration-v2/FoundationPersistence.test.ts:2663:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9889137Z
2026-10-24T03:18:41.9889217Z 2663             nextClaimableAt: Effect.succeed(Option.none()),
2026-10-24T03:18:41.9889268Z                                   ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9889270Z
2026-10-24T03:18:41.9889524Z src/orchestration-v2/FoundationPersistence.test.ts:2880:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9889526Z
2026-10-24T03:18:41.9889600Z 2880             nextClaimableAt: Effect.succeed(Option.none()),
2026-10-24T03:18:41.9889652Z                                   ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9889654Z
2026-10-24T03:18:41.9890054Z src/orchestration-v2/Orchestrator.ts:11782:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-24T03:18:41.9890058Z
2026-10-24T03:18:41.9890112Z 11782       Effect.flatMap((planned) =>
2026-10-24T03:18:41.9890158Z             ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9890160Z
2026-10-24T03:18:41.9890490Z src/orchestration-v2/Orchestrator.ts:12205:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.restartContinuationPending")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9890495Z
2026-10-24T03:18:41.9890557Z 12205     restartContinuationPending: (run) =>
2026-10-24T03:18:41.9890602Z           ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9890605Z
2026-10-24T03:18:41.9890928Z src/orchestration-v2/Orchestrator.ts:12207:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.awaitRestartContinuation")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9890930Z
2026-10-24T03:18:41.9890992Z 12207     awaitRestartContinuation: (run) =>
2026-10-24T03:18:41.9891035Z           ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9891037Z
2026-10-24T03:18:41.9891360Z src/orchestration-v2/Orchestrator.ts:12210:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.autoArmLimitRecovery")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9891362Z
2026-10-24T03:18:41.9891418Z 12210     autoArmLimitRecovery: (input) =>
2026-10-24T03:18:41.9891462Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9891465Z
2026-10-24T03:18:41.9891831Z src/orchestration-v2/Orchestrator.ts:12238:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.searchThread")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9891834Z
2026-10-24T03:18:41.9891882Z 12238     searchThread: (input) =>
2026-10-24T03:18:41.9891926Z           ~~~~~~~~~~~~
2026-10-24T03:18:41.9891928Z
2026-10-24T03:18:41.9892369Z src/orchestration-v2/Orchestrator.ts:12246: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-24T03:18:41.9892372Z
2026-10-24T03:18:41.9892494Z 12246     getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-24T03:18:41.9892537Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9892539Z
2026-10-24T03:18:41.9892868Z src/orchestration-v2/Orchestrator.ts:12250:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9892870Z
2026-10-24T03:18:41.9892937Z 12250     getTimelinePage: (threadId, options) =>
2026-10-24T03:18:41.9892981Z           ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9892983Z
2026-10-24T03:18:41.9893302Z src/orchestration-v2/Orchestrator.ts:12254:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9893305Z
2026-10-24T03:18:41.9893360Z 12254     getMessageCount: (threadId) =>
2026-10-24T03:18:41.9893401Z           ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9893403Z
2026-10-24T03:18:41.9893712Z src/orchestration-v2/Orchestrator.ts:12258:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9893714Z
2026-10-24T03:18:41.9893766Z 12258     getTurnItem: (input) =>
2026-10-24T03:18:41.9893810Z           ~~~~~~~~~~~
2026-10-24T03:18:41.9893812Z
2026-10-24T03:18:41.9894154Z src/orchestration-v2/Orchestrator.ts:12266:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9894161Z
2026-10-24T03:18:41.9894232Z 12266     getThreadRecords: (threadId, fields, filter) =>
2026-10-24T03:18:41.9894277Z           ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9894279Z
2026-10-24T03:18:41.9894597Z src/orchestration-v2/Orchestrator.ts:12270:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadProjection")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9894600Z
2026-10-24T03:18:41.9894659Z 12270     getThreadProjection: (threadId) =>
2026-10-24T03:18:41.9894700Z           ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9894702Z
2026-10-24T03:18:41.9895022Z src/orchestration-v2/Orchestrator.ts:12274:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getCheckpointContext")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9895025Z
2026-10-24T03:18:41.9895348Z 12274     getCheckpointContext: (threadId) =>
2026-10-24T03:18:41.9895408Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9895410Z
2026-10-24T03:18:41.9899359Z src/orchestration-v2/Orchestrator.ts:12278:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshot")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9899364Z
2026-10-24T03:18:41.9899428Z 12278     getThreadSnapshot: (threadId) =>
2026-10-24T03:18:41.9899476Z           ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9899478Z
2026-10-24T03:18:41.9899897Z src/orchestration-v2/Orchestrator.ts:12282:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshotWindow")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9899900Z
2026-10-24T03:18:41.9899977Z 12282     getThreadSnapshotWindow: (threadId, options) =>
2026-10-24T03:18:41.9900057Z           ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9900059Z
2026-10-24T03:18:41.9900366Z src/orchestration-v2/Orchestrator.ts:12286:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9900369Z
2026-10-24T03:18:41.9900427Z 12286     getShellSnapshot: (options) =>
2026-10-24T03:18:41.9900472Z           ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9900474Z
2026-10-24T03:18:41.9900800Z src/orchestration-v2/Orchestrator.ts:12288:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.listActiveSubagentThreadIds")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9900802Z
2026-10-24T03:18:41.9900864Z 12288     listActiveSubagentThreadIds: () =>
2026-10-24T03:18:41.9900909Z           ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9900911Z
2026-10-24T03:18:41.9901232Z src/orchestration-v2/Orchestrator.ts:12290:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.readShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9901234Z
2026-10-24T03:18:41.9901289Z 12290     readShellSnapshot: (options) =>
2026-10-24T03:18:41.9901334Z           ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9901337Z
2026-10-24T03:18:41.9901642Z src/orchestration-v2/Orchestrator.ts:12297:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadShell")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9901647Z
2026-10-24T03:18:41.9901700Z 12297     getThreadShell: (threadId) =>
2026-10-24T03:18:41.9901746Z           ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9901748Z
2026-10-24T03:18:41.9902075Z src/orchestration-v2/Orchestrator.ts:12301:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadEventSequence")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T03:18:41.9902078Z
2026-10-24T03:18:41.9902142Z 12301     getThreadEventSequence: (threadId) =>
2026-10-24T03:18:41.9902186Z           ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9902188Z
2026-10-24T03:18:41.9902512Z 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-24T03:18:41.9902514Z
2026-10-24T03:18:41.9902585Z 160         getInstance: () => Effect.succeed(undefined),
2026-10-24T03:18:41.9902643Z                                ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9902647Z
2026-10-24T03:18:41.9902946Z 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-24T03:18:41.9902951Z
2026-10-24T03:18:41.9903061Z 269     getShell: (projectId) => get(projectId).pipe(Effect.map(Option.map(toShell))),
2026-10-24T03:18:41.9903104Z         ~~~~~~~~
2026-10-24T03:18:41.9903106Z
2026-10-24T03:18:41.9903404Z 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-24T03:18:41.9903406Z
2026-10-24T03:18:41.9903457Z 270     listShells: (options) =>
2026-10-24T03:18:41.9903505Z         ~~~~~~~~~~
2026-10-24T03:18:41.9903508Z
2026-10-24T03:18:41.9903827Z src/orchestration-v2/ProjectionControlReads.test.ts:279:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9903830Z
2026-10-24T03:18:41.9903880Z 279           Effect.succeed(
2026-10-24T03:18:41.9903925Z               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9903967Z
2026-10-24T03:18:41.9904301Z 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-24T03:18:41.9904304Z
2026-10-24T03:18:41.9904351Z 78       get: (instanceId) =>
2026-10-24T03:18:41.9904389Z          ~~~
2026-10-24T03:18:41.9904392Z
2026-10-24T03:18:41.9904717Z 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-24T03:18:41.9904720Z
2026-10-24T03:18:41.9904766Z 135       list: () =>
2026-10-24T03:18:41.9904808Z           ~~~~
2026-10-24T03:18:41.9904810Z
2026-10-24T03:18:41.9905130Z 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-24T03:18:41.9905136Z
2026-10-24T03:18:41.9905221Z 93       record: (properties: Readonly<Record<string, unknown>>) =>
2026-10-24T03:18:41.9905264Z          ~~~~~~
2026-10-24T03:18:41.9905285Z
2026-10-24T03:18:41.9905659Z 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-24T03:18:41.9905661Z
2026-10-24T03:18:41.9905724Z 818               Effect.flatMap((storedEvents) =>
2026-10-24T03:18:41.9905765Z                   ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9905768Z
2026-10-24T03:18:41.9906032Z src/orchestration-v2/ProviderSessionManager.test.ts:1155:19 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9906036Z
2026-10-24T03:18:41.9906161Z 1155                 : Effect.succeed(Option.some(makeBrowserAccessProject(requestedProjectId))),
2026-10-24T03:18:41.9906208Z                        ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9906210Z
2026-10-24T03:18:41.9906469Z src/orchestration-v2/ProviderTurnStartService.test.ts:150:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9906471Z
2026-10-24T03:18:41.9906516Z 150             Effect.succeed(
2026-10-24T03:18:41.9906561Z                 ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9906563Z
2026-10-24T03:18:41.9906824Z src/orchestration-v2/ProviderTurnStartService.test.ts:703:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9906826Z
2026-10-24T03:18:41.9906961Z 703             Effect.succeed(Option.some({ workspaceRoot: "/tmp/native-account-project" } as never)),
2026-10-24T03:18:41.9907008Z                 ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9907010Z
2026-10-24T03:18:41.9907275Z src/orchestration-v2/ProviderTurnStartService.testkit.ts:14:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9907277Z
2026-10-24T03:18:41.9907346Z 14     getById: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9907392Z                       ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9907394Z
2026-10-24T03:18:41.9907689Z 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-24T03:18:41.9907691Z
2026-10-24T03:18:41.9907913Z 205               Effect.catchCause(() => Effect.succeed(undefined)),
2026-10-24T03:18:41.9907972Z                                           ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9907975Z
2026-10-24T03:18:41.9908352Z 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-24T03:18:41.9908395Z
2026-10-24T03:18:41.9908453Z 512               Effect.catchCause((cause) =>
2026-10-24T03:18:41.9908500Z                   ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9908502Z
2026-10-24T03:18:41.9908914Z 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-24T03:18:41.9908917Z
2026-10-24T03:18:41.9908977Z 1302       return runExecution.startRootRun({
2026-10-24T03:18:41.9909019Z            ~~~~~~
2026-10-24T03:18:41.9909021Z
2026-10-24T03:18:41.9909284Z src/orchestration-v2/PullRequestWatchReactor.ts:478:53 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T03:18:41.9909287Z
2026-10-24T03:18:41.9909389Z 478             ? pullRequests.activity(reference).pipe(Effect.map(Option.some))
2026-10-24T03:18:41.9909452Z                                                         ~~~~~~~~~~
2026-10-24T03:18:41.9909454Z
2026-10-24T03:18:41.9909811Z 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-24T03:18:41.9909813Z
2026-10-24T03:18:41.9909888Z 49       cleanupScheduledTasks: (threadId: ThreadId) =>
2026-10-24T03:18:41.9909933Z          ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9909935Z
2026-10-24T03:18:41.9910281Z 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-24T03:18:41.9910285Z
2026-10-24T03:18:41.9910347Z 58       cleanupTerminals: (threadId: string) =>
2026-10-24T03:18:41.9910389Z          ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9910391Z
2026-10-24T03:18:41.9910734Z 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-24T03:18:41.9910737Z
2026-10-24T03:18:41.9910802Z 66       cleanupPreviews: (threadId: string) =>
2026-10-24T03:18:41.9910848Z          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9910851Z
2026-10-24T03:18:41.9911208Z 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-24T03:18:41.9911212Z
2026-10-24T03:18:41.9911300Z 74       cleanupAttachments: (attachmentIds: ReadonlyArray<string>) =>
2026-10-24T03:18:41.9911346Z          ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9911348Z
2026-10-24T03:18:41.9911607Z 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-24T03:18:41.9911609Z
2026-10-24T03:18:41.9911667Z 1812         ).pipe(Effect.map(Option.some)),
2026-10-24T03:18:41.9911710Z                     ~~~~~~~~~~
2026-10-24T03:18:41.9911715Z
2026-10-24T03:18:41.9912122Z 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-24T03:18:41.9912125Z
2026-10-24T03:18:41.9912212Z 931               Effect.catchCause((cause) =>
2026-10-24T03:18:41.9912260Z                   ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9912262Z
2026-10-24T03:18:41.9912499Z src/orchestration-v2/RuntimePolicy.test.ts:90:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9912501Z
2026-10-24T03:18:41.9912546Z 90         Effect.succeed(
2026-10-24T03:18:41.9912589Z            ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9912591Z
2026-10-24T03:18:41.9912890Z 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-24T03:18:41.9912894Z
2026-10-24T03:18:41.9912942Z 54   resolve: (input) =>
2026-10-24T03:18:41.9912984Z      ~~~~~~~
2026-10-24T03:18:41.9912986Z
2026-10-24T03:18:41.9913235Z src/orchestration-v2/RuntimeRequestService.test.ts:29:7 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9913238Z
2026-10-24T03:18:41.9913286Z 29       Effect.succeed(
2026-10-24T03:18:41.9913331Z          ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9913333Z
2026-10-24T03:18:41.9913586Z src/orchestration-v2/ThreadLaunchService.test.ts:189:33 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9913588Z
2026-10-24T03:18:41.9913682Z 189       getByWorkspaceRoot: () => Effect.succeed(Option.some(project)),
2026-10-24T03:18:41.9913733Z                                     ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9913735Z
2026-10-24T03:18:41.9913985Z src/orchestration-v2/ThreadLaunchService.test.ts:220:32 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9913987Z
2026-10-24T03:18:41.9914073Z 220         folderForThread: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9914126Z                                    ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9914128Z
2026-10-24T03:18:41.9914454Z 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-24T03:18:41.9914460Z
2026-10-24T03:18:41.9914505Z 91     archive: (input) =>
2026-10-24T03:18:41.9914546Z        ~~~~~~~
2026-10-24T03:18:41.9914548Z
2026-10-24T03:18:41.9914877Z 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-24T03:18:41.9914880Z
2026-10-24T03:18:41.9914929Z 97     unarchive: (input) =>
2026-10-24T03:18:41.9914967Z        ~~~~~~~~~
2026-10-24T03:18:41.9914969Z
2026-10-24T03:18:41.9915306Z 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-24T03:18:41.9915310Z
2026-10-24T03:18:41.9915359Z 103     delete: (input) =>
2026-10-24T03:18:41.9915433Z         ~~~~~~
2026-10-24T03:18:41.9915435Z
2026-10-24T03:18:41.9915776Z 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-24T03:18:41.9915779Z
2026-10-24T03:18:41.9915828Z 109     updateMetadata: (input) =>
2026-10-24T03:18:41.9915915Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9915917Z
2026-10-24T03:18:41.9916256Z 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-24T03:18:41.9916301Z
2026-10-24T03:18:41.9916354Z 118     setRuntimeMode: (input) =>
2026-10-24T03:18:41.9916396Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9916398Z
2026-10-24T03:18:41.9916739Z 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-24T03:18:41.9916741Z
2026-10-24T03:18:41.9916799Z 125     setInteractionMode: (input) =>
2026-10-24T03:18:41.9916842Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9916845Z
2026-10-24T03:18:41.9917188Z 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-24T03:18:41.9917190Z
2026-10-24T03:18:41.9917246Z 132     setModelSelection: (input) =>
2026-10-24T03:18:41.9917288Z         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9917290Z
2026-10-24T03:18:41.9917666Z 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-24T03:18:41.9917668Z
2026-10-24T03:18:41.9917724Z 689       Effect.flatMap((projection) =>
2026-10-24T03:18:41.9917768Z           ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9917770Z
2026-10-24T03:18:41.9918055Z 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-24T03:18:41.9918058Z
2026-10-24T03:18:41.9918124Z 706     ensureProjectionTranscript(input.threadId)
2026-10-24T03:18:41.9918179Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9918313Z 707       .pipe(Effect.andThen(orchestrator.getThreadRecords(input.threadId, fields, filter)))
2026-10-24T03:18:41.9918397Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9918437Z ...
2026-10-24T03:18:41.9918479Z 726         ),
2026-10-24T03:18:41.9918520Z     ~~~~~~~~~~
2026-10-24T03:18:41.9918559Z 727       );
2026-10-24T03:18:41.9918601Z     ~~~~~~~
2026-10-24T03:18:41.9918603Z
2026-10-24T03:18:41.9918972Z 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-24T03:18:41.9918974Z
2026-10-24T03:18:41.9919031Z 717         Effect.flatMap((projection) =>
2026-10-24T03:18:41.9919075Z             ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9919078Z
2026-10-24T03:18:41.9919439Z 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-24T03:18:41.9919445Z
2026-10-24T03:18:41.9919543Z 1131     if (failures[0] !== undefined) return yield* Effect.fail(failures[0]);
2026-10-24T03:18:41.9919599Z                                                ~~~~~
2026-10-24T03:18:41.9919601Z
2026-10-24T03:18:41.9919942Z 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-24T03:18:41.9919988Z
2026-10-24T03:18:41.9920041Z 1142     searchThread: (input) =>
2026-10-24T03:18:41.9920082Z          ~~~~~~~~~~~~
2026-10-24T03:18:41.9920085Z
2026-10-24T03:18:41.9920516Z 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-24T03:18:41.9920572Z
2026-10-24T03:18:41.9920693Z 1147     getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-24T03:18:41.9920739Z          ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9920741Z
2026-10-24T03:18:41.9921107Z 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-24T03:18:41.9921109Z
2026-10-24T03:18:41.9921172Z 1153     getTimelinePage: (threadId, options) =>
2026-10-24T03:18:41.9921217Z          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9921219Z
2026-10-24T03:18:41.9921571Z 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-24T03:18:41.9921575Z
2026-10-24T03:18:41.9921629Z 1157     getMessageCount: (threadId) =>
2026-10-24T03:18:41.9921673Z          ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9921676Z
2026-10-24T03:18:41.9922016Z 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-24T03:18:41.9922022Z
2026-10-24T03:18:41.9922071Z 1161     getTurnItem: (input) =>
2026-10-24T03:18:41.9922115Z          ~~~~~~~~~~~
2026-10-24T03:18:41.9922117Z
2026-10-24T03:18:41.9922499Z 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-24T03:18:41.9922503Z
2026-10-24T03:18:41.9922576Z 1166     getThreadRecords: (threadId, fields, filter) =>
2026-10-24T03:18:41.9922618Z          ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9922620Z
2026-10-24T03:18:41.9923010Z 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-24T03:18:41.9923012Z
2026-10-24T03:18:41.9923150Z 1206     ensureTranscript: () => Effect.succeed({ importedThreadCount: 0, importedMessageCount: 0 }),
2026-10-24T03:18:41.9923196Z          ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9923198Z
2026-10-24T03:18:41.9923464Z src/orchestration-v2/ThreadPullRequestService.test.ts:119:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9923468Z
2026-10-24T03:18:41.9923545Z 119             getShell: () => Effect.succeed(Option.some(project)),
2026-10-24T03:18:41.9923602Z                                 ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9923605Z
2026-10-24T03:18:41.9923865Z src/orchestration-v2/ThreadPullRequestService.test.ts:238:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9923868Z
2026-10-24T03:18:41.9923948Z 238               getShell: () => Effect.succeed(Option.some(project)),
2026-10-24T03:18:41.9924000Z                                   ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9924003Z
2026-10-24T03:18:41.9924424Z 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-24T03:18:41.9924429Z
2026-10-24T03:18:41.9924514Z 329                 Effect.catchCause((cause) =>
2026-10-24T03:18:41.9924563Z                     ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9924565Z
2026-10-24T03:18:41.9924938Z 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-24T03:18:41.9924940Z
2026-10-24T03:18:41.9924996Z 353           Effect.catchCause((cause) =>
2026-10-24T03:18:41.9925040Z               ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9925042Z
2026-10-24T03:18:41.9925432Z 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-24T03:18:41.9925434Z
2026-10-24T03:18:41.9925490Z 516           Effect.catchCause((cause) =>
2026-10-24T03:18:41.9925536Z               ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9925538Z
2026-10-24T03:18:41.9925905Z 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-24T03:18:41.9925907Z
2026-10-24T03:18:41.9925958Z 534       Effect.catchCause((cause) =>
2026-10-24T03:18:41.9926004Z           ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9926006Z
2026-10-24T03:18:41.9926382Z 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-24T03:18:41.9926384Z
2026-10-24T03:18:41.9926437Z 576         Effect.catchCause((cause) =>
2026-10-24T03:18:41.9926482Z             ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9926485Z
2026-10-24T03:18:41.9926829Z 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-24T03:18:41.9926832Z
2026-10-24T03:18:41.9926887Z 106       normalize: (item, runOrdinal) =>
2026-10-24T03:18:41.9926933Z           ~~~~~~~~~
2026-10-24T03:18:41.9926935Z
2026-10-24T03:18:41.9927334Z 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-24T03:18:41.9927337Z
2026-10-24T03:18:41.9927436Z 54 const thread = Schema.decodeUnknownSync(OrchestrationV2AppThread)({
2026-10-24T03:18:41.9927480Z                          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9927482Z
2026-10-24T03:18:41.9927850Z 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-24T03:18:41.9927852Z
2026-10-24T03:18:41.9927900Z 231           try {
2026-10-24T03:18:41.9927943Z               ~~~~~
2026-10-24T03:18:41.9928021Z 232             decodeThreadHistoryCursor(args.query.cursor);
2026-10-24T03:18:41.9928084Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9928125Z ...
2026-10-24T03:18:41.9928255Z 236             return yield* failEnvironmentInternal("orchestration_thread_history_failed", cause);
2026-10-24T03:18:41.9928385Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9928429Z 237           }
2026-10-24T03:18:41.9928471Z     ~~~~~~~~~~~
2026-10-24T03:18:41.9928474Z
2026-10-24T03:18:41.9928861Z src/orchestration-v2/runtimeLayer.test.ts:120:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9928863Z
2026-10-24T03:18:41.9928930Z 120   getById: () => Effect.succeed(Option.none()),
2026-10-24T03:18:41.9928974Z                      ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9928977Z
2026-10-24T03:18:41.9929215Z src/orchestration-v2/runtimeLayer.test.ts:996:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9929218Z
2026-10-24T03:18:41.9929266Z 996           Effect.succeed(
2026-10-24T03:18:41.9929311Z               ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9929315Z
2026-10-24T03:18:41.9929672Z 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-24T03:18:41.9929679Z
2026-10-24T03:18:41.9929724Z 40         append: (input) =>
2026-10-24T03:18:41.9929766Z            ~~~~~~
2026-10-24T03:18:41.9929768Z
2026-10-24T03:18:41.9930138Z 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-24T03:18:41.9930141Z
2026-10-24T03:18:41.9930203Z 283       const awaitDispatch = (key: string) =>
2026-10-24T03:18:41.9930243Z                 ~~~~~~~~~~~~~
2026-10-24T03:18:41.9930245Z
2026-10-24T03:18:41.9930663Z 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-24T03:18:41.9930667Z
2026-10-24T03:18:41.9930720Z 447       execute: () => Effect.void,
2026-10-24T03:18:41.9930763Z           ~~~~~~~
2026-10-24T03:18:41.9930765Z
2026-10-24T03:18:41.9931094Z 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-24T03:18:41.9931097Z
2026-10-24T03:18:41.9931141Z 92     list: (input) =>
2026-10-24T03:18:41.9931182Z        ~~~~
2026-10-24T03:18:41.9931184Z
2026-10-24T03:18:41.9931512Z 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-24T03:18:41.9931515Z
2026-10-24T03:18:41.9931559Z 102     set: (input) =>
2026-10-24T03:18:41.9931601Z         ~~~
2026-10-24T03:18:41.9931603Z
2026-10-24T03:18:41.9931929Z 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-24T03:18:41.9931933Z
2026-10-24T03:18:41.9931977Z 54     get: (key) =>
2026-10-24T03:18:41.9932018Z        ~~~
2026-10-24T03:18:41.9932020Z
2026-10-24T03:18:41.9932361Z 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-24T03:18:41.9932363Z
2026-10-24T03:18:41.9932412Z 64     put: (key, guide) =>
2026-10-24T03:18:41.9932450Z        ~~~
2026-10-24T03:18:41.9932452Z
2026-10-24T03:18:41.9932853Z 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-24T03:18:41.9932892Z
2026-10-24T03:18:41.9932946Z 45         Effect.catch((error) =>
2026-10-24T03:18:41.9932989Z            ~~~~~~~~~~~~
2026-10-24T03:18:41.9932991Z
2026-10-24T03:18:41.9933298Z 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-24T03:18:41.9933304Z
2026-10-24T03:18:41.9933368Z 75       awaitAttached: () => Effect.succeed(false),
2026-10-24T03:18:41.9933411Z          ~~~~~~~~~~~~~
2026-10-24T03:18:41.9933413Z
2026-10-24T03:18:41.9933715Z 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-24T03:18:41.9933718Z
2026-10-24T03:18:41.9933778Z 78       isAttached: () => Effect.succeed(false),
2026-10-24T03:18:41.9933816Z          ~~~~~~~~~~
2026-10-24T03:18:41.9933820Z
2026-10-24T03:18:41.9934116Z 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-24T03:18:41.9934118Z
2026-10-24T03:18:41.9934221Z 79       endpoint: () => Effect.die("No desktop app is attached to this server."),
2026-10-24T03:18:41.9934262Z          ~~~~~~~~
2026-10-24T03:18:41.9934264Z
2026-10-24T03:18:41.9934563Z 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-24T03:18:41.9934567Z
2026-10-24T03:18:41.9934615Z 80       pointer: () => Effect.void,
2026-10-24T03:18:41.9934657Z          ~~~~~~~
2026-10-24T03:18:41.9934660Z
2026-10-24T03:18:41.9934985Z 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-24T03:18:41.9934991Z
2026-10-24T03:18:41.9935045Z 194     awaitAttached: (key, timeout) =>
2026-10-24T03:18:41.9935088Z         ~~~~~~~~~~~~~
2026-10-24T03:18:41.9935090Z
2026-10-24T03:18:41.9935428Z 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-24T03:18:41.9935431Z
2026-10-24T03:18:41.9935530Z 216     isAttached: (key) => Effect.sync(() => attachedTabs.has(keyOf(key))),
2026-10-24T03:18:41.9935573Z         ~~~~~~~~~~
2026-10-24T03:18:41.9935575Z
2026-10-24T03:18:41.9935887Z 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-24T03:18:41.9935891Z
2026-10-24T03:18:41.9935992Z 218     pointer: (key, pointer) => command({ type: "pointer", ...key, ...pointer }),
2026-10-24T03:18:41.9936031Z         ~~~~~~~
2026-10-24T03:18:41.9936033Z
2026-10-24T03:18:41.9936474Z 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-24T03:18:41.9936477Z
2026-10-24T03:18:41.9936573Z 481     executable: () => Effect.runPromise(previewBrowser.executable),
2026-10-24T03:18:41.9936670Z                           ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9936673Z
2026-10-24T03:18:41.9937108Z 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-24T03:18:41.9937159Z
2026-10-24T03:18:41.9937210Z 688       ? Effect.runPromise(
2026-10-24T03:18:41.9937256Z             ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9937258Z
2026-10-24T03:18:41.9937699Z 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-24T03:18:41.9937701Z
2026-10-24T03:18:41.9937780Z 697     const scope = await Effect.runPromise(Scope.make());
2026-10-24T03:18:41.9937832Z                             ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9937834Z
2026-10-24T03:18:41.9938265Z 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-24T03:18:41.9938272Z
2026-10-24T03:18:41.9938333Z 699       const endpoint = await Effect.runPromise(
2026-10-24T03:18:41.9938385Z                                  ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9938388Z
2026-10-24T03:18:41.9938823Z 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-24T03:18:41.9938825Z
2026-10-24T03:18:41.9938909Z 709           await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-24T03:18:41.9938959Z                     ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9938963Z
2026-10-24T03:18:41.9939396Z 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-24T03:18:41.9939400Z
2026-10-24T03:18:41.9939483Z 713       await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-24T03:18:41.9939529Z                 ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9939531Z
2026-10-24T03:18:41.9939974Z 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-24T03:18:41.9939976Z
2026-10-24T03:18:41.9940027Z 1200     await Effect.runPromise(
2026-10-24T03:18:41.9940070Z                ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9940074Z
2026-10-24T03:18:41.9940515Z 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-24T03:18:41.9940517Z
2026-10-24T03:18:41.9940572Z 1693         : await Effect.runPromise(
2026-10-24T03:18:41.9940620Z                      ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9940622Z
2026-10-24T03:18:41.9941105Z 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-24T03:18:41.9941108Z
2026-10-24T03:18:41.9941162Z 1757             ? await Effect.runPromise(
2026-10-24T03:18:41.9941244Z                          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9941246Z
2026-10-24T03:18:41.9941508Z 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-24T03:18:41.9941510Z
2026-10-24T03:18:41.9941616Z 1760                     ServerBrowserTabNotFoundError: () => Effect.succeed(undefined),
2026-10-24T03:18:41.9941685Z                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9941687Z
2026-10-24T03:18:41.9942122Z 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-24T03:18:41.9942125Z
2026-10-24T03:18:41.9942196Z 1766           const { sessions } = await Effect.runPromise(
2026-10-24T03:18:41.9942256Z                                           ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9942259Z
2026-10-24T03:18:41.9942695Z 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-24T03:18:41.9942697Z
2026-10-24T03:18:41.9942753Z 1794             await Effect.runPromise(
2026-10-24T03:18:41.9942800Z                        ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9942802Z
2026-10-24T03:18:41.9943233Z 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-24T03:18:41.9943239Z
2026-10-24T03:18:41.9943290Z 1825               await Effect.runPromise(
2026-10-24T03:18:41.9943339Z                          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9943341Z
2026-10-24T03:18:41.9943774Z 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-24T03:18:41.9943776Z
2026-10-24T03:18:41.9943906Z 1889       await Effect.runPromise(manager.close({ threadId: tab.threadId, tabId: tab.tabId }));
2026-10-24T03:18:41.9943951Z                  ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9943956Z
2026-10-24T03:18:41.9944381Z 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-24T03:18:41.9944385Z
2026-10-24T03:18:41.9944438Z 1957         await Effect.runPromise(
2026-10-24T03:18:41.9944485Z                    ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9944488Z
2026-10-24T03:18:41.9944924Z 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-24T03:18:41.9944927Z
2026-10-24T03:18:41.9945037Z 1969         const snapshot = await Effect.runPromise(
2026-10-24T03:18:41.9945091Z                                     ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9945093Z
2026-10-24T03:18:41.9945574Z 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-24T03:18:41.9945620Z
2026-10-24T03:18:41.9945672Z 2215         await Effect.runPromise(
2026-10-24T03:18:41.9945719Z                    ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9945721Z
2026-10-24T03:18:41.9945990Z 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-24T03:18:41.9945993Z
2026-10-24T03:18:41.9946064Z 179       const receive = (chunk: Uint8Array | string) => {
2026-10-24T03:18:41.9946108Z                 ~~~~~~~
2026-10-24T03:18:41.9946110Z
2026-10-24T03:18:41.9946409Z 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-24T03:18:41.9946413Z
2026-10-24T03:18:41.9946507Z 209     Effect.catch(() => Effect.succeed(HttpServerResponse.empty())),
2026-10-24T03:18:41.9946548Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9946550Z
2026-10-24T03:18:41.9946867Z 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-24T03:18:41.9946869Z
2026-10-24T03:18:41.9946954Z 860     resolveAvailableEditors: () => cachedAvailableEditors,
2026-10-24T03:18:41.9947001Z         ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9947004Z
2026-10-24T03:18:41.9947328Z 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-24T03:18:41.9947333Z
2026-10-24T03:18:41.9947393Z 861     resolveFileManagerRevealKind: () =>
2026-10-24T03:18:41.9947435Z         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9947437Z
2026-10-24T03:18:41.9947740Z 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-24T03:18:41.9947743Z
2026-10-24T03:18:41.9947795Z 865     launchBrowser: (target) =>
2026-10-24T03:18:41.9947837Z         ~~~~~~~~~~~~~
2026-10-24T03:18:41.9947840Z
2026-10-24T03:18:41.9948141Z 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-24T03:18:41.9948146Z
2026-10-24T03:18:41.9948193Z 869     launchEditor: (input) =>
2026-10-24T03:18:41.9948235Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9948238Z
2026-10-24T03:18:41.9948485Z src/project/AgentSessionImporter.test.ts:212:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9948487Z
2026-10-24T03:18:41.9948537Z 212               Effect.succeed(
2026-10-24T03:18:41.9948578Z                   ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9948580Z
2026-10-24T03:18:41.9948814Z src/project/ManagedProjectFolders.ts:346:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9948816Z
2026-10-24T03:18:41.9948901Z 346           ? Effect.succeed(Option.some(folderFor(id.slice(-8))))
2026-10-24T03:18:41.9948992Z                 ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9948994Z
2026-10-24T03:18:41.9949225Z src/project/ManagedProjectFolders.ts:348:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9949271Z
2026-10-24T03:18:41.9949337Z 348             ? Effect.succeed(Option.some(fullFolder))
2026-10-24T03:18:41.9949382Z                   ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9949384Z
2026-10-24T03:18:41.9949693Z 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-24T03:18:41.9949695Z
2026-10-24T03:18:41.9949774Z 432     start: (input, hooks) => locked(start(input, hooks)),
2026-10-24T03:18:41.9949813Z         ~~~~~
2026-10-24T03:18:41.9949819Z
2026-10-24T03:18:41.9950127Z 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-24T03:18:41.9950129Z
2026-10-24T03:18:41.9950200Z 433     cancel: (projectId) => locked(cancel(projectId)),
2026-10-24T03:18:41.9950244Z         ~~~~~~
2026-10-24T03:18:41.9950246Z
2026-10-24T03:18:41.9950548Z 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-24T03:18:41.9950550Z
2026-10-24T03:18:41.9950619Z 434     retry: (projectId) => locked(retry(projectId)),
2026-10-24T03:18:41.9950659Z         ~~~~~
2026-10-24T03:18:41.9950661Z
2026-10-24T03:18:41.9950968Z 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-24T03:18:41.9950971Z
2026-10-24T03:18:41.9951044Z 435     discard: (projectId) => locked(discard(projectId)),
2026-10-24T03:18:41.9951085Z         ~~~~~~~
2026-10-24T03:18:41.9951087Z
2026-10-24T03:18:41.9951403Z 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-24T03:18:41.9951409Z
2026-10-24T03:18:41.9951505Z 21         get: (key) => Effect.sync(() => Option.fromUndefinedOr(bytes.get(key))),
2026-10-24T03:18:41.9951546Z            ~~~
2026-10-24T03:18:41.9951549Z
2026-10-24T03:18:41.9951878Z 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-24T03:18:41.9951880Z
2026-10-24T03:18:41.9951930Z 22         set: (key, value) =>
2026-10-24T03:18:41.9951968Z            ~~~
2026-10-24T03:18:41.9951970Z
2026-10-24T03:18:41.9952295Z 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-24T03:18:41.9952299Z
2026-10-24T03:18:41.9952347Z 26         remove: (key) =>
2026-10-24T03:18:41.9952389Z            ~~~~~~
2026-10-24T03:18:41.9952392Z
2026-10-24T03:18:41.9952711Z 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-24T03:18:41.9952713Z
2026-10-24T03:18:41.9952807Z 30         create: () => Effect.die("Handoff does not create persistent secrets."),
2026-10-24T03:18:41.9952850Z            ~~~~~~
2026-10-24T03:18:41.9952852Z
2026-10-24T03:18:41.9953240Z 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-24T03:18:41.9953276Z
2026-10-24T03:18:41.9953408Z 31         getOrCreateRandom: () => Effect.die("Handoff uses the destination environment identity."),
2026-10-24T03:18:41.9953454Z            ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9953457Z
2026-10-24T03:18:41.9953860Z 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-24T03:18:41.9953867Z
2026-10-24T03:18:41.9953974Z 205     return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(
2026-10-24T03:18:41.9954027Z                              ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9954031Z
2026-10-24T03:18:41.9954297Z 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-24T03:18:41.9954301Z
2026-10-24T03:18:41.9954355Z 569         ? Effect.succeed(undefined)
2026-10-24T03:18:41.9954399Z               ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9954401Z
2026-10-24T03:18:41.9954716Z 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-24T03:18:41.9954718Z
2026-10-24T03:18:41.9954768Z 284       current: (driverKind) =>
2026-10-24T03:18:41.9954810Z           ~~~~~~~
2026-10-24T03:18:41.9954812Z
2026-10-24T03:18:41.9955167Z 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-24T03:18:41.9955170Z
2026-10-24T03:18:41.9955225Z 284                 return yield* Effect.fail(
2026-10-24T03:18:41.9955283Z                            ~~~~~
2026-10-24T03:18:41.9955288Z
2026-10-24T03:18:41.9955634Z 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-24T03:18:41.9955636Z
2026-10-24T03:18:41.9955688Z 211     importProfile: (input) =>
2026-10-24T03:18:41.9955728Z         ~~~~~~~~~~~~~
2026-10-24T03:18:41.9955733Z
2026-10-24T03:18:41.9956070Z 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-24T03:18:41.9956073Z
2026-10-24T03:18:41.9956137Z 39       credentials: (namespace, bindingId) =>
2026-10-24T03:18:41.9956185Z          ~~~~~~~~~~~
2026-10-24T03:18:41.9956188Z
2026-10-24T03:18:41.9956552Z 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-24T03:18:41.9956556Z
2026-10-24T03:18:41.9956608Z 2933       Effect.catchCause((cause) =>
2026-10-24T03:18:41.9956650Z            ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9956652Z
2026-10-24T03:18:41.9957013Z 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-24T03:18:41.9957015Z
2026-10-24T03:18:41.9957067Z 3336       Effect.catchCause((cause) =>
2026-10-24T03:18:41.9957154Z            ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9957156Z
2026-10-24T03:18:41.9957464Z 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-24T03:18:41.9957510Z
2026-10-24T03:18:41.9957558Z 3556     listStats: (input) =>
2026-10-24T03:18:41.9957601Z          ~~~~~~~~~
2026-10-24T03:18:41.9957604Z
2026-10-24T03:18:41.9957837Z src/relay/AgentAwarenessRelay.test.ts:271:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T03:18:41.9957840Z
2026-10-24T03:18:41.9957888Z 271         Effect.succeed(
2026-10-24T03:18:41.9957931Z             ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9957933Z
2026-10-24T03:18:41.9958242Z 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-24T03:18:41.9958245Z
2026-10-24T03:18:41.9958366Z 822     requestCatchUp: () => Queue.offer(catchUpRequests, undefined).pipe(Effect.asVoid),
2026-10-24T03:18:41.9958411Z         ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9958413Z
2026-10-24T03:18:41.9958788Z 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-24T03:18:41.9958790Z
2026-10-24T03:18:41.9958848Z 641     requestDesktopUpdate: (requestId) =>
2026-10-24T03:18:41.9958893Z         ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9958896Z
2026-10-24T03:18:41.9959267Z 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-24T03:18:41.9959269Z
2026-10-24T03:18:41.9959328Z 647     commitDesktopUpdate: (requestId) =>
2026-10-24T03:18:41.9959372Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9959374Z
2026-10-24T03:18:41.9959738Z 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-24T03:18:41.9959741Z
2026-10-24T03:18:41.9959797Z 649     cancelDesktopUpdate: (requestId) =>
2026-10-24T03:18:41.9959841Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9959844Z
2026-10-24T03:18:41.9960194Z 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-24T03:18:41.9960198Z
2026-10-24T03:18:41.9960262Z 698       setDiagnosticsDemand: () => Effect.void,
2026-10-24T03:18:41.9960305Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9960307Z
2026-10-24T03:18:41.9960657Z 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-24T03:18:41.9960661Z
2026-10-24T03:18:41.9960723Z 699       requestDesktopUpdate: () => Effect.void,
2026-10-24T03:18:41.9960766Z           ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9960768Z
2026-10-24T03:18:41.9961119Z 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-24T03:18:41.9961123Z
2026-10-24T03:18:41.9961225Z 700       commitDesktopUpdate: () => Effect.void,
2026-10-24T03:18:41.9961275Z           ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9961277Z
2026-10-24T03:18:41.9961626Z 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-24T03:18:41.9961672Z
2026-10-24T03:18:41.9961734Z 701       cancelDesktopUpdate: () => Effect.void,
2026-10-24T03:18:41.9961778Z           ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9961780Z
2026-10-24T03:18:41.9962106Z 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-24T03:18:41.9962109Z
2026-10-24T03:18:41.9962155Z 1091       readHistory: () =>
2026-10-24T03:18:41.9962199Z            ~~~~~~~~~~~
2026-10-24T03:18:41.9962201Z
2026-10-24T03:18:41.9962552Z 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-24T03:18:41.9962556Z
2026-10-24T03:18:41.9962618Z 1097       setExternalProcesses: () => Effect.void,
2026-10-24T03:18:41.9962660Z            ~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9962662Z
2026-10-24T03:18:41.9963005Z 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-24T03:18:41.9963007Z
2026-10-24T03:18:41.9963068Z 1098       setHostPowerState: () => Effect.void,
2026-10-24T03:18:41.9963112Z            ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9963115Z
2026-10-24T03:18:41.9963407Z 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-24T03:18:41.9963413Z
2026-10-24T03:18:41.9963478Z 1136                             ? Effect.succeed(undefined)
2026-10-24T03:18:41.9963541Z                                    ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9963544Z
2026-10-24T03:18:41.9963818Z 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-24T03:18:41.9963820Z
2026-10-24T03:18:41.9963879Z 166       const results = yield* Effect.all(
2026-10-24T03:18:41.9963925Z                                  ~~~~~~~~~~
2026-10-24T03:18:41.9963927Z
2026-10-24T03:18:41.9964283Z src/server.ts:480:5 - suggestion TS377014: This generator returns an Effect-able value directly, which produces a nested `Effect<Effect<...>>`. If the intended result is the inner Effect value, `return yield*` represents that form. effect(returnEffectInGen)
2026-10-24T03:18:41.9964285Z
2026-10-24T03:18:41.9964339Z 480     return Effect.gen(function* () {
2026-10-24T03:18:41.9964381Z         ~~~~~~
2026-10-24T03:18:41.9964383Z
2026-10-24T03:18:41.9964655Z 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-24T03:18:41.9964657Z
2026-10-24T03:18:41.9964721Z 209           prepareTrial: Effect.succeed(undefined),
2026-10-24T03:18:41.9964777Z                             ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9964780Z
2026-10-24T03:18:41.9965043Z 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-24T03:18:41.9965045Z
2026-10-24T03:18:41.9965102Z 413       const results = yield* Effect.all(
2026-10-24T03:18:41.9965195Z                                  ~~~~~~~~~~
2026-10-24T03:18:41.9965198Z
2026-10-24T03:18:41.9965628Z 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-24T03:18:41.9965677Z
2026-10-24T03:18:41.9965733Z 204     listChangeRequests: (input) =>
2026-10-24T03:18:41.9965779Z         ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9965781Z
2026-10-24T03:18:41.9966177Z 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-24T03:18:41.9966180Z
2026-10-24T03:18:41.9966233Z 209     getChangeRequest: (input) =>
2026-10-24T03:18:41.9966276Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9966278Z
2026-10-24T03:18:41.9966684Z 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-24T03:18:41.9966688Z
2026-10-24T03:18:41.9966742Z 214     createChangeRequest: (input) =>
2026-10-24T03:18:41.9966788Z         ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9966790Z
2026-10-24T03:18:41.9967195Z 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-24T03:18:41.9967197Z
2026-10-24T03:18:41.9967254Z 219     getRepositoryCloneUrls: (input) =>
2026-10-24T03:18:41.9967301Z         ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9967303Z
2026-10-24T03:18:41.9967697Z 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-24T03:18:41.9967700Z
2026-10-24T03:18:41.9967801Z 224     createRepository: (input) => provider.createRepository(input),
2026-10-24T03:18:41.9967845Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9967847Z
2026-10-24T03:18:41.9968239Z 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-24T03:18:41.9968241Z
2026-10-24T03:18:41.9968293Z 225     getDefaultBranch: (input) =>
2026-10-24T03:18:41.9968336Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9968338Z
2026-10-24T03:18:41.9968743Z 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-24T03:18:41.9968747Z
2026-10-24T03:18:41.9968804Z 230     checkoutChangeRequest: (input) =>
2026-10-24T03:18:41.9968848Z         ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9968850Z
2026-10-24T03:18:41.9969209Z 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-24T03:18:41.9969211Z
2026-10-24T03:18:41.9969341Z 345       resolve: (input) => resolveHandle(input).pipe(Effect.map((handle) => handle.provider)),
2026-10-24T03:18:41.9969383Z           ~~~~~~~
2026-10-24T03:18:41.9969385Z
2026-10-24T03:18:41.9969791Z 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-24T03:18:41.9969795Z
2026-10-24T03:18:41.9970060Z 409       Effect.catch((sshError) =>
2026-10-24T03:18:41.9970104Z           ~~~~~~~~~~~~
2026-10-24T03:18:41.9970106Z
2026-10-24T03:18:41.9970481Z 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-24T03:18:41.9970483Z
2026-10-24T03:18:41.9970535Z 556     lookupRepository: (input) =>
2026-10-24T03:18:41.9970578Z         ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9970580Z
2026-10-24T03:18:41.9970942Z 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-24T03:18:41.9970944Z
2026-10-24T03:18:41.9970998Z 558     prepareClone: (input) =>
2026-10-24T03:18:41.9971039Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9971043Z
2026-10-24T03:18:41.9971421Z 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-24T03:18:41.9971423Z
2026-10-24T03:18:41.9971484Z 565     cloneRepository: (input, options) =>
2026-10-24T03:18:41.9971523Z         ~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9971526Z
2026-10-24T03:18:41.9971903Z 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-24T03:18:41.9971905Z
2026-10-24T03:18:41.9971963Z 572     discardClone: (destinationPath) =>
2026-10-24T03:18:41.9972004Z         ~~~~~~~~~~~~
2026-10-24T03:18:41.9972006Z
2026-10-24T03:18:41.9972387Z 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-24T03:18:41.9972391Z
2026-10-24T03:18:41.9972443Z 576     publishRepository: (input) =>
2026-10-24T03:18:41.9972488Z         ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9972491Z
2026-10-24T03:18:41.9972810Z 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-24T03:18:41.9972812Z
2026-10-24T03:18:41.9972864Z 708       return yield* Effect.fail(
2026-10-24T03:18:41.9972905Z                  ~~~~~
2026-10-24T03:18:41.9972910Z
2026-10-24T03:18:41.9973192Z 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-24T03:18:41.9973196Z
2026-10-24T03:18:41.9973244Z 113       record: () => Effect.void,
2026-10-24T03:18:41.9973285Z           ~~~~~~
2026-10-24T03:18:41.9973288Z
2026-10-24T03:18:41.9973582Z 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-24T03:18:41.9973585Z
2026-10-24T03:18:41.9973637Z 115       recordOwners: () => Effect.void,
2026-10-24T03:18:41.9973680Z           ~~~~~~~~~~~~
2026-10-24T03:18:41.9973682Z
2026-10-24T03:18:41.9974053Z 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-24T03:18:41.9974055Z
2026-10-24T03:18:41.9974199Z 329   yield* Effect.forever(Effect.sleep(FLUSH_INTERVAL_MS).pipe(Effect.flatMap(() => flushWhenDue)), {
2026-10-24T03:18:41.9974330Z                                                                  ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9974333Z
2026-10-24T03:18:41.9974599Z 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-24T03:18:41.9974604Z
2026-10-24T03:18:41.9974662Z 90       .pipe(Effect.catch(() => Effect.void));
2026-10-24T03:18:41.9974706Z                ~~~~~~~~~~~~
2026-10-24T03:18:41.9974708Z
2026-10-24T03:18:41.9975031Z 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-24T03:18:41.9975033Z
2026-10-24T03:18:41.9975126Z 60     generateCommitMessage: (input) =>
2026-10-24T03:18:41.9975168Z        ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9975172Z
2026-10-24T03:18:41.9975497Z 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-24T03:18:41.9975500Z
2026-10-24T03:18:41.9975552Z 64     generatePrContent: (input) =>
2026-10-24T03:18:41.9975596Z        ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9975598Z
2026-10-24T03:18:41.9975905Z 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-24T03:18:41.9975907Z
2026-10-24T03:18:41.9975961Z 68     generateBranchName: (input) =>
2026-10-24T03:18:41.9976006Z        ~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9976008Z
2026-10-24T03:18:41.9976316Z 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-24T03:18:41.9976320Z
2026-10-24T03:18:41.9976375Z 72     generateReviewGuide: (input) =>
2026-10-24T03:18:41.9976420Z        ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9976425Z
2026-10-24T03:18:41.9976732Z 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-24T03:18:41.9976734Z
2026-10-24T03:18:41.9976788Z 76     generateThreadTitle: (input) =>
2026-10-24T03:18:41.9976831Z        ~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9976834Z
2026-10-24T03:18:41.9977112Z 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-24T03:18:41.9977116Z
2026-10-24T03:18:41.9977164Z 172     readSummary: (input) =>
2026-10-24T03:18:41.9977206Z         ~~~~~~~~~~~
2026-10-24T03:18:41.9977208Z
2026-10-24T03:18:41.9977450Z 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-24T03:18:41.9977452Z
2026-10-24T03:18:41.9977510Z 642         usageInstances(driver, settings)
2026-10-24T03:18:41.9977559Z             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9977599Z 643           .pipe(
2026-10-24T03:18:41.9977641Z     ~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9977681Z ...
2026-10-24T03:18:41.9977746Z 664             Effect.provideContext(readerContext),
2026-10-24T03:18:41.9977849Z     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9977891Z 665           ),
2026-10-24T03:18:41.9977932Z     ~~~~~~~~~~~
2026-10-24T03:18:41.9977934Z
2026-10-24T03:18:41.9978272Z 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-24T03:18:41.9978317Z
2026-10-24T03:18:41.9978367Z 4009         Effect.flatMap((result) =>
2026-10-24T03:18:41.9978412Z              ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9978414Z
2026-10-24T03:18:41.9978740Z 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-24T03:18:41.9978742Z
2026-10-24T03:18:41.9978804Z 4500     commit: (cwd, subject, body, options) =>
2026-10-24T03:18:41.9978846Z          ~~~~~~
2026-10-24T03:18:41.9978852Z
2026-10-24T03:18:41.9979205Z 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-24T03:18:41.9979209Z
2026-10-24T03:18:41.9979292Z 4502     pushCurrentBranch: (cwd, fallbackBranch, options) =>
2026-10-24T03:18:41.9979335Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9979337Z
2026-10-24T03:18:41.9979652Z 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-24T03:18:41.9979654Z
2026-10-24T03:18:41.9979777Z 4504     pullCurrentBranch: (cwd) => withListRefsInvalidation(cwd, pullCurrentBranch(cwd)),
2026-10-24T03:18:41.9979819Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9979822Z
2026-10-24T03:18:41.9980148Z 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-24T03:18:41.9980152Z
2026-10-24T03:18:41.9980211Z 4511     createWorktree: (input, options) =>
2026-10-24T03:18:41.9980258Z          ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9980262Z
2026-10-24T03:18:41.9980587Z 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-24T03:18:41.9980593Z
2026-10-24T03:18:41.9980649Z 4513     fetchPullRequestBranch: (input) =>
2026-10-24T03:18:41.9980694Z          ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9980696Z
2026-10-24T03:18:41.9981030Z 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-24T03:18:41.9981032Z
2026-10-24T03:18:41.9981091Z 4517     refreshCheckedOutBranch: (input) =>
2026-10-24T03:18:41.9981136Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9981139Z
2026-10-24T03:18:41.9981447Z 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-24T03:18:41.9981449Z
2026-10-24T03:18:41.9981573Z 4519     ensureRemote: (input) => withListRefsInvalidation(input.cwd, ensureRemote(input)),
2026-10-24T03:18:41.9981616Z          ~~~~~~~~~~~~
2026-10-24T03:18:41.9981618Z
2026-10-24T03:18:41.9981965Z 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-24T03:18:41.9981967Z
2026-10-24T03:18:41.9982014Z 4522     fetchRemote: (input) =>
2026-10-24T03:18:41.9982058Z          ~~~~~~~~~~~
2026-10-24T03:18:41.9982060Z
2026-10-24T03:18:41.9982446Z 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-24T03:18:41.9982448Z
2026-10-24T03:18:41.9982506Z 4537     fetchWorktreeBaseCommit: (input) =>
2026-10-24T03:18:41.9982551Z          ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9982553Z
2026-10-24T03:18:41.9982867Z 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-24T03:18:41.9982869Z
2026-10-24T03:18:41.9983011Z 4539     fetchRemoteBranch: (input) => withListRefsInvalidation(input.cwd, fetchRemoteBranch(input)),
2026-10-24T03:18:41.9983055Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9983057Z
2026-10-24T03:18:41.9983395Z 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-24T03:18:41.9983400Z
2026-10-24T03:18:41.9983462Z 4540     fetchRemoteTrackingBranch: (input) =>
2026-10-24T03:18:41.9983507Z          ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9983509Z
2026-10-24T03:18:41.9983829Z 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-24T03:18:41.9983831Z
2026-10-24T03:18:41.9983970Z 4542     setBranchUpstream: (input) => withListRefsInvalidation(input.cwd, setBranchUpstream(input)),
2026-10-24T03:18:41.9984014Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9984017Z
2026-10-24T03:18:41.9984334Z 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-24T03:18:41.9984338Z
2026-10-24T03:18:41.9984465Z 4543     removeWorktree: (input) => withListRefsInvalidation(input.cwd, removeWorktree(input)),
2026-10-24T03:18:41.9984509Z          ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9984512Z
2026-10-24T03:18:41.9984830Z 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-24T03:18:41.9984832Z
2026-10-24T03:18:41.9984962Z 4544     pruneWorktrees: (input) => withListRefsInvalidation(input.cwd, pruneWorktrees(input)),
2026-10-24T03:18:41.9985005Z          ~~~~~~~~~~~~~~
2026-10-24T03:18:41.9985007Z
2026-10-24T03:18:41.9985349Z 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-24T03:18:41.9985353Z
2026-10-24T03:18:41.9985488Z 4545     deleteLocalBranch: (input) => withListRefsInvalidation(input.cwd, deleteLocalBranch(input)),
2026-10-24T03:18:41.9985537Z          ~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9985539Z
2026-10-24T03:18:41.9985852Z 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-24T03:18:41.9985854Z
2026-10-24T03:18:41.9985973Z 4546     renameBranch: (input) => withListRefsInvalidation(input.cwd, renameBranch(input)),
2026-10-24T03:18:41.9986051Z          ~~~~~~~~~~~~
2026-10-24T03:18:41.9986053Z
2026-10-24T03:18:41.9986357Z 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-24T03:18:41.9986402Z
2026-10-24T03:18:41.9986510Z 4547     createRef: (input) => withListRefsInvalidation(input.cwd, createRef(input)),
2026-10-24T03:18:41.9986555Z          ~~~~~~~~~
2026-10-24T03:18:41.9986557Z
2026-10-24T03:18:41.9986857Z 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-24T03:18:41.9986859Z
2026-10-24T03:18:41.9986964Z 4548     switchRef: (input) => withListRefsInvalidation(input.cwd, switchRef(input)),
2026-10-24T03:18:41.9987006Z          ~~~~~~~~~
2026-10-24T03:18:41.9987008Z
2026-10-24T03:18:41.9987397Z 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-24T03:18:41.9987401Z
2026-10-24T03:18:41.9987469Z 153     return serverSettings.getSettings.pipe(
2026-10-24T03:18:41.9987513Z         ~~~~~~
2026-10-24T03:18:41.9987515Z
2026-10-24T03:18:41.9987814Z 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-24T03:18:41.9987817Z
2026-10-24T03:18:41.9987901Z 171       }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-24T03:18:41.9987947Z                   ~~~~~~~~~~~~
2026-10-24T03:18:41.9987950Z
2026-10-24T03:18:41.9988224Z 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-24T03:18:41.9988226Z
2026-10-24T03:18:41.9988308Z 171       }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-24T03:18:41.9988371Z                                      ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9988373Z
2026-10-24T03:18:41.9988607Z 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-24T03:18:41.9988609Z
2026-10-24T03:18:41.9988709Z 401           resolveFileManagerRevealKind: () => Effect.succeed(undefined),
2026-10-24T03:18:41.9988774Z                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T03:18:41.9988776Z
2026-10-24T03:18:41.9989056Z 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-24T03:18:41.9989059Z
2026-10-24T03:18:41.9989118Z 1384         return yield* Option.match(project, {
2026-10-24T03:18:41.9989165Z                            ~~~~~~~~~~~~
2026-10-24T03:18:41.9989169Z
2026-10-24T03:18:41.9989467Z 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-24T03:18:41.9989469Z
2026-10-24T03:18:41.9989528Z 2319                 return yield* Effect.fail(
2026-10-24T03:18:41.9989572Z                             ~~~~~
2026-10-24T03:18:41.9989577Z
2026-10-24T03:18:41.9989868Z 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-24T03:18:41.9989870Z
2026-10-24T03:18:41.9989969Z 2328                 return yield* Effect.fail(
2026-10-24T03:18:41.9990015Z                             ~~~~~
2026-10-24T03:18:41.9990018Z
2026-10-24T03:18:41.9990307Z 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-24T03:18:41.9990358Z
2026-10-24T03:18:41.9990411Z 2336                 return yield* Effect.fail(
2026-10-24T03:18:41.9990456Z                             ~~~~~
2026-10-24T03:18:41.9990458Z
2026-10-24T03:18:41.9990460Z
2026-10-24T03:18:41.9990503Z ---
2026-10-24T03:18:41.9990766Z 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-24T03:18:42.0832030Z Post job cleanup.
2026-10-24T03:18:42.1423870Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-24T03:18:42.1543752Z Post job cleanup.
2026-10-24T03:18:42.1565361Z ##[start-action display=Cache full pnpm store;id=__d5d10480-0cca-47b9-8869-485f790ac56a.__actions_cache]
2026-10-24T03:18:42.2245134Z Post job cleanup.
2026-10-24T03:18:42.2835683Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-3cb0b4d7cff93dc8fe33f2ea73cac71ca25a36270fcb648b9b4a9320151012ef, not saving cache.
2026-10-24T03:18:42.2863759Z ##[end-action id=__d5d10480-0cca-47b9-8869-485f790ac56a.__actions_cache;outcome=success;conclusion=success;duration_ms=129]
2026-10-24T03:18:42.2880040Z ##[start-action display=Cache Vite+;id=__d5d10480-0cca-47b9-8869-485f790ac56a.vp_cache]
2026-10-24T03:18:42.2969318Z Post job cleanup.
2026-10-24T03:18:42.3568628Z 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-24T03:18:42.3598093Z ##[end-action id=__d5d10480-0cca-47b9-8869-485f790ac56a.vp_cache;outcome=success;conclusion=success;duration_ms=71]
2026-10-24T03:18:42.3790769Z Post job cleanup.
2026-10-24T03:18:42.4188621Z [command]/usr/local/bin/git version
2026-10-24T03:18:42.4237152Z git version 2.55.0
2026-10-24T03:18:42.4256613Z Temporarily overriding HOME='/home/runner/_work/_temp/d63d9152-4a78-48be-be0c-f14027479420' before making global git config changes
2026-10-24T03:18:42.4257240Z Adding repository directory to the temporary git global config as a safe directory
2026-10-24T03:18:42.4259998Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-24T03:18:42.4281737Z Removing SSH command configuration
2026-10-24T03:18:42.4284441Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-24T03:18:42.4305626Z [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-24T03:18:42.4426314Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-24T03:18:42.4446268Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-24T03:18:42.4491301Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-24T03:18:42.4508904Z ##[group]Run '/job_completed.sh'
2026-10-24T03:18:42.4517835Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-24T03:18:42.4517999Z env:
2026-10-24T03:18:42.4518112Z   BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 204
2026-10-24T03:18:42.4518254Z   BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 399
2026-10-24T03:18:42.4518399Z   BLACKSMITH_CHECK_RUN_ID: 120764330470
2026-10-24T03:18:42.4518549Z   BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck
2026-10-24T03:18:42.4518707Z   GITHUB_ACTIONS_CACHE_MODE: write
2026-10-24T03:18:42.4518833Z ##[endgroup]
2026-10-24T03:18:42.4589947Z Docker container cache not activated, skipping hash computation.
2026-10-24T03:18:42.4843499Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-24T03:18:42.4884310Z Cleaning up orphan processes