GitHub check
256 KB of 530 KB loaded Download the full log (530 KB)
274 KB of earlier output not loaded
solution")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7319201Z
2026-10-24T23:06:14.7319260Z 862 setCommentResolution: (input) =>
2026-10-24T23:06:14.7319398Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7319473Z
2026-10-24T23:06:14.7319862Z src/server/BitbucketSourceControlProvider.ts:47:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.listChangeRequests")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7320286Z
2026-10-24T23:06:14.7320343Z 47 listChangeRequests: (input) => {
2026-10-24T23:06:14.7320478Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7320547Z
2026-10-24T23:06:14.7320926Z src/server/BitbucketSourceControlProvider.ts:75:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7321349Z
2026-10-24T23:06:14.7321402Z 75 getChangeRequest: (input) =>
2026-10-24T23:06:14.7321531Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7321602Z
2026-10-24T23:06:14.7321989Z src/server/BitbucketSourceControlProvider.ts:92:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7322411Z
2026-10-24T23:06:14.7322470Z 92 createChangeRequest: (input) => {
2026-10-24T23:06:14.7322611Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7322680Z
2026-10-24T23:06:14.7323074Z src/server/BitbucketSourceControlProvider.ts:121:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getRepositoryCloneUrls")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7323508Z
2026-10-24T23:06:14.7323566Z 121 getRepositoryCloneUrls: (input) =>
2026-10-24T23:06:14.7323708Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7323790Z
2026-10-24T23:06:14.7324172Z src/server/BitbucketSourceControlProvider.ts:137:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.createRepository")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7324669Z
2026-10-24T23:06:14.7324723Z 137 createRepository: (input) =>
2026-10-24T23:06:14.7324857Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7324928Z
2026-10-24T23:06:14.7325305Z src/server/BitbucketSourceControlProvider.ts:153:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getDefaultBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7325770Z
2026-10-24T23:06:14.7325824Z 153 getDefaultBranch: (input) =>
2026-10-24T23:06:14.7325951Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7326019Z
2026-10-24T23:06:14.7326407Z src/server/BitbucketSourceControlProvider.ts:171:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.checkoutChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7326838Z
2026-10-24T23:06:14.7326894Z 171 checkoutChangeRequest: (input) =>
2026-10-24T23:06:14.7327039Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7327115Z
2026-10-24T23:06:14.7327117Z
2026-10-24T23:06:14.7327173Z ~/packages/provider-pi$ tsc --noEmit
2026-10-24T23:06:14.7327552Z src/server/GitCafeCredentials.ts:170:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.get")((host) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7327876Z
2026-10-24T23:06:14.7327920Z 170 get: (host) =>
2026-10-24T23:06:14.7328031Z ~~~
2026-10-24T23:06:14.7328089Z
2026-10-24T23:06:14.7328381Z src/server/GitCafeCredentials.ts:183:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.invalidate")((host) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7328717Z
2026-10-24T23:06:14.7328815Z 183 invalidate: (host) => Cache.invalidate(cache, normalizeHost(host)),
2026-10-24T23:06:14.7328995Z ~~~~~~~~~~
2026-10-24T23:06:14.7329059Z
2026-10-24T23:06:14.7329352Z src/server/GitCafeCredentials.ts:184:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitCafeCredentials.cliEnv")((host) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7329681Z
2026-10-24T23:06:14.7329730Z 184 cliEnv: (host) =>
2026-10-24T23:06:14.7329843Z ~~~~~~
2026-10-24T23:06:14.7329904Z
2026-10-24T23:06:14.7330150Z src/server/GitCafePullRequestProvider.ts:341:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7330435Z
2026-10-24T23:06:14.7330488Z 341 Effect.map(Option.some),
2026-10-24T23:06:14.7330613Z ~~~~~~~~~~
2026-10-24T23:06:14.7330680Z
2026-10-24T23:06:14.7330922Z src/server/GitCafePullRequestProvider.ts:346:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7331203Z
2026-10-24T23:06:14.7331262Z 346 : Effect.succeed(Option.none()),
2026-10-24T23:06:14.7331415Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7331499Z
2026-10-24T23:06:14.7331739Z src/server/GitCafePullRequestProvider.ts:655:13 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7332022Z
2026-10-24T23:06:14.7332082Z 655 Effect.map(Option.some),
2026-10-24T23:06:14.7332214Z ~~~~~~~~~~
2026-10-24T23:06:14.7332288Z
2026-10-24T23:06:14.7332526Z src/server/GitCafePullRequestProvider.ts:660:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7332804Z
2026-10-24T23:06:14.7332867Z 660 : Effect.succeed(Option.none()),
2026-10-24T23:06:14.7333019Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7333107Z
2026-10-24T23:06:14.7333438Z src/server/GitCafePullRequestProvider.ts:673:15 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("readPage")((rows, after) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7333773Z
2026-10-24T23:06:14.7333856Z 673 const readPage = (rows: number, after: string | null) => {
2026-10-24T23:06:14.7334024Z ~~~~~~~~
2026-10-24T23:06:14.7334110Z
2026-10-24T23:06:14.7334537Z src/server/GitCafePullRequestProvider.ts:790:13 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7334911Z
2026-10-24T23:06:14.7334965Z 790 Effect.catch((error) =>
2026-10-24T23:06:14.7335103Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7335176Z
2026-10-24T23:06:14.7335512Z src/server/GitCafePullRequestProvider.ts:872:19 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7335888Z
2026-10-24T23:06:14.7335948Z 872 Effect.catch((error) =>
2026-10-24T23:06:14.7336093Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7336175Z
2026-10-24T23:06:14.7336177Z
2026-10-24T23:06:14.7336235Z ~/packages/provider-muse$ tsc --noEmit
2026-10-24T23:06:14.7336721Z src/server/ForgejoSourceControlProvider.ts:362:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlProvider.SourceControlProvider.getChangeRequest")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7337145Z
2026-10-24T23:06:14.7337200Z 362 getChangeRequest: (input) =>
2026-10-24T23:06:14.7337330Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7337402Z
2026-10-24T23:06:14.7337404Z
2026-10-24T23:06:14.7337466Z ~/packages/provider-opencode$ tsc --noEmit
2026-10-24T23:06:14.7337875Z 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-24T23:06:14.7338341Z
2026-10-24T23:06:14.7338440Z 440 getCapabilities: () => Effect.succeed(PiProviderCapabilitiesV2),
2026-10-24T23:06:14.7338618Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7338689Z
2026-10-24T23:06:14.7339018Z 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-24T23:06:14.7339386Z
2026-10-24T23:06:14.7339504Z 441 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T23:06:14.7339718Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7339798Z
2026-10-24T23:06:14.7340013Z src/server/adapter.ts:1694:31 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7340268Z
2026-10-24T23:06:14.7340336Z 1694 Effect.map(Option.some),
2026-10-24T23:06:14.7340495Z ~~~~~~~~~~
2026-10-24T23:06:14.7340590Z
2026-10-24T23:06:14.7340800Z src/server/adapter.ts:1697:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7341055Z
2026-10-24T23:06:14.7341127Z 1697 : Effect.succeed(Option.none()),
2026-10-24T23:06:14.7341295Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7341391Z
2026-10-24T23:06:14.7341634Z 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-24T23:06:14.7341919Z
2026-10-24T23:06:14.7341969Z 334 onSuccess: () =>
2026-10-24T23:06:14.7342153Z ~~~~~~~~~
2026-10-24T23:06:14.7342218Z
2026-10-24T23:06:14.7348512Z src/server/rpc.ts:342:17 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7348773Z
2026-10-24T23:06:14.7348835Z 342 Effect.map(Option.some),
2026-10-24T23:06:14.7348977Z ~~~~~~~~~~
2026-10-24T23:06:14.7349147Z
2026-10-24T23:06:14.7349149Z
2026-10-24T23:06:14.7349211Z ~/packages/provider-cursor$ tsc --noEmit
2026-10-24T23:06:14.7349624Z 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-24T23:06:14.7349977Z
2026-10-24T23:06:14.7350076Z 284 getCapabilities: () => Effect.succeed(MuseProviderCapabilitiesV2),
2026-10-24T23:06:14.7350258Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7350328Z
2026-10-24T23:06:14.7350657Z 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-24T23:06:14.7351021Z
2026-10-24T23:06:14.7351142Z 285 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T23:06:14.7351351Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7351427Z
2026-10-24T23:06:14.7351693Z 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-24T23:06:14.7351993Z
2026-10-24T23:06:14.7352048Z 388 TimeoutError: (cause) =>
2026-10-24T23:06:14.7352185Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7352260Z
2026-10-24T23:06:14.7352476Z src/server/adapter.ts:1366:35 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7352724Z
2026-10-24T23:06:14.7352849Z 1366 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-24T23:06:14.7353062Z ~~~~~~~~~~
2026-10-24T23:06:14.7353152Z
2026-10-24T23:06:14.7353362Z src/server/adapter.ts:1366:71 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7353612Z
2026-10-24T23:06:14.7353731Z 1366 wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()),
2026-10-24T23:06:14.7353957Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7354071Z
2026-10-24T23:06:14.7354073Z
2026-10-24T23:06:14.7354130Z ~/packages/provider-grok$ tsc --noEmit
2026-10-24T23:06:14.7354539Z 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-24T23:06:14.7354851Z
2026-10-24T23:06:14.7354907Z 147 return Effect.succeed(undefined);
2026-10-24T23:06:14.7355046Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7355136Z
2026-10-24T23:06:14.7355528Z 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-24T23:06:14.7355951Z
2026-10-24T23:06:14.7356008Z 188 if (!recordable) return Effect.void;
2026-10-24T23:06:14.7356156Z ~~~~~~
2026-10-24T23:06:14.7356238Z
2026-10-24T23:06:14.7356661Z 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-24T23:06:14.7357076Z
2026-10-24T23:06:14.7357127Z 208 return Effect.void;
2026-10-24T23:06:14.7357247Z ~~~~~~
2026-10-24T23:06:14.7357311Z
2026-10-24T23:06:14.7357684Z 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-24T23:06:14.7358136Z
2026-10-24T23:06:14.7358181Z 228 return fs
2026-10-24T23:06:14.7358282Z ~~~~~~
2026-10-24T23:06:14.7358345Z
2026-10-24T23:06:14.7358640Z 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-24T23:06:14.7358976Z
2026-10-24T23:06:14.7359082Z 311 OpenCodeServerLedger.of({ track: () => Effect.succeed(Effect.void) }),
2026-10-24T23:06:14.7359274Z ~~~~~
2026-10-24T23:06:14.7359357Z
2026-10-24T23:06:14.7359659Z 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-24T23:06:14.7360007Z
2026-10-24T23:06:14.7360056Z 169 withServer: (use) =>
2026-10-24T23:06:14.7360173Z ~~~~~~~~~~
2026-10-24T23:06:14.7360236Z
2026-10-24T23:06:14.7360620Z 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-24T23:06:14.7361039Z
2026-10-24T23:06:14.7361158Z 103 const OPENCODE_TEST_SETTINGS = Schema.decodeUnknownSync(OpenCodeSettings)({});
2026-10-24T23:06:14.7361372Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7361470Z
2026-10-24T23:06:14.7361789Z 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-24T23:06:14.7362145Z
2026-10-24T23:06:14.7362254Z 938 getCapabilities: () => Effect.succeed(OpenCodeProviderCapabilitiesV2),
2026-10-24T23:06:14.7362445Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7362515Z
2026-10-24T23:06:14.7362844Z 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-24T23:06:14.7363213Z
2026-10-24T23:06:14.7363330Z 939 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T23:06:14.7363537Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7363613Z
2026-10-24T23:06:14.7363896Z 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-24T23:06:14.7364217Z
2026-10-24T23:06:14.7364292Z 1011 const abortController = new AbortController();
2026-10-24T23:06:14.7364497Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7364595Z
2026-10-24T23:06:14.7364914Z 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-24T23:06:14.7365265Z
2026-10-24T23:06:14.7365339Z 1088 if (failure) return yield* Effect.fail(failure);
2026-10-24T23:06:14.7365538Z ~~~~~
2026-10-24T23:06:14.7365621Z
2026-10-24T23:06:14.7365890Z 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-24T23:06:14.7366194Z
2026-10-24T23:06:14.7366274Z 1584 Effect.catch(() => Effect.succeed(undefined)),
2026-10-24T23:06:14.7366432Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7366549Z
2026-10-24T23:06:14.7366794Z 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-24T23:06:14.7367080Z
2026-10-24T23:06:14.7367155Z 1584 Effect.catch(() => Effect.succeed(undefined)),
2026-10-24T23:06:14.7367326Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7367427Z
2026-10-24T23:06:14.7367712Z 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-24T23:06:14.7368032Z
2026-10-24T23:06:14.7368115Z 3194 admissionAbortController: new AbortController(),
2026-10-24T23:06:14.7368298Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7368396Z
2026-10-24T23:06:14.7368679Z 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-24T23:06:14.7369000Z
2026-10-24T23:06:14.7369090Z 3354 turn.admissionAbortController = new AbortController();
2026-10-24T23:06:14.7369280Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7369385Z
2026-10-24T23:06:14.7369672Z 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-24T23:06:14.7369992Z
2026-10-24T23:06:14.7370052Z 158 connect: ({ baseUrl, password }) => {
2026-10-24T23:06:14.7370197Z ~~~~~~~
2026-10-24T23:06:14.7370256Z
2026-10-24T23:06:14.7370553Z 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-24T23:06:14.7370889Z
2026-10-24T23:06:14.7370944Z 160 withConnection: (use) =>
2026-10-24T23:06:14.7371073Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7371144Z
2026-10-24T23:06:14.7371438Z 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-24T23:06:14.7371775Z
2026-10-24T23:06:14.7371828Z 175 withConnection: (use) =>
2026-10-24T23:06:14.7371952Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7372018Z
2026-10-24T23:06:14.7372234Z src/server/v2/adapter.ts:1544:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7372488Z
2026-10-24T23:06:14.7372612Z 1544 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-24T23:06:14.7372824Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7372915Z
2026-10-24T23:06:14.7373133Z src/server/v2/adapter.ts:1544:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7373392Z
2026-10-24T23:06:14.7373509Z 1544 wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some),
2026-10-24T23:06:14.7373730Z ~~~~~~~~~~
2026-10-24T23:06:14.7373877Z
2026-10-24T23:06:14.7374192Z 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-24T23:06:14.7374581Z
2026-10-24T23:06:14.7374688Z 4137 getCapabilities: () => Effect.succeed(OpenCode2ProviderCapabilities),
2026-10-24T23:06:14.7374919Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7374989Z
2026-10-24T23:06:14.7375320Z 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-24T23:06:14.7375694Z
2026-10-24T23:06:14.7375815Z 4138 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T23:06:14.7376022Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7376102Z
2026-10-24T23:06:14.7376105Z
2026-10-24T23:06:14.7376170Z ~/packages/provider-acp-registry$ tsc --noEmit
2026-10-24T23:06:14.7376617Z 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-24T23:06:14.7376991Z
2026-10-24T23:06:14.7377060Z 31 read: (credentialSource, sinceMs, untilMs) =>
2026-10-24T23:06:14.7377212Z ~~~~
2026-10-24T23:06:14.7377273Z
2026-10-24T23:06:14.7377557Z 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-24T23:06:14.7377875Z
2026-10-24T23:06:14.7377925Z 82 read: (apiKey) =>
2026-10-24T23:06:14.7378121Z ~~~~
2026-10-24T23:06:14.7378207Z
2026-10-24T23:06:14.7378490Z 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-24T23:06:14.7378808Z
2026-10-24T23:06:14.7378857Z 360 Effect.catch(() =>
2026-10-24T23:06:14.7378971Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7379039Z
2026-10-24T23:06:14.7379353Z src/server/adapter.ts:911:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7379706Z
2026-10-24T23:06:14.7379810Z 911 getCapabilities: () => Effect.succeed(CursorProviderCapabilitiesV2),
2026-10-24T23:06:14.7379997Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7380064Z
2026-10-24T23:06:14.7380391Z src/server/adapter.ts:912:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7380758Z
2026-10-24T23:06:14.7380875Z 912 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T23:06:14.7381082Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7381161Z
2026-10-24T23:06:14.7381603Z 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-24T23:06:14.7382080Z
2026-10-24T23:06:14.7382129Z 55 Effect.runPromise(
2026-10-24T23:06:14.7382251Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7382320Z
2026-10-24T23:06:14.7382579Z 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-24T23:06:14.7382940Z
2026-10-24T23:06:14.7383009Z 59 onNone: () => Effect.succeed(undefined),
2026-10-24T23:06:14.7383167Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7383261Z
2026-10-24T23:06:14.7383697Z 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-24T23:06:14.7384219Z
2026-10-24T23:06:14.7384267Z 69 Effect.runPromise(
2026-10-24T23:06:14.7384425Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7384504Z
2026-10-24T23:06:14.7384944Z 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-24T23:06:14.7385419Z
2026-10-24T23:06:14.7385492Z 82 clear: () => Effect.runPromise(credentials.remove),
2026-10-24T23:06:14.7385652Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7385737Z
2026-10-24T23:06:14.7386061Z 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-24T23:06:14.7386421Z
2026-10-24T23:06:14.7386480Z 228 Effect.flatMap((snapshot) =>
2026-10-24T23:06:14.7386623Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7386697Z
2026-10-24T23:06:14.7386890Z src/server/usageLimits.test.ts:74:5 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-24T23:06:14.7387119Z
2026-10-24T23:06:14.7387173Z 74 Effect.gen(function* () {
2026-10-24T23:06:14.7387301Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7387428Z 75 yield* withNodeServices(
2026-10-24T23:06:14.7387561Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7387676Z ...
2026-10-24T23:06:14.7387771Z 115 );
2026-10-24T23:06:14.7387866Z ~~~~~~~~
2026-10-24T23:06:14.7387963Z 116 }),
2026-10-24T23:06:14.7388057Z ~~~~~~
2026-10-24T23:06:14.7388113Z
2026-10-24T23:06:14.7388115Z
2026-10-24T23:06:14.7388187Z ~/packages/source-control-definitions$ tsc --noEmit
2026-10-24T23:06:14.7388614Z 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-24T23:06:14.7388971Z
2026-10-24T23:06:14.7389025Z 174 Effect.flatMap((snapshot) =>
2026-10-24T23:06:14.7389160Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7389230Z
2026-10-24T23:06:14.7389465Z 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-24T23:06:14.7389736Z
2026-10-24T23:06:14.7389803Z 1507 }).pipe(Effect.catch(() => Effect.void));
2026-10-24T23:06:14.7389952Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7390026Z
2026-10-24T23:06:14.7390277Z 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-24T23:06:14.7390570Z
2026-10-24T23:06:14.7390636Z 1507 }).pipe(Effect.catch(() => Effect.void));
2026-10-24T23:06:14.7390782Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7390858Z
2026-10-24T23:06:14.7391205Z 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-24T23:06:14.7391587Z
2026-10-24T23:06:14.7391696Z 1588 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7391846Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7391925Z
2026-10-24T23:06:14.7391927Z
2026-10-24T23:06:14.7392178Z src/server/AcpRegistryRuntimeCoordinator.ts:154:52 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7392467Z
2026-10-24T23:06:14.7392641Z 154 return yield* Effect.raceFirst(effect.pipe(Effect.map(Option.some)), foregroundStarted);
2026-10-24T23:06:14.7392868Z ~~~~~~~~~~
2026-10-24T23:06:14.7392971Z
2026-10-24T23:06:14.7393290Z 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-24T23:06:14.7393647Z
2026-10-24T23:06:14.7393696Z 1301 Effect.catch((error) =>
2026-10-24T23:06:14.7393827Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7393897Z
2026-10-24T23:06:14.7394181Z 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-24T23:06:14.7394536Z
2026-10-24T23:06:14.7394588Z 146 Option.isSome(result)
2026-10-24T23:06:14.7394720Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7394796Z
2026-10-24T23:06:14.7395044Z 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-24T23:06:14.7395328Z
2026-10-24T23:06:14.7395424Z 640 enrichSnapshot: ({ snapshot, getSnapshot, publishSnapshot }) => {
2026-10-24T23:06:14.7395607Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7395677Z
2026-10-24T23:06:14.7395886Z src/server/driver.ts:650:51 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7396138Z
2026-10-24T23:06:14.7396238Z 650 : enrichProviderCached(snapshot).pipe(Effect.map(Option.some))
2026-10-24T23:06:14.7396432Z ~~~~~~~~~~
2026-10-24T23:06:14.7396533Z
2026-10-24T23:06:14.7396535Z
2026-10-24T23:06:14.7396538Z
2026-10-24T23:06:14.7396595Z ~/packages/client-runtime$ tsc --noEmit
2026-10-24T23:06:14.7396732Z Result (22 files):
2026-10-24T23:06:14.7396838Z - 0 errors
2026-10-24T23:06:14.7396935Z - 0 warnings
2026-10-24T23:06:14.7397037Z - 0 hints
2026-10-24T23:06:14.7397091Z
2026-10-24T23:06:14.7397093Z
2026-10-24T23:06:14.7397321Z src/authorization/remote.test.ts:334:25 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7397584Z
2026-10-24T23:06:14.7397692Z 334 identity: Effect.succeed(Option.some({ accountId: "user_connect" })),
2026-10-24T23:06:14.7397887Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7397974Z
2026-10-24T23:06:14.7398195Z src/authorization/remote.test.ts:339:17 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7398452Z
2026-10-24T23:06:14.7398526Z 339 id: Effect.succeed(Option.some("device-1")),
2026-10-24T23:06:14.7398686Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7398764Z
2026-10-24T23:06:14.7399090Z src/authorization/service.ts:547:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpop")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7399453Z
2026-10-24T23:06:14.7399507Z 547 authorizeDpop: (input) =>
2026-10-24T23:06:14.7399632Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7399699Z
2026-10-24T23:06:14.7400069Z src/authorization/service.ts:549:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("RemoteEnvironmentAuthorization.authorizeDpopHttp")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7400435Z
2026-10-24T23:06:14.7400488Z 549 authorizeDpopHttp: (input) =>
2026-10-24T23:06:14.7400623Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7400690Z
2026-10-24T23:06:14.7401045Z 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-24T23:06:14.7401388Z
2026-10-24T23:06:14.7401443Z 298 registerPairing: (input) =>
2026-10-24T23:06:14.7401572Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7401642Z
2026-10-24T23:06:14.7401940Z 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-24T23:06:14.7402275Z
2026-10-24T23:06:14.7402322Z 304 registerSsh: (input) =>
2026-10-24T23:06:14.7402443Z ~~~~~~~~~~~
2026-10-24T23:06:14.7402507Z
2026-10-24T23:06:14.7402802Z 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-24T23:06:14.7403141Z
2026-10-24T23:06:14.7403196Z 309 updateBearer: (input) =>
2026-10-24T23:06:14.7403319Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7403384Z
2026-10-24T23:06:14.7403717Z src/connection/pullRequestRoutingPermissions.ts:138:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7404093Z
2026-10-24T23:06:14.7404137Z 138 get: (entry) =>
2026-10-24T23:06:14.7404250Z ~~~
2026-10-24T23:06:14.7404310Z
2026-10-24T23:06:14.7404694Z src/connection/pullRequestRoutingPermissions.ts:143:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7405090Z
2026-10-24T23:06:14.7405146Z 143 set: (entry, permission) => {
2026-10-24T23:06:14.7405277Z ~~~
2026-10-24T23:06:14.7405335Z
2026-10-24T23:06:14.7405685Z src/connection/pullRequestRoutingPermissions.ts:159:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7406074Z
2026-10-24T23:06:14.7406124Z 159 forget: (environmentId) =>
2026-10-24T23:06:14.7406252Z ~~~~~~
2026-10-24T23:06:14.7406315Z
2026-10-24T23:06:14.7406579Z 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-24T23:06:14.7406883Z
2026-10-24T23:06:14.7406940Z 1392 ? Effect.succeed(undefined)
2026-10-24T23:06:14.7407082Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7407172Z
2026-10-24T23:06:14.7407431Z 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-24T23:06:14.7407731Z
2026-10-24T23:06:14.7407789Z 1476 ? Effect.succeed(undefined)
2026-10-24T23:06:14.7407931Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7408016Z
2026-10-24T23:06:14.7408272Z 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-24T23:06:14.7408616Z
2026-10-24T23:06:14.7408683Z 1489 : Effect.succeed(undefined),
2026-10-24T23:06:14.7408839Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7408933Z
2026-10-24T23:06:14.7409173Z src/platform/orchestrationCache.test.ts:104:15 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7409506Z
2026-10-24T23:06:14.7409565Z 104 }).pipe(Effect.map(Option.some));
2026-10-24T23:06:14.7409706Z ~~~~~~~~~~
2026-10-24T23:06:14.7409779Z
2026-10-24T23:06:14.7410143Z 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-24T23:06:14.7410543Z
2026-10-24T23:06:14.7410633Z 72 load: (prepared: PreparedConnection, threadId: ThreadId) => {
2026-10-24T23:06:14.7410802Z ~~~~
2026-10-24T23:06:14.7410859Z
2026-10-24T23:06:14.7411146Z 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-24T23:06:14.7411467Z
2026-10-24T23:06:14.7411569Z 56 Effect.catch(() => Effect.succeed(Option.none<AuthSessionState>())),
2026-10-24T23:06:14.7411752Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7411825Z
2026-10-24T23:06:14.7412156Z 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-24T23:06:14.7412522Z
2026-10-24T23:06:14.7412574Z 62 return yield* Effect.fail(
2026-10-24T23:06:14.7412708Z ~~~~~
2026-10-24T23:06:14.7412779Z
2026-10-24T23:06:14.7413075Z 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-24T23:06:14.7413401Z
2026-10-24T23:06:14.7413496Z 57 execute: (target: OutdatedServerUpdateTarget, atomRegistry) => {
2026-10-24T23:06:14.7413671Z ~~~~~~~
2026-10-24T23:06:14.7413731Z
2026-10-24T23:06:14.7414040Z 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-24T23:06:14.7414397Z
2026-10-24T23:06:14.7414448Z 90 load: (prepared, input) =>
2026-10-24T23:06:14.7414602Z ~~~~
2026-10-24T23:06:14.7414658Z
2026-10-24T23:06:14.7415051Z 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-24T23:06:14.7415478Z
2026-10-24T23:06:14.7415583Z 34 return yield* Schema.decodeUnknownEffect(codec)(stored.value).pipe(
2026-10-24T23:06:14.7415775Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7415870Z
2026-10-24T23:06:14.7416095Z src/state/queryPersistence.ts:35:9 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7416356Z
2026-10-24T23:06:14.7416406Z 35 Effect.map(Option.some),
2026-10-24T23:06:14.7416534Z ~~~~~~~~~~
2026-10-24T23:06:14.7416600Z
2026-10-24T23:06:14.7416859Z 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-24T23:06:14.7417157Z
2026-10-24T23:06:14.7417318Z 680 execute: (target, atomRegistry) => {
2026-10-24T23:06:14.7417453Z ~~~~~~~
2026-10-24T23:06:14.7417514Z
2026-10-24T23:06:14.7417834Z 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-24T23:06:14.7418292Z
2026-10-24T23:06:14.7418401Z 1125 Effect.flatMap((summary) =>
2026-10-24T23:06:14.7418543Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7418621Z
2026-10-24T23:06:14.7418835Z src/state/shell-sync.test.ts:90:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7419090Z
2026-10-24T23:06:14.7419163Z 90 loadShell: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7419324Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7419412Z
2026-10-24T23:06:14.7419628Z src/state/shell-sync.test.ts:96:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7419882Z
2026-10-24T23:06:14.7419950Z 96 loadThread: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7420113Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7420200Z
2026-10-24T23:06:14.7420411Z src/state/shell-sync.test.ts:99:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7420664Z
2026-10-24T23:06:14.7420746Z 99 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7420914Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7421008Z
2026-10-24T23:06:14.7421225Z src/state/shell-sync.test.ts:101:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7421479Z
2026-10-24T23:06:14.7421553Z 101 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7421716Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7421806Z
2026-10-24T23:06:14.7422020Z src/state/shell-sync.test.ts:108:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7422273Z
2026-10-24T23:06:14.7422340Z 108 load: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7422492Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7422576Z
2026-10-24T23:06:14.7422788Z src/state/shell-sync.test.ts:229:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7423040Z
2026-10-24T23:06:14.7423110Z 229 loadShell: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7423268Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7423357Z
2026-10-24T23:06:14.7423570Z src/state/shell-sync.test.ts:238:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7423825Z
2026-10-24T23:06:14.7423898Z 238 loadThread: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7424056Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7424143Z
2026-10-24T23:06:14.7424356Z src/state/shell-sync.test.ts:241:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7424655Z
2026-10-24T23:06:14.7424738Z 241 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7424905Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7424997Z
2026-10-24T23:06:14.7425208Z src/state/shell-sync.test.ts:243:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7425462Z
2026-10-24T23:06:14.7425590Z 243 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7425751Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7425841Z
2026-10-24T23:06:14.7426056Z src/state/shell-sync.test.ts:250:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7426312Z
2026-10-24T23:06:14.7426380Z 250 load: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7426570Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7426653Z
2026-10-24T23:06:14.7426864Z src/state/shell-sync.test.ts:349:26 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7427114Z
2026-10-24T23:06:14.7427185Z 349 loadShell: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7427343Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7427428Z
2026-10-24T23:06:14.7427641Z src/state/shell-sync.test.ts:355:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7427893Z
2026-10-24T23:06:14.7427966Z 355 loadThread: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7428123Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7428209Z
2026-10-24T23:06:14.7428422Z src/state/shell-sync.test.ts:358:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7428675Z
2026-10-24T23:06:14.7428756Z 358 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7428929Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7429018Z
2026-10-24T23:06:14.7429234Z src/state/shell-sync.test.ts:360:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7429486Z
2026-10-24T23:06:14.7429561Z 360 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7429722Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7429810Z
2026-10-24T23:06:14.7430023Z src/state/shell-sync.test.ts:367:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7430273Z
2026-10-24T23:06:14.7430342Z 367 load: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7430493Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7430575Z
2026-10-24T23:06:14.7430788Z src/state/shell-sync.test.ts:446:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7431045Z
2026-10-24T23:06:14.7431133Z 446 loadShell: () => Effect.succeed(Option.some(cachedSnapshot)),
2026-10-24T23:06:14.7431309Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7431396Z
2026-10-24T23:06:14.7431612Z src/state/shell-sync.test.ts:448:27 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7431862Z
2026-10-24T23:06:14.7431936Z 448 loadThread: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7432095Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7432181Z
2026-10-24T23:06:14.7432395Z src/state/shell-sync.test.ts:451:33 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7432648Z
2026-10-24T23:06:14.7432729Z 451 loadServerConfig: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7432900Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7432993Z
2026-10-24T23:06:14.7433206Z src/state/shell-sync.test.ts:453:28 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7433502Z
2026-10-24T23:06:14.7433577Z 453 loadVcsRefs: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7433740Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7433827Z
2026-10-24T23:06:14.7434041Z src/state/shell-sync.test.ts:460:21 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7434294Z
2026-10-24T23:06:14.7434558Z 460 load: () => Effect.succeed(Option.some(httpSnapshot)),
2026-10-24T23:06:14.7434721Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7434805Z
2026-10-24T23:06:14.7435102Z 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-24T23:06:14.7435434Z
2026-10-24T23:06:14.7435496Z 98 load: (prepared: PreparedConnection) =>
2026-10-24T23:06:14.7435641Z ~~~~
2026-10-24T23:06:14.7435697Z
2026-10-24T23:06:14.7436051Z 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-24T23:06:14.7436447Z
2026-10-24T23:06:14.7436519Z 52 register: (environmentId, threadId, handler) =>
2026-10-24T23:06:14.7436670Z ~~~~~~~~
2026-10-24T23:06:14.7436734Z
2026-10-24T23:06:14.7437060Z 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-24T23:06:14.7437429Z
2026-10-24T23:06:14.7437479Z 64 unregister: (registration) =>
2026-10-24T23:06:14.7437612Z ~~~~~~~~~~
2026-10-24T23:06:14.7437675Z
2026-10-24T23:06:14.7438042Z 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-24T23:06:14.7438450Z
2026-10-24T23:06:14.7438535Z 79 loadEarlier: (environmentId, threadId, throughEntryId) =>
2026-10-24T23:06:14.7438703Z ~~~~~~~~~~~
2026-10-24T23:06:14.7438770Z
2026-10-24T23:06:14.7439133Z 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-24T23:06:14.7439532Z
2026-10-24T23:06:14.7439606Z 89 reconcilePendingWork: (environmentId, threadId) =>
2026-10-24T23:06:14.7439767Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7439842Z
2026-10-24T23:06:14.7440063Z src/state/threads-sync.test.ts:1458:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7440325Z
2026-10-24T23:06:14.7440407Z 1458 : { loadCached: Effect.succeed(Option.some(saved!)) },
2026-10-24T23:06:14.7440576Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7440670Z
2026-10-24T23:06:14.7440931Z 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-24T23:06:14.7441231Z
2026-10-24T23:06:14.7441320Z 447 execute: (input: RunVcsStackedActionInput, registry) => {
2026-10-24T23:06:14.7441489Z ~~~~~~~
2026-10-24T23:06:14.7441550Z
2026-10-24T23:06:14.7441552Z
2026-10-24T23:06:14.7441603Z ~/apps/mobile$ tsc --noEmit
2026-10-24T23:06:14.7441729Z ~/infra/relay$ tsc --noEmit
2026-10-24T23:06:14.7441853Z ~/apps/web$ tsc --noEmit
2026-10-24T23:06:14.7441974Z ~/apps/desktop$ tsc --noEmit
2026-10-24T23:06:14.7442405Z 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-24T23:06:14.7442752Z
2026-10-24T23:06:14.7442802Z 220 send: (body) =>
2026-10-24T23:06:14.7442917Z ~~~~
2026-10-24T23:06:14.7442979Z
2026-10-24T23:06:14.7443278Z 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-24T23:06:14.7443659Z
2026-10-24T23:06:14.7443706Z 12 onFailure: (error) =>
2026-10-24T23:06:14.7443827Z ~~~~~~~~~
2026-10-24T23:06:14.7443888Z
2026-10-24T23:06:14.7444203Z 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-24T23:06:14.7444618Z
2026-10-24T23:06:14.7444673Z 64 pauseUntil: (untilMillis) =>
2026-10-24T23:06:14.7444797Z ~~~~~~~~~~
2026-10-24T23:06:14.7444857Z
2026-10-24T23:06:14.7445088Z 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-24T23:06:14.7445361Z
2026-10-24T23:06:14.7445405Z 198 onNone: () =>
2026-10-24T23:06:14.7445518Z ~~~~~~
2026-10-24T23:06:14.7445578Z
2026-10-24T23:06:14.7445838Z src/previewTunnelSweep.test.ts:53:11 - suggestion TS377124: `Effect.provideService` provides this inline single-service layer directly. effect(provideLayerSucceedToProvideService)
2026-10-24T23:06:14.7446135Z
2026-10-24T23:06:14.7446250Z 53 }).pipe(Effect.provide(Layer.succeed(HttpClient.HttpClient, cloudflare.client)));
2026-10-24T23:06:14.7446448Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7446520Z
2026-10-24T23:06:14.7446800Z 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-24T23:06:14.7447114Z
2026-10-24T23:06:14.7447218Z 92 fileResponse: () => Effect.die("Relay API does not serve filesystem responses"),
2026-10-24T23:06:14.7447404Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7447465Z
2026-10-24T23:06:14.7447742Z 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-24T23:06:14.7448060Z
2026-10-24T23:06:14.7448167Z 93 fileWebResponse: () => Effect.die("Relay API does not serve file responses"),
2026-10-24T23:06:14.7448348Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7448413Z
2026-10-24T23:06:14.7448665Z 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-24T23:06:14.7448954Z
2026-10-24T23:06:14.7449016Z 242 hold: ({ endpointKey, baseUrl, hook }) =>
2026-10-24T23:06:14.7449157Z ~~~~
2026-10-24T23:06:14.7449216Z
2026-10-24T23:06:14.7449460Z 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-24T23:06:14.7449749Z
2026-10-24T23:06:14.7449805Z 244 wake: ({ endpointKey, baseUrl }) =>
2026-10-24T23:06:14.7449939Z ~~~~
2026-10-24T23:06:14.7449997Z
2026-10-24T23:06:14.7450247Z 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-24T23:06:14.7450537Z
2026-10-24T23:06:14.7450593Z 246 clear: ({ endpointKey }) =>
2026-10-24T23:06:14.7450761Z ~~~~~
2026-10-24T23:06:14.7450820Z
2026-10-24T23:06:14.7451122Z 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-24T23:06:14.7451465Z
2026-10-24T23:06:14.7451512Z 275 send: (body) =>
2026-10-24T23:06:14.7451631Z ~~~~
2026-10-24T23:06:14.7451745Z
2026-10-24T23:06:14.7451747Z
2026-10-24T23:06:14.7452053Z 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-24T23:06:14.7452393Z
2026-10-24T23:06:14.7452492Z 389 complete: (response) => Effect.sync(() => broker.complete(response)),
2026-10-24T23:06:14.7452670Z ~~~~~~~~
2026-10-24T23:06:14.7452731Z
2026-10-24T23:06:14.7452954Z src/app/DesktopClerk.test.ts:300:27 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7453210Z
2026-10-24T23:06:14.7453295Z 300 currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-24T23:06:14.7453466Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7453551Z
2026-10-24T23:06:14.7453825Z 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-24T23:06:14.7454136Z
2026-10-24T23:06:14.7454185Z 461 onSome: (logFile) =>
2026-10-24T23:06:14.7454299Z ~~~~~~
2026-10-24T23:06:14.7454358Z
2026-10-24T23:06:14.7454720Z 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-24T23:06:14.7455081Z
2026-10-24T23:06:14.7455136Z 591 forInstance: (id) => makeForId(id),
2026-10-24T23:06:14.7455274Z ~~~~~~~~~~~
2026-10-24T23:06:14.7455337Z
2026-10-24T23:06:14.7455557Z src/app/DesktopWebLinks.test.ts:29:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7455818Z
2026-10-24T23:06:14.7455903Z 29 currentMainOrFirst: Effect.succeed(Option.some(window)),
2026-10-24T23:06:14.7456077Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7456170Z
2026-10-24T23:06:14.7456459Z 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-24T23:06:14.7456773Z
2026-10-24T23:06:14.7456820Z 72 receive: (url) =>
2026-10-24T23:06:14.7456933Z ~~~~~~~
2026-10-24T23:06:14.7456990Z
2026-10-24T23:06:14.7457284Z 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-24T23:06:14.7457618Z
2026-10-24T23:06:14.7457673Z 77 setRendererReady: (ready) =>
2026-10-24T23:06:14.7457803Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7457872Z
2026-10-24T23:06:14.7458242Z 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-24T23:06:14.7458566Z
2026-10-24T23:06:14.7458615Z 1062 onSome: (run) =>
2026-10-24T23:06:14.7458729Z ~~~~~~
2026-10-24T23:06:14.7458791Z
2026-10-24T23:06:14.7459133Z 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-24T23:06:14.7459454Z
2026-10-24T23:06:14.7459500Z 307 get: (id) =>
2026-10-24T23:06:14.7459608Z ~~~
2026-10-24T23:06:14.7459663Z
2026-10-24T23:06:14.7459943Z 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-24T23:06:14.7460267Z
2026-10-24T23:06:14.7460409Z 342 get: (id) => Effect.succeed(Option.fromNullishOr(byId.get(id))),
2026-10-24T23:06:14.7460576Z ~~~
2026-10-24T23:06:14.7460634Z
2026-10-24T23:06:14.7460923Z 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-24T23:06:14.7461253Z
2026-10-24T23:06:14.7461380Z 345 register: () => Effect.die("DesktopBackendPool.layerTest does not support register"),
2026-10-24T23:06:14.7461588Z ~~~~~~~~
2026-10-24T23:06:14.7461650Z
2026-10-24T23:06:14.7461945Z 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-24T23:06:14.7462281Z
2026-10-24T23:06:14.7462412Z 346 unregister: () => Effect.die("DesktopBackendPool.layerTest does not support unregister"),
2026-10-24T23:06:14.7462622Z ~~~~~~~~~~
2026-10-24T23:06:14.7462688Z
2026-10-24T23:06:14.7462954Z 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-24T23:06:14.7463260Z
2026-10-24T23:06:14.7463303Z 145 exit: (code) =>
2026-10-24T23:06:14.7463410Z ~~~~
2026-10-24T23:06:14.7463464Z
2026-10-24T23:06:14.7463745Z 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-24T23:06:14.7464064Z
2026-10-24T23:06:14.7464115Z 149 relaunch: (options) =>
2026-10-24T23:06:14.7464231Z ~~~~~~~~
2026-10-24T23:06:14.7464292Z
2026-10-24T23:06:14.7464613Z 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-24T23:06:14.7464935Z
2026-10-24T23:06:14.7464984Z 153 setPath: (name, path) =>
2026-10-24T23:06:14.7465106Z ~~~~~~~
2026-10-24T23:06:14.7465162Z
2026-10-24T23:06:14.7465434Z 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-24T23:06:14.7465745Z
2026-10-24T23:06:14.7465791Z 157 setName: (name) =>
2026-10-24T23:06:14.7465901Z ~~~~~~~
2026-10-24T23:06:14.7465960Z
2026-10-24T23:06:14.7466262Z 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-24T23:06:14.7466605Z
2026-10-24T23:06:14.7466663Z 161 setAboutPanelOptions: (options) =>
2026-10-24T23:06:14.7466804Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7466873Z
2026-10-24T23:06:14.7467162Z 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-24T23:06:14.7467491Z
2026-10-24T23:06:14.7467546Z 165 setAppUserModelId: (id) =>
2026-10-24T23:06:14.7467673Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7467742Z
2026-10-24T23:06:14.7468121Z 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-24T23:06:14.7468490Z
2026-10-24T23:06:14.7468572Z 170 setAsDefaultProtocolClient: (protocol, path, args) =>
2026-10-24T23:06:14.7468737Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7468815Z
2026-10-24T23:06:14.7469105Z 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-24T23:06:14.7469479Z
2026-10-24T23:06:14.7469537Z 177 setDesktopName: (desktopName) =>
2026-10-24T23:06:14.7469676Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7469740Z
2026-10-24T23:06:14.7470024Z 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-24T23:06:14.7470345Z
2026-10-24T23:06:14.7470396Z 184 setDockIcon: (iconPath) =>
2026-10-24T23:06:14.7470516Z ~~~~~~~~~~~
2026-10-24T23:06:14.7470578Z
2026-10-24T23:06:14.7470896Z 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-24T23:06:14.7471258Z
2026-10-24T23:06:14.7471331Z 188 appendCommandLineSwitch: (switchName, value) =>
2026-10-24T23:06:14.7471493Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7471567Z
2026-10-24T23:06:14.7471869Z 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-24T23:06:14.7472213Z
2026-10-24T23:06:14.7472273Z 196 onBeforeQuitForUpdate: (listener) =>
2026-10-24T23:06:14.7472414Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7472488Z
2026-10-24T23:06:14.7472799Z 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-24T23:06:14.7473147Z
2026-10-24T23:06:14.7473209Z 206 removeCommandLineSwitch: (switchName) =>
2026-10-24T23:06:14.7473359Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7473431Z
2026-10-24T23:06:14.7473744Z 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-24T23:06:14.7474093Z
2026-10-24T23:06:14.7474151Z 169 showMessageBox: (options, owner) =>
2026-10-24T23:06:14.7474282Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7474346Z
2026-10-24T23:06:14.7474686Z 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-24T23:06:14.7475030Z
2026-10-24T23:06:14.7475083Z 185 showErrorBox: (title, content) =>
2026-10-24T23:06:14.7475217Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7475281Z
2026-10-24T23:06:14.7475579Z 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-24T23:06:14.7475923Z
2026-10-24T23:06:14.7475983Z 193 setApplicationMenu: (template) =>
2026-10-24T23:06:14.7476121Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7476193Z
2026-10-24T23:06:14.7476531Z 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-24T23:06:14.7476858Z
2026-10-24T23:06:14.7476909Z 207 popupTemplate: (input) =>
2026-10-24T23:06:14.7477036Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7477103Z
2026-10-24T23:06:14.7477389Z 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-24T23:06:14.7477759Z
2026-10-24T23:06:14.7477813Z 225 showContextMenu: (input) =>
2026-10-24T23:06:14.7477940Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7478008Z
2026-10-24T23:06:14.7478353Z 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-24T23:06:14.7478742Z
2026-10-24T23:06:14.7478807Z 82 getSystemIdleState: (idleThresholdSeconds) =>
2026-10-24T23:06:14.7478960Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7479028Z
2026-10-24T23:06:14.7479334Z 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-24T23:06:14.7479683Z
2026-10-24T23:06:14.7479733Z 77 encryptString: (value) =>
2026-10-24T23:06:14.7479856Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7479925Z
2026-10-24T23:06:14.7480235Z 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-24T23:06:14.7480588Z
2026-10-24T23:06:14.7480639Z 82 decryptString: (value) =>
2026-10-24T23:06:14.7480760Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7480823Z
2026-10-24T23:06:14.7481110Z 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-24T23:06:14.7481437Z
2026-10-24T23:06:14.7481489Z 68 openExternal: (rawUrl) =>
2026-10-24T23:06:14.7481607Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7481669Z
2026-10-24T23:06:14.7481965Z 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-24T23:06:14.7482301Z
2026-10-24T23:06:14.7482358Z 79 openSystemSettings: (pane) =>
2026-10-24T23:06:14.7482487Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7482555Z
2026-10-24T23:06:14.7482829Z 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-24T23:06:14.7483145Z
2026-10-24T23:06:14.7483193Z 86 copyText: (text) =>
2026-10-24T23:06:14.7483304Z ~~~~~~~~
2026-10-24T23:06:14.7483363Z
2026-10-24T23:06:14.7483642Z 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-24T23:06:14.7483959Z
2026-10-24T23:06:14.7484010Z 34 setSource: (theme) =>
2026-10-24T23:06:14.7484123Z ~~~~~~~~~
2026-10-24T23:06:14.7484183Z
2026-10-24T23:06:14.7484474Z 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-24T23:06:14.7484823Z
2026-10-24T23:06:14.7484874Z 41 onUpdated: (listener) =>
2026-10-24T23:06:14.7484991Z ~~~~~~~~~
2026-10-24T23:06:14.7485050Z
2026-10-24T23:06:14.7485392Z 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-24T23:06:14.7485727Z
2026-10-24T23:06:14.7485777Z 85 setFeedURL: (options) =>
2026-10-24T23:06:14.7485894Z ~~~~~~~~~~
2026-10-24T23:06:14.7485955Z
2026-10-24T23:06:14.7486255Z 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-24T23:06:14.7486635Z
2026-10-24T23:06:14.7486688Z 90 setAutoDownload: (value) =>
2026-10-24T23:06:14.7486808Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7486871Z
2026-10-24T23:06:14.7487187Z 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-24T23:06:14.7487547Z
2026-10-24T23:06:14.7487609Z 95 setAutoInstallOnAppQuit: (value) =>
2026-10-24T23:06:14.7487748Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7487821Z
2026-10-24T23:06:14.7488116Z 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-24T23:06:14.7488449Z
2026-10-24T23:06:14.7488501Z 100 setChannel: (channel) =>
2026-10-24T23:06:14.7488622Z ~~~~~~~~~~
2026-10-24T23:06:14.7488681Z
2026-10-24T23:06:14.7488988Z 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-24T23:06:14.7489337Z
2026-10-24T23:06:14.7489397Z 105 setAllowPrerelease: (value) =>
2026-10-24T23:06:14.7489532Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7489601Z
2026-10-24T23:06:14.7489912Z 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-24T23:06:14.7490258Z
2026-10-24T23:06:14.7490312Z 111 setAllowDowngrade: (value) =>
2026-10-24T23:06:14.7490444Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7490509Z
2026-10-24T23:06:14.7490815Z 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-24T23:06:14.7491162Z
2026-10-24T23:06:14.7491216Z 116 setFullChangelog: (value) =>
2026-10-24T23:06:14.7491344Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7491411Z
2026-10-24T23:06:14.7491747Z 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-24T23:06:14.7492122Z
2026-10-24T23:06:14.7492187Z 121 setDisableDifferentialDownload: (value) =>
2026-10-24T23:06:14.7492343Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7492424Z
2026-10-24T23:06:14.7492722Z 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-24T23:06:14.7493060Z
2026-10-24T23:06:14.7493132Z 140 quitAndInstall: ({ isSilent, isForceRunAfter }) =>
2026-10-24T23:06:14.7493285Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7493350Z
2026-10-24T23:06:14.7493647Z 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-24T23:06:14.7493986Z
2026-10-24T23:06:14.7494037Z 154 on: (eventName, listener) => {
2026-10-24T23:06:14.7494209Z ~~
2026-10-24T23:06:14.7494264Z
2026-10-24T23:06:14.7494579Z 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-24T23:06:14.7494905Z
2026-10-24T23:06:14.7494956Z 211 create: (options) => {
2026-10-24T23:06:14.7495073Z ~~~~~~
2026-10-24T23:06:14.7495175Z
2026-10-24T23:06:14.7495456Z 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-24T23:06:14.7495775Z
2026-10-24T23:06:14.7495865Z 243 setMain: (window) => Ref.set(mainWindowRef, Option.some(window)),
2026-10-24T23:06:14.7496041Z ~~~~~~~
2026-10-24T23:06:14.7496102Z
2026-10-24T23:06:14.7496389Z 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-24T23:06:14.7496719Z
2026-10-24T23:06:14.7496770Z 244 clearMain: (window) =>
2026-10-24T23:06:14.7496888Z ~~~~~~~~~
2026-10-24T23:06:14.7496949Z
2026-10-24T23:06:14.7497245Z 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-24T23:06:14.7497585Z
2026-10-24T23:06:14.7497637Z 254 prepareReveal: (window) =>
2026-10-24T23:06:14.7497765Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7497830Z
2026-10-24T23:06:14.7498154Z 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-24T23:06:14.7498476Z
2026-10-24T23:06:14.7498527Z 264 reveal: (window) =>
2026-10-24T23:06:14.7498642Z ~~~~~~
2026-10-24T23:06:14.7498704Z
2026-10-24T23:06:14.7499051Z 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-24T23:06:14.7499434Z
2026-10-24T23:06:14.7499502Z 526 setMainWindowBounds: (bounds, isMaximized) =>
2026-10-24T23:06:14.7499659Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7499733Z
2026-10-24T23:06:14.7500053Z 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-24T23:06:14.7500418Z
2026-10-24T23:06:14.7500476Z 538 setServerExposureMode: (mode) =>
2026-10-24T23:06:14.7500620Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7500698Z
2026-10-24T23:06:14.7501015Z 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-24T23:06:14.7501376Z
2026-10-24T23:06:14.7501432Z 542 setTailscaleServe: (input) =>
2026-10-24T23:06:14.7501563Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7501633Z
2026-10-24T23:06:14.7501948Z 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-24T23:06:14.7502307Z
2026-10-24T23:06:14.7502364Z 546 setUpdateChannel: (channel) =>
2026-10-24T23:06:14.7502496Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7502565Z
2026-10-24T23:06:14.7502945Z 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-24T23:06:14.7503315Z
2026-10-24T23:06:14.7503373Z 550 setWslBackendEnabled: (enabled) =>
2026-10-24T23:06:14.7503513Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7503587Z
2026-10-24T23:06:14.7503899Z 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-24T23:06:14.7504295Z
2026-10-24T23:06:14.7504349Z 554 setWslDistro: (distro) =>
2026-10-24T23:06:14.7504504Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7504568Z
2026-10-24T23:06:14.7504874Z 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-24T23:06:14.7505219Z
2026-10-24T23:06:14.7505271Z 560 setWslOnly: (enabled) =>
2026-10-24T23:06:14.7505392Z ~~~~~~~~~~
2026-10-24T23:06:14.7505455Z
2026-10-24T23:06:14.7505794Z 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-24T23:06:14.7506173Z
2026-10-24T23:06:14.7506242Z 564 setLocalEnvironmentEnabled: (enabled) =>
2026-10-24T23:06:14.7506392Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7506471Z
2026-10-24T23:06:14.7506813Z 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-24T23:06:14.7507202Z
2026-10-24T23:06:14.7507276Z 599 setMainWindowBounds: (bounds, isMaximized) =>
2026-10-24T23:06:14.7507433Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7507512Z
2026-10-24T23:06:14.7507837Z 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-24T23:06:14.7508203Z
2026-10-24T23:06:14.7508263Z 601 setServerExposureMode: (mode) =>
2026-10-24T23:06:14.7508413Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7508492Z
2026-10-24T23:06:14.7508812Z 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-24T23:06:14.7509170Z
2026-10-24T23:06:14.7509298Z 603 setTailscaleServe: (input) => update((settings) => setTailscaleServe(settings, input)),
2026-10-24T23:06:14.7509511Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7509588Z
2026-10-24T23:06:14.7509905Z 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-24T23:06:14.7510265Z
2026-10-24T23:06:14.7510392Z 604 setUpdateChannel: (channel) => update((settings) => setUpdateChannel(settings, channel)),
2026-10-24T23:06:14.7510606Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7510683Z
2026-10-24T23:06:14.7511006Z 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-24T23:06:14.7511372Z
2026-10-24T23:06:14.7511432Z 605 setWslBackendEnabled: (enabled) =>
2026-10-24T23:06:14.7511576Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7511655Z
2026-10-24T23:06:14.7512015Z 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-24T23:06:14.7512367Z
2026-10-24T23:06:14.7512481Z 607 setWslDistro: (distro) => update((settings) => setWslDistro(settings, distro)),
2026-10-24T23:06:14.7512680Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7512755Z
2026-10-24T23:06:14.7513104Z 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-24T23:06:14.7513449Z
2026-10-24T23:06:14.7513558Z 608 setWslOnly: (enabled) => update((settings) => setWslOnly(settings, enabled)),
2026-10-24T23:06:14.7513751Z ~~~~~~~~~~
2026-10-24T23:06:14.7513818Z
2026-10-24T23:06:14.7514162Z 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-24T23:06:14.7514579Z
2026-10-24T23:06:14.7514647Z 609 setLocalEnvironmentEnabled: (enabled) =>
2026-10-24T23:06:14.7514802Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7514889Z
2026-10-24T23:06:14.7515196Z 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-24T23:06:14.7515542Z
2026-10-24T23:06:14.7515589Z 197 set: (settings) =>
2026-10-24T23:06:14.7515702Z ~~~
2026-10-24T23:06:14.7515758Z
2026-10-24T23:06:14.7516065Z 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-24T23:06:14.7516414Z
2026-10-24T23:06:14.7516507Z 231 set: (settings) => Ref.set(settingsRef, Option.some(settings)),
2026-10-24T23:06:14.7516682Z ~~~
2026-10-24T23:06:14.7516744Z
2026-10-24T23:06:14.7517080Z 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-24T23:06:14.7517456Z
2026-10-24T23:06:14.7517527Z 1729 setAnimationDestination: (id, destination) =>
2026-10-24T23:06:14.7517686Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7517764Z
2026-10-24T23:06:14.7518064Z 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-24T23:06:14.7518408Z
2026-10-24T23:06:14.7518462Z 1740 dismissAnimation: (id) =>
2026-10-24T23:06:14.7518591Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7518663Z
2026-10-24T23:06:14.7518959Z 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-24T23:06:14.7519299Z
2026-10-24T23:06:14.7519349Z 1745 acknowledge: (id) =>
2026-10-24T23:06:14.7519471Z ~~~~~~~~~~~
2026-10-24T23:06:14.7519536Z
2026-10-24T23:06:14.7519852Z 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-24T23:06:14.7520211Z
2026-10-24T23:06:14.7520264Z 136 discoverHosts: (input) =>
2026-10-24T23:06:14.7520390Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7520458Z
2026-10-24T23:06:14.7520813Z 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-24T23:06:14.7521165Z
2026-10-24T23:06:14.7521213Z 141 resolveHost: (alias) =>
2026-10-24T23:06:14.7521334Z ~~~~~~~~~~~
2026-10-24T23:06:14.7521399Z
2026-10-24T23:06:14.7521741Z 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-24T23:06:14.7522172Z
2026-10-24T23:06:14.7522244Z 146 ensureEnvironment: (target, ensureOptions) =>
2026-10-24T23:06:14.7522398Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7522469Z
2026-10-24T23:06:14.7522800Z 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-24T23:06:14.7523169Z
2026-10-24T23:06:14.7523228Z 154 disconnectEnvironment: (target) =>
2026-10-24T23:06:14.7523368Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7523444Z
2026-10-24T23:06:14.7560444Z 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-24T23:06:14.7561059Z
2026-10-24T23:06:14.7561265Z 1171 installPrepared: (expectedVersion) => installWithExpectedVersion(expectedVersion),
2026-10-24T23:06:14.7561522Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7561594Z
2026-10-24T23:06:14.7561898Z 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-24T23:06:14.7562230Z
2026-10-24T23:06:14.7562286Z 1101 preWarm: () => Effect.void,
2026-10-24T23:06:14.7562411Z ~~~~~~~
2026-10-24T23:06:14.7562472Z
2026-10-24T23:06:14.7562806Z 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-24T23:06:14.7563180Z
2026-10-24T23:06:14.7563249Z 1102 windowsToWslPath: (distro, windowsPath) =>
2026-10-24T23:06:14.7563397Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7563467Z
2026-10-24T23:06:14.7563770Z 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-24T23:06:14.7564110Z
2026-10-24T23:06:14.7564243Z 1104 getUserHome: (distro) => Effect.succeed(stub.getUserHome?.(distro) ?? Option.none<string>()),
2026-10-24T23:06:14.7564616Z ~~~~~~~~~~~
2026-10-24T23:06:14.7564679Z
2026-10-24T23:06:14.7564980Z 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-24T23:06:14.7565320Z
2026-10-24T23:06:14.7565449Z 1105 getDistroIp: (distro) => Effect.succeed(stub.getDistroIp?.(distro) ?? Option.none<string>()),
2026-10-24T23:06:14.7565657Z ~~~~~~~~~~~
2026-10-24T23:06:14.7565720Z
2026-10-24T23:06:14.7566042Z 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-24T23:06:14.7566404Z
2026-10-24T23:06:14.7566462Z 1106 prepareRuntime: (distro, archive) =>
2026-10-24T23:06:14.7566602Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7566669Z
2026-10-24T23:06:14.7567127Z 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-24T23:06:14.7567488Z
2026-10-24T23:06:14.7567618Z 1113 pruneRuntimes: (distro, runtimeId) => stub.pruneRuntimes?.(distro, runtimeId) ?? Effect.void,
2026-10-24T23:06:14.7567885Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7567952Z
2026-10-24T23:06:14.7568282Z 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-24T23:06:14.7568649Z
2026-10-24T23:06:14.7568711Z 1114 invalidateRuntime: (distro, runtimeId) =>
2026-10-24T23:06:14.7568855Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7568926Z
2026-10-24T23:06:14.7569249Z 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-24T23:06:14.7569610Z
2026-10-24T23:06:14.7569670Z 1116 probeRuntime: (distro, linuxAppRoot) =>
2026-10-24T23:06:14.7569808Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7569872Z
2026-10-24T23:06:14.7570213Z 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-24T23:06:14.7570594Z
2026-10-24T23:06:14.7570669Z 1120 ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-24T23:06:14.7570820Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7570885Z
2026-10-24T23:06:14.7571181Z 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-24T23:06:14.7571514Z
2026-10-24T23:06:14.7571563Z 1187 preWarm: (distro) =>
2026-10-24T23:06:14.7571678Z ~~~~~~~
2026-10-24T23:06:14.7571735Z
2026-10-24T23:06:14.7572052Z 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-24T23:06:14.7572414Z
2026-10-24T23:06:14.7572477Z 1192 prepareRuntime: (distro, archive) =>
2026-10-24T23:06:14.7572616Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7572685Z
2026-10-24T23:06:14.7573003Z 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-24T23:06:14.7573362Z
2026-10-24T23:06:14.7573423Z 1196 pruneRuntimes: (distro, runtimeId) =>
2026-10-24T23:06:14.7573562Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7573627Z
2026-10-24T23:06:14.7573957Z 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-24T23:06:14.7574330Z
2026-10-24T23:06:14.7574425Z 1200 invalidateRuntime: (distro, runtimeId) =>
2026-10-24T23:06:14.7574571Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7574642Z
2026-10-24T23:06:14.7574967Z 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-24T23:06:14.7575331Z
2026-10-24T23:06:14.7575390Z 1204 probeRuntime: (distro, linuxAppRoot) =>
2026-10-24T23:06:14.7575574Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7575639Z
2026-10-24T23:06:14.7575982Z 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-24T23:06:14.7576366Z
2026-10-24T23:06:14.7576442Z 1208 ensureNodePty: (distro, linuxAppRoot, options) =>
2026-10-24T23:06:14.7576634Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7576704Z
2026-10-24T23:06:14.7576706Z
2026-10-24T23:06:14.7576708Z
2026-10-24T23:06:14.7577036Z 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-24T23:06:14.7577403Z
2026-10-24T23:06:14.7577453Z 820 clear: (environmentId) =>
2026-10-24T23:06:14.7577579Z ~~~~~
2026-10-24T23:06:14.7577638Z
2026-10-24T23:06:14.7577930Z 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-24T23:06:14.7578375Z
2026-10-24T23:06:14.7578458Z 830 observe: ({ environmentId, environmentLabel, method }) =>
2026-10-24T23:06:14.7578621Z ~~~~~~~
2026-10-24T23:06:14.7578679Z
2026-10-24T23:06:14.7578972Z src/connection/storage.ts:551:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.get")((entry) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7579304Z
2026-10-24T23:06:14.7579349Z 551 get: (entry) =>
2026-10-24T23:06:14.7579452Z ~~~
2026-10-24T23:06:14.7579508Z
2026-10-24T23:06:14.7579812Z src/connection/storage.ts:578:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.set")((entry, permission) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7580158Z
2026-10-24T23:06:14.7580210Z 578 set: (entry, permission) => {
2026-10-24T23:06:14.7580333Z ~~~
2026-10-24T23:06:14.7580389Z
2026-10-24T23:06:14.7580695Z src/connection/storage.ts:598:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestRoutingPermissions.forget")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7581041Z
2026-10-24T23:06:14.7581121Z 598 forget: (environmentId) => write(environmentId, null),
2026-10-24T23:06:14.7581278Z ~~~~~~
2026-10-24T23:06:14.7581338Z
2026-10-24T23:06:14.7581679Z src/connection/storage.ts:645:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.register")((registration, routes) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7582056Z
2026-10-24T23:06:14.7582113Z 645 register: (registration, routes) =>
2026-10-24T23:06:14.7582252Z ~~~~~~~~
2026-10-24T23:06:14.7582310Z
2026-10-24T23:06:14.7582652Z src/connection/storage.ts:649:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setRoutes")((environmentId, routes) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7583037Z
2026-10-24T23:06:14.7583095Z 649 setRoutes: (environmentId, routes) =>
2026-10-24T23:06:14.7583232Z ~~~~~~~~~
2026-10-24T23:06:14.7583294Z
2026-10-24T23:06:14.7583619Z src/connection/storage.ts:653:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.remove")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7583984Z
2026-10-24T23:06:14.7584036Z 653 remove: (environmentId) =>
2026-10-24T23:06:14.7584223Z ~~~~~~
2026-10-24T23:06:14.7584281Z
2026-10-24T23:06:14.7584668Z src/connection/storage.ts:657:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.ConnectionRegistrationStore.setEnabled")((environmentId, enabled) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7585056Z
2026-10-24T23:06:14.7585117Z 657 setEnabled: (environmentId, enabled) =>
2026-10-24T23:06:14.7585305Z ~~~~~~~~~~
2026-10-24T23:06:14.7585370Z
2026-10-24T23:06:14.7585691Z src/connection/storage.ts:734:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadShell")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7586055Z
2026-10-24T23:06:14.7586108Z 734 loadShell: (environmentId) =>
2026-10-24T23:06:14.7586242Z ~~~~~~~~~
2026-10-24T23:06:14.7586302Z
2026-10-24T23:06:14.7586639Z src/connection/storage.ts:770:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadServerConfig")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7587020Z
2026-10-24T23:06:14.7587081Z 770 loadServerConfig: (environmentId) =>
2026-10-24T23:06:14.7587221Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7587293Z
2026-10-24T23:06:14.7587637Z src/connection/storage.ts:804:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7588017Z
2026-10-24T23:06:14.7588077Z 804 loadThread: (environmentId, threadId) =>
2026-10-24T23:06:14.7588218Z ~~~~~~~~~~
2026-10-24T23:06:14.7588282Z
2026-10-24T23:06:14.7588614Z src/connection/storage.ts:853:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.loadVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7588990Z
2026-10-24T23:06:14.7589048Z 853 loadVcsRefs: (environmentId, cwd) =>
2026-10-24T23:06:14.7589181Z ~~~~~~~~~~~
2026-10-24T23:06:14.7589245Z
2026-10-24T23:06:14.7589580Z src/connection/storage.ts:895:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeVcsRefs")((environmentId, cwd) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7589960Z
2026-10-24T23:06:14.7590018Z 895 removeVcsRefs: (environmentId, cwd) =>
2026-10-24T23:06:14.7590159Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7590225Z
2026-10-24T23:06:14.7590551Z src/connection/storage.ts:901:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clearVcsRefs")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7590924Z
2026-10-24T23:06:14.7590982Z 901 clearVcsRefs: (environmentId) =>
2026-10-24T23:06:14.7591114Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7591180Z
2026-10-24T23:06:14.7591526Z src/connection/storage.ts:907:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.removeThread")((environmentId, threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7591920Z
2026-10-24T23:06:14.7591987Z 907 removeThread: (environmentId, threadId) =>
2026-10-24T23:06:14.7592132Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7592197Z
2026-10-24T23:06:14.7592517Z src/connection/storage.ts:913:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("Persistence.EnvironmentCacheStore.clear")((environmentId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7592882Z
2026-10-24T23:06:14.7592934Z 913 clear: (environmentId) =>
2026-10-24T23:06:14.7593098Z ~~~~~
2026-10-24T23:06:14.7593156Z
2026-10-24T23:06:14.7593158Z
2026-10-24T23:06:14.7593209Z ~/apps/server$ tsc --noEmit
2026-10-24T23:06:14.7593530Z 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-24T23:06:14.7593809Z
2026-10-24T23:06:14.7593866Z 941 yield* Effect.sleep("1200 millis")
2026-10-24T23:06:14.7594061Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7594189Z 942 .pipe(
2026-10-24T23:06:14.7594290Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7594398Z ...
2026-10-24T23:06:14.7594514Z 954 )
2026-10-24T23:06:14.7594611Z ~~~~~~~~~~~
2026-10-24T23:06:14.7594720Z 955 .pipe(Effect.forkDetach);
2026-10-24T23:06:14.7594857Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7594939Z
2026-10-24T23:06:14.7595240Z 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-24T23:06:14.7595574Z
2026-10-24T23:06:14.7595623Z 1175 logger: (event) => {
2026-10-24T23:06:14.7595738Z ~~~~~~
2026-10-24T23:06:14.7595796Z
2026-10-24T23:06:14.7596207Z 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-24T23:06:14.7596654Z
2026-10-24T23:06:14.7596760Z 376 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-24T23:06:14.7596960Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7597057Z
2026-10-24T23:06:14.7597448Z src/assets/AssetAccess.test.ts:975:42 - suggestion TS377112: This input is already assignable to the schema's Encoded type. Use `decodeEffect` to preserve compile-time type checking instead of discarding the input type through `decodeUnknownEffect`. effect(preferTypedSchemaDecoder)
2026-10-24T23:06:14.7597875Z
2026-10-24T23:06:14.7597987Z 975 const { resource } = yield* Schema.decodeUnknownEffect(AssetCreateUrlInput)({
2026-10-24T23:06:14.7598203Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7598305Z
2026-10-24T23:06:14.7598593Z src/auth/EnvironmentAuth.ts:1396:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("EnvironmentAuth.getDescriptor")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7598914Z
2026-10-24T23:06:14.7598961Z 1396 getDescriptor: () =>
2026-10-24T23:06:14.7599080Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7599145Z
2026-10-24T23:06:14.7599450Z 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-24T23:06:14.7599796Z
2026-10-24T23:06:14.7599844Z 55 getDescriptor: () =>
2026-10-24T23:06:14.7599956Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7600019Z
2026-10-24T23:06:14.7600333Z 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-24T23:06:14.7600690Z
2026-10-24T23:06:14.7600739Z 540 authenticate: (request) =>
2026-10-24T23:06:14.7600865Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7600930Z
2026-10-24T23:06:14.7601168Z 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-24T23:06:14.7601443Z
2026-10-24T23:06:14.7601497Z 468 : Effect.succeed(undefined),
2026-10-24T23:06:14.7601676Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7601762Z
2026-10-24T23:06:14.7602039Z 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-24T23:06:14.7602353Z
2026-10-24T23:06:14.7602405Z 328 HttpClientError: (cause) =>
2026-10-24T23:06:14.7602536Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7602643Z
2026-10-24T23:06:14.7602872Z src/cloud/CloudLink.lifecycle.test.ts:166:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7603141Z
2026-10-24T23:06:14.7603206Z 166 latest: Effect.succeed(Option.none()),
2026-10-24T23:06:14.7603352Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7603436Z
2026-10-24T23:06:14.7603649Z src/cloud/CloudLink.test.ts:99:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7603899Z
2026-10-24T23:06:14.7603958Z 99 latest: Effect.succeed(Option.none()),
2026-10-24T23:06:14.7604105Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7604108Z
2026-10-24T23:06:14.7604472Z 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-24T23:06:14.7604476Z
2026-10-24T23:06:14.7604603Z 791 requestRecovery: (config) => Queue.offer(recoveryRequests, config).pipe(Effect.asVoid),
2026-10-24T23:06:14.7604644Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7604647Z
2026-10-24T23:06:14.7604848Z src/cloud/http.test.ts:81:67 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7604850Z
2026-10-24T23:06:14.7604996Z 81 Layer.mock(ConnectReachability.ConnectReachability)({ latest: Effect.succeed(Option.none()) }),
2026-10-24T23:06:14.7605065Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7605067Z
2026-10-24T23:06:14.7605399Z 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-24T23:06:14.7605402Z
2026-10-24T23:06:14.7605483Z 371 commitDesktopUpdate: (requestId, onHandoffAccepted) =>
2026-10-24T23:06:14.7605529Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7605531Z
2026-10-24T23:06:14.7605807Z 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-24T23:06:14.7605809Z
2026-10-24T23:06:14.7605858Z 808 updateTool: (tool) =>
2026-10-24T23:06:14.7605908Z ~~~~~~~~~~
2026-10-24T23:06:14.7605910Z
2026-10-24T23:06:14.7606176Z 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-24T23:06:14.7606178Z
2026-10-24T23:06:14.7606225Z 823 easAccount: () =>
2026-10-24T23:06:14.7606266Z ~~~~~~~~~~
2026-10-24T23:06:14.7606269Z
2026-10-24T23:06:14.7606572Z 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-24T23:06:14.7606574Z
2026-10-24T23:06:14.7606627Z 868 ensureAgentReady: (onPhase) =>
2026-10-24T23:06:14.7606669Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7606671Z
2026-10-24T23:06:14.7606939Z src/device/easProjectId.ts:201:7 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7606943Z
2026-10-24T23:06:14.7606995Z 201 Effect.map(Option.some),
2026-10-24T23:06:14.7607034Z ~~~~~~~~~~
2026-10-24T23:06:14.7607036Z
2026-10-24T23:06:14.7607316Z 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-24T23:06:14.7607358Z
2026-10-24T23:06:14.7607434Z 141 return DirectEndpoints.of({ resolve: () => resolve });
2026-10-24T23:06:14.7607481Z ~~~~~~~
2026-10-24T23:06:14.7607484Z
2026-10-24T23:06:14.7607784Z 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-24T23:06:14.7607786Z
2026-10-24T23:06:14.7607888Z 83 return RemoteOpenTargets.of({ resolveTargets: () => resolveTargets });
2026-10-24T23:06:14.7607938Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7607941Z
2026-10-24T23:06:14.7608234Z 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-24T23:06:14.7608237Z
2026-10-24T23:06:14.7608288Z 302 isRepository: (cwd) =>
2026-10-24T23:06:14.7608327Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7608329Z
2026-10-24T23:06:14.7608616Z 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-24T23:06:14.7608618Z
2026-10-24T23:06:14.7608665Z 315 hasCommit: (input) =>
2026-10-24T23:06:14.7608706Z ~~~~~~~~~
2026-10-24T23:06:14.7608708Z
2026-10-24T23:06:14.7608998Z 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-24T23:06:14.7609000Z
2026-10-24T23:06:14.7609049Z 327 hasRefNamed: (input) =>
2026-10-24T23:06:14.7609087Z ~~~~~~~~~~~
2026-10-24T23:06:14.7609091Z
2026-10-24T23:06:14.7609368Z 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-24T23:06:14.7609371Z
2026-10-24T23:06:14.7609418Z 346 status: (input) =>
2026-10-24T23:06:14.7609457Z ~~~~~~
2026-10-24T23:06:14.7609459Z
2026-10-24T23:06:14.7609746Z 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-24T23:06:14.7609749Z
2026-10-24T23:06:14.7609795Z 352 localStatus: (input) =>
2026-10-24T23:06:14.7609836Z ~~~~~~~~~~~
2026-10-24T23:06:14.7609838Z
2026-10-24T23:06:14.7610140Z 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-24T23:06:14.7610144Z
2026-10-24T23:06:14.7610199Z 360 remoteStatus: (input, options) =>
2026-10-24T23:06:14.7610239Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7610241Z
2026-10-24T23:06:14.7610535Z 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-24T23:06:14.7610537Z
2026-10-24T23:06:14.7610590Z 369 pullCurrentBranch: (cwd) =>
2026-10-24T23:06:14.7610634Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7610675Z
2026-10-24T23:06:14.7610986Z 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-24T23:06:14.7610988Z
2026-10-24T23:06:14.7611047Z 373 runStackedAction: (input, options) =>
2026-10-24T23:06:14.7611088Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7611130Z
2026-10-24T23:06:14.7611447Z 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-24T23:06:14.7611449Z
2026-10-24T23:06:14.7611511Z 388 preparePullRequestThread: (input) =>
2026-10-24T23:06:14.7611557Z ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7611559Z
2026-10-24T23:06:14.7611844Z 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-24T23:06:14.7611847Z
2026-10-24T23:06:14.7611894Z 399 listRefs: (input) =>
2026-10-24T23:06:14.7611934Z ~~~~~~~~
2026-10-24T23:06:14.7611936Z
2026-10-24T23:06:14.7612243Z 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-24T23:06:14.7612247Z
2026-10-24T23:06:14.7612305Z 405 createWorktree: (input, options) =>
2026-10-24T23:06:14.7612347Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7612349Z
2026-10-24T23:06:14.7612653Z 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-24T23:06:14.7612657Z
2026-10-24T23:06:14.7612709Z 409 listLocalBranchNames: (cwd) =>
2026-10-24T23:06:14.7612755Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7612757Z
2026-10-24T23:06:14.7613048Z 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-24T23:06:14.7613051Z
2026-10-24T23:06:14.7613098Z 413 fetchRemote: (input) =>
2026-10-24T23:06:14.7613138Z ~~~~~~~~~~~
2026-10-24T23:06:14.7613141Z
2026-10-24T23:06:14.7613434Z 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-24T23:06:14.7613437Z
2026-10-24T23:06:14.7613487Z 417 remoteExists: (input) =>
2026-10-24T23:06:14.7613530Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7613532Z
2026-10-24T23:06:14.7613836Z 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-24T23:06:14.7613838Z
2026-10-24T23:06:14.7613890Z 421 remoteBranchExists: (input) =>
2026-10-24T23:06:14.7613933Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7613935Z
2026-10-24T23:06:14.7614258Z 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-24T23:06:14.7614261Z
2026-10-24T23:06:14.7614325Z 425 resolveRemoteTrackingCommit: (input) =>
2026-10-24T23:06:14.7614368Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7614370Z
2026-10-24T23:06:14.7614772Z 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-24T23:06:14.7614775Z
2026-10-24T23:06:14.7614836Z 429 resolveWorktreeBaseRemote: (input) =>
2026-10-24T23:06:14.7614880Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7614882Z
2026-10-24T23:06:14.7615194Z 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-24T23:06:14.7615237Z
2026-10-24T23:06:14.7615294Z 433 fetchWorktreeBaseCommit: (input) =>
2026-10-24T23:06:14.7615338Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7615340Z
2026-10-24T23:06:14.7615635Z 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-24T23:06:14.7615639Z
2026-10-24T23:06:14.7615691Z 437 removeWorktree: (input) =>
2026-10-24T23:06:14.7615731Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7615733Z
2026-10-24T23:06:14.7616026Z 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-24T23:06:14.7616030Z
2026-10-24T23:06:14.7616079Z 441 pruneWorktrees: (input) =>
2026-10-24T23:06:14.7616120Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7616122Z
2026-10-24T23:06:14.7616418Z 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-24T23:06:14.7616420Z
2026-10-24T23:06:14.7616470Z 445 deleteLocalBranch: (input) =>
2026-10-24T23:06:14.7616513Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7616516Z
2026-10-24T23:06:14.7616798Z 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-24T23:06:14.7616801Z
2026-10-24T23:06:14.7616850Z 449 createRef: (input) =>
2026-10-24T23:06:14.7616890Z ~~~~~~~~~
2026-10-24T23:06:14.7616892Z
2026-10-24T23:06:14.7617172Z 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-24T23:06:14.7617174Z
2026-10-24T23:06:14.7617221Z 457 switchRef: (input) =>
2026-10-24T23:06:14.7617261Z ~~~~~~~~~
2026-10-24T23:06:14.7617263Z
2026-10-24T23:06:14.7617553Z 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-24T23:06:14.7617555Z
2026-10-24T23:06:14.7617604Z 463 renameBranch: (input) =>
2026-10-24T23:06:14.7617643Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7617645Z
2026-10-24T23:06:14.7617895Z src/htmlRender/headlessChrome.ts:282:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("receive")((raw) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7617899Z
2026-10-24T23:06:14.7617957Z 282 const receive = (raw: string) => {
2026-10-24T23:06:14.7618008Z ~~~~~~~
2026-10-24T23:06:14.7618010Z
2026-10-24T23:06:14.7618435Z 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-24T23:06:14.7618439Z
2026-10-24T23:06:14.7618479Z 284 try {
2026-10-24T23:06:14.7618570Z ~~~~~
2026-10-24T23:06:14.7618624Z 285 parsed = JSON.parse(line);
2026-10-24T23:06:14.7618668Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7618707Z ...
2026-10-24T23:06:14.7618805Z 287 return yield* respondWithError(null, "Parse error", -32700);
2026-10-24T23:06:14.7618872Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7618911Z 288 }
2026-10-24T23:06:14.7618996Z ~~~~~~~
2026-10-24T23:06:14.7618999Z
2026-10-24T23:06:14.7619264Z 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-24T23:06:14.7619266Z
2026-10-24T23:06:14.7619326Z 324 Effect.catchCause(() => Effect.void),
2026-10-24T23:06:14.7619370Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7619372Z
2026-10-24T23:06:14.7619597Z src/mcp/McpDeviceToolkit.test.ts:105:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7619600Z
2026-10-24T23:06:14.7619664Z 105 getById: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7619709Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7619711Z
2026-10-24T23:06:14.7619987Z 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-24T23:06:14.7619991Z
2026-10-24T23:06:14.7620083Z 421 const previewSnapshotFailure = <E>(cause: Cause.Cause<E>) => {
2026-10-24T23:06:14.7620126Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7620128Z
2026-10-24T23:06:14.7620408Z src/mcp/McpHttpServer.ts:938:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("McpServer.McpServer.addTool")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7620411Z
2026-10-24T23:06:14.7620461Z 938 addTool: (options) =>
2026-10-24T23:06:14.7620503Z ~~~~~~~
2026-10-24T23:06:14.7620505Z
2026-10-24T23:06:14.7620770Z 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-24T23:06:14.7620774Z
2026-10-24T23:06:14.7620832Z 22 resolve: () => Effect.succeed(undefined),
2026-10-24T23:06:14.7620884Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7620886Z
2026-10-24T23:06:14.7621161Z 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-24T23:06:14.7621164Z
2026-10-24T23:06:14.7621221Z 112 Effect.flatMap(() => writingCaller),
2026-10-24T23:06:14.7621261Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7621263Z
2026-10-24T23:06:14.7621747Z 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-24T23:06:14.7621750Z
2026-10-24T23:06:14.7621821Z 2465 const cancelOrphan = Effect.gen(function* () {
2026-10-24T23:06:14.7621877Z ~~~~~~~~~
2026-10-24T23:06:14.7621879Z
2026-10-24T23:06:14.7622111Z src/mcp/OrchestratorMcpService.ts:2480:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-24T23:06:14.7622191Z 2480 .pipe(Effect.mapError(threadManagementFailure));
2026-10-24T23:06:14.7622238Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7622241Z
2026-10-24T23:06:14.7622499Z src/mcp/OrchestratorMcpService.ts:2483:17 - This repeated `Effect.mapError(...)` site participates in the hoistable generator-wide mapping. effect(redundantMapError)
2026-10-24T23:06:14.7622581Z 2483 .pipe(Effect.mapError(threadManagementFailure));
2026-10-24T23:06:14.7622626Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7622630Z
2026-10-24T23:06:14.7622890Z 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-24T23:06:14.7622929Z
2026-10-24T23:06:14.7622976Z 651 onNone: () =>
2026-10-24T23:06:14.7623017Z ~~~~~~
2026-10-24T23:06:14.7623019Z
2026-10-24T23:06:14.7623214Z src/mcp/WorktreeMcpService.test.ts:355:3 - suggestion TS377017: This Effect.gen contains a single return statement. effect(unnecessaryEffectGen)
2026-10-24T23:06:14.7623216Z
2026-10-24T23:06:14.7623263Z 355 Effect.gen(function* () {
2026-10-24T23:06:14.7623307Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7623391Z 356 return yield* WorktreeMcpService.WorktreeMcpService;
2026-10-24T23:06:14.7623452Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7623509Z 357 }).pipe(Effect.provide(harness.layer));
2026-10-24T23:06:14.7623551Z ~~~~
2026-10-24T23:06:14.7623553Z
2026-10-24T23:06:14.7623816Z src/mcp/toolkits/pullRequests/handlers.ts:217:27 - suggestion TS377015: This expression contains chained `pipe` calls that can be simplified to a single `pipe` call. effect(unnecessaryPipeChain)
2026-10-24T23:06:14.7623820Z
2026-10-24T23:06:14.7623872Z 217 const thread = yield* engine
2026-10-24T23:06:14.7623914Z ~~~~~~
2026-10-24T23:06:14.7623962Z 218 .getThreadShell(threadId)
2026-10-24T23:06:14.7624006Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7624070Z 219 .pipe(Effect.map(Option.fromNullishOr))
2026-10-24T23:06:14.7624121Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7624204Z 220 .pipe(Effect.mapError((cause) => new Failure({ cause })));
2026-10-24T23:06:14.7624269Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7624272Z
2026-10-24T23:06:14.7624591Z 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-24T23:06:14.7624595Z
2026-10-24T23:06:14.7624713Z 96 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-24T23:06:14.7624756Z ~~~
2026-10-24T23:06:14.7624758Z
2026-10-24T23:06:14.7625043Z 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-24T23:06:14.7625045Z
2026-10-24T23:06:14.7625160Z 96 McpAppModelContext.of({ set: () => Effect.void, forThread: () => Effect.succeed([]) }),
2026-10-24T23:06:14.7625221Z ~~~~~~~~~
2026-10-24T23:06:14.7625223Z
2026-10-24T23:06:14.7625533Z 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-24T23:06:14.7625537Z
2026-10-24T23:06:14.7625582Z 16 record: (records) =>
2026-10-24T23:06:14.7625622Z ~~~~~~
2026-10-24T23:06:14.7625624Z
2026-10-24T23:06:14.7625887Z 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-24T23:06:14.7625889Z
2026-10-24T23:06:14.7625987Z 41 defaultValue: () => ({ latestNoticeableStall: Effect.succeed(undefined) }),
2026-10-24T23:06:14.7626091Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7626095Z
2026-10-24T23:06:14.7626527Z 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-24T23:06:14.7626567Z
2026-10-24T23:06:14.7626668Z 30 const REPLAY_SETTINGS = Schema.decodeUnknownSync(AcpRegistrySettings)({
2026-10-24T23:06:14.7626720Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7626723Z
2026-10-24T23:06:14.7627022Z 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-24T23:06:14.7627024Z
2026-10-24T23:06:14.7627083Z 48 defaultModel: Effect.succeed(undefined),
2026-10-24T23:06:14.7627129Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7627131Z
2026-10-24T23:06:14.7627428Z 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-24T23:06:14.7627430Z
2026-10-24T23:06:14.7627497Z 169 defaultModel: Effect.succeed(undefined),
2026-10-24T23:06:14.7627547Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7627550Z
2026-10-24T23:06:14.7627847Z 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-24T23:06:14.7627850Z
2026-10-24T23:06:14.7627910Z 306 defaultModel: Effect.succeed(undefined),
2026-10-24T23:06:14.7627961Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7627963Z
2026-10-24T23:06:14.7628257Z 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-24T23:06:14.7628260Z
2026-10-24T23:06:14.7628319Z 542 defaultModel: Effect.succeed(undefined),
2026-10-24T23:06:14.7628368Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7628372Z
2026-10-24T23:06:14.7628703Z 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-24T23:06:14.7628705Z
2026-10-24T23:06:14.7628766Z 974 const controller = new AbortController();
2026-10-24T23:06:14.7628815Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7628817Z
2026-10-24T23:06:14.7629101Z 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-24T23:06:14.7629103Z
2026-10-24T23:06:14.7629170Z 1326 const requestEvent = yield* runtime.events
2026-10-24T23:06:14.7629224Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7629269Z 1327 .pipe(
2026-10-24T23:06:14.7629310Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7629348Z ...
2026-10-24T23:06:14.7629387Z 1330 )
2026-10-24T23:06:14.7629427Z ~~~~~~~~~~~
2026-10-24T23:06:14.7629483Z 1331 .pipe(Effect.forkScoped);
2026-10-24T23:06:14.7629527Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7629530Z
2026-10-24T23:06:14.7629901Z 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-24T23:06:14.7629904Z
2026-10-24T23:06:14.7629970Z 1332 const controller = new AbortController();
2026-10-24T23:06:14.7630023Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7630025Z
2026-10-24T23:06:14.7630350Z 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-24T23:06:14.7630390Z
2026-10-24T23:06:14.7630466Z 1355 const cancelledController = new AbortController();
2026-10-24T23:06:14.7630523Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7630525Z
2026-10-24T23:06:14.7630877Z src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4020:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.getCapabilities")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7630879Z
2026-10-24T23:06:14.7630981Z 4020 getCapabilities: () => Effect.succeed(ClaudeProviderCapabilitiesV2),
2026-10-24T23:06:14.7631025Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7631027Z
2026-10-24T23:06:14.7631389Z src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:4021:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ProviderAdapter.ProviderAdapterV2.planSelectionTransition")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7631394Z
2026-10-24T23:06:14.7631510Z 4021 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T23:06:14.7631555Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7631557Z
2026-10-24T23:06:14.7631904Z 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-24T23:06:14.7631906Z
2026-10-24T23:06:14.7631966Z 201 signal: new AbortController().signal,
2026-10-24T23:06:14.7632011Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7632013Z
2026-10-24T23:06:14.7632390Z 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-24T23:06:14.7632394Z
2026-10-24T23:06:14.7632447Z 74 const pause = Effect.raceFirst(
2026-10-24T23:06:14.7632493Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7632495Z
2026-10-24T23:06:14.7632777Z 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-24T23:06:14.7632781Z
2026-10-24T23:06:14.7632882Z 1741 threadId === null ? Effect.succeed(undefined) : mcpSessions.read(threadId);
2026-10-24T23:06:14.7632938Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7632940Z
2026-10-24T23:06:14.7633287Z 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-24T23:06:14.7633291Z
2026-10-24T23:06:14.7633389Z 1748 getCapabilities: () => Effect.succeed(CodexProviderCapabilitiesV2),
2026-10-24T23:06:14.7633432Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7633434Z
2026-10-24T23:06:14.7633796Z 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-24T23:06:14.7633838Z
2026-10-24T23:06:14.7633951Z 1749 planSelectionTransition: () => Effect.succeed(turnScopedSelectionTransition()),
2026-10-24T23:06:14.7633997Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7633999Z
2026-10-24T23:06:14.7634306Z 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-24T23:06:14.7634346Z
2026-10-24T23:06:14.7634430Z 3045 Effect.catch(() => Effect.succeed(null)),
2026-10-24T23:06:14.7634474Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7634476Z
2026-10-24T23:06:14.7634863Z 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-24T23:06:14.7634867Z
2026-10-24T23:06:14.7634927Z 3046 Effect.flatMap((response) =>
2026-10-24T23:06:14.7634974Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7634976Z
2026-10-24T23:06:14.7635248Z 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-24T23:06:14.7635252Z
2026-10-24T23:06:14.7635313Z 3068 Effect.catch(() => Effect.void),
2026-10-24T23:06:14.7635357Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7635360Z
2026-10-24T23:06:14.7635710Z 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-24T23:06:14.7635712Z
2026-10-24T23:06:14.7635794Z 7268 return yield* Effect.fail(failedTermination.error);
2026-10-24T23:06:14.7635838Z ~~~~~
2026-10-24T23:06:14.7635840Z
2026-10-24T23:06:14.7636260Z 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-24T23:06:14.7636265Z
2026-10-24T23:06:14.7636363Z 33 const DEFAULT_GROK_SETTINGS = Schema.decodeUnknownSync(GrokSettings)({});
2026-10-24T23:06:14.7636420Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7636422Z
2026-10-24T23:06:14.7636841Z 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-24T23:06:14.7636844Z
2026-10-24T23:06:14.7636965Z 414 const DEFAULT_MUSE_SETTINGS = Schema.decodeUnknownSync(MuseSettings)({ enabled: true });
2026-10-24T23:06:14.7637020Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7637022Z
2026-10-24T23:06:14.7637354Z 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-24T23:06:14.7637358Z
2026-10-24T23:06:14.7637407Z 242 execute: (input) =>
2026-10-24T23:06:14.7637448Z ~~~~~~~
2026-10-24T23:06:14.7637450Z
2026-10-24T23:06:14.7637704Z src/orchestration-v2/CheckpointRestoreSafety.test.ts:104:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7637706Z
2026-10-24T23:06:14.7637849Z 104 get: () => Effect.succeed(Option.some({ workspaceRoot: parent } as never)),
2026-10-24T23:06:14.7637896Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7637899Z
2026-10-24T23:06:14.7638248Z 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-24T23:06:14.7638286Z
2026-10-24T23:06:14.7638337Z 41 Effect.catch((error) =>
2026-10-24T23:06:14.7638381Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7638383Z
2026-10-24T23:06:14.7638716Z 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-24T23:06:14.7638720Z
2026-10-24T23:06:14.7638770Z 83 Effect.catch((error) =>
2026-10-24T23:06:14.7638817Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7638819Z
2026-10-24T23:06:14.7639076Z src/orchestration-v2/CheckpointRollbackService.test.ts:233:22 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7639078Z
2026-10-24T23:06:14.7639174Z 233 return Effect.succeed(Option.some({ workspaceRoot } as never));
2026-10-24T23:06:14.7639220Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7639223Z
2026-10-24T23:06:14.7639573Z 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-24T23:06:14.7639576Z
2026-10-24T23:06:14.7639644Z 142 const batchAbort = new AbortController();
2026-10-24T23:06:14.7639697Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7639699Z
2026-10-24T23:06:14.7640057Z 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-24T23:06:14.7640059Z
2026-10-24T23:06:14.7640109Z 168 Effect.flatMap((frame) =>
2026-10-24T23:06:14.7640151Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7640154Z
2026-10-24T23:06:14.7640392Z src/orchestration-v2/CommandReceiptStore.ts:164:29 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7640394Z
2026-10-24T23:06:14.7640466Z 164 onNone: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7640516Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7640518Z
2026-10-24T23:06:14.7640753Z src/orchestration-v2/CommandReceiptStore.ts:167:21 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7640755Z
2026-10-24T23:06:14.7640816Z 167 ? Effect.succeed(Option.none())
2026-10-24T23:06:14.7640861Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7640864Z
2026-10-24T23:06:14.7641104Z src/orchestration-v2/CommandReceiptStore.ts:168:58 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7641108Z
2026-10-24T23:06:14.7641211Z 168 : fromApplicationReceipt(receipt).pipe(Effect.map(Option.some)),
2026-10-24T23:06:14.7641272Z ~~~~~~~~~~
2026-10-24T23:06:14.7641275Z
2026-10-24T23:06:14.7641510Z src/orchestration-v2/CommandReceiptStore.ts:183:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7641512Z
2026-10-24T23:06:14.7641609Z 183 ? Effect.succeed(Option.none())
2026-10-24T23:06:14.7641656Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7641658Z
2026-10-24T23:06:14.7641897Z src/orchestration-v2/CommandReceiptStore.ts:192:25 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7641899Z
2026-10-24T23:06:14.7641960Z 192 }).pipe(Effect.map(Option.some)),
2026-10-24T23:06:14.7642055Z ~~~~~~~~~~
2026-10-24T23:06:14.7642057Z
2026-10-24T23:06:14.7642281Z src/orchestration-v2/EffectOutbox.ts:429:17 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7642283Z
2026-10-24T23:06:14.7642340Z 429 ? Effect.succeed(Option.none())
2026-10-24T23:06:14.7642384Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7642386Z
2026-10-24T23:06:14.7642615Z src/orchestration-v2/EffectOutbox.ts:430:39 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7642617Z
2026-10-24T23:06:14.7642695Z 430 : rowToEffect(row).pipe(Effect.map(Option.some));
2026-10-24T23:06:14.7642748Z ~~~~~~~~~~
2026-10-24T23:06:14.7642750Z
2026-10-24T23:06:14.7642978Z src/orchestration-v2/EffectWorker.test.ts:107:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7642982Z
2026-10-24T23:06:14.7643043Z 107 get: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7643091Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7643093Z
2026-10-24T23:06:14.7643322Z src/orchestration-v2/EffectWorker.test.ts:302:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7643324Z
2026-10-24T23:06:14.7643411Z 302 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T23:06:14.7643459Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7643461Z
2026-10-24T23:06:14.7643688Z src/orchestration-v2/EffectWorker.test.ts:369:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7643690Z
2026-10-24T23:06:14.7643772Z 369 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T23:06:14.7643820Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7643822Z
2026-10-24T23:06:14.7644049Z src/orchestration-v2/EffectWorker.test.ts:436:24 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7644051Z
2026-10-24T23:06:14.7644131Z 436 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T23:06:14.7644177Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7644180Z
2026-10-24T23:06:14.7644448Z src/orchestration-v2/EffectWorker.test.ts:437:18 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7644451Z
2026-10-24T23:06:14.7644526Z 437 get: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T23:06:14.7644572Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7644575Z
2026-10-24T23:06:14.7644903Z 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-24T23:06:14.7644907Z
2026-10-24T23:06:14.7644957Z 98 execute: (effect, options) => {
2026-10-24T23:06:14.7644998Z ~~~~~~~
2026-10-24T23:06:14.7645000Z
2026-10-24T23:06:14.7645357Z 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-24T23:06:14.7645360Z
2026-10-24T23:06:14.7645413Z 180 Effect.catch((cause) =>
2026-10-24T23:06:14.7645457Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7645459Z
2026-10-24T23:06:14.7645737Z 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-24T23:06:14.7645777Z
2026-10-24T23:06:14.7645827Z 110 append: (input) =>
2026-10-24T23:06:14.7645868Z ~~~~~~
2026-10-24T23:06:14.7645870Z
2026-10-24T23:06:14.7646173Z 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-24T23:06:14.7646175Z
2026-10-24T23:06:14.7646232Z 120 appendProjectEvent: (event) =>
2026-10-24T23:06:14.7646276Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7646278Z
2026-10-24T23:06:14.7646569Z 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-24T23:06:14.7646571Z
2026-10-24T23:06:14.7646624Z 131 latestSequence: (input) =>
2026-10-24T23:06:14.7646668Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7646670Z
2026-10-24T23:06:14.7646923Z src/orchestration-v2/FoundationPersistence.test.ts:1791:26 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7646925Z
2026-10-24T23:06:14.7647012Z 1791 claimNext: () => Effect.succeed(Option.some(claimedEffect)),
2026-10-24T23:06:14.7647063Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7647065Z
2026-10-24T23:06:14.7647316Z src/orchestration-v2/FoundationPersistence.test.ts:1793:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7647318Z
2026-10-24T23:06:14.7647365Z 1793 Effect.succeed(
2026-10-24T23:06:14.7647409Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7647411Z
2026-10-24T23:06:14.7647661Z src/orchestration-v2/FoundationPersistence.test.ts:2663:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7647664Z
2026-10-24T23:06:14.7647742Z 2663 nextClaimableAt: Effect.succeed(Option.none()),
2026-10-24T23:06:14.7647795Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7647797Z
2026-10-24T23:06:14.7648043Z src/orchestration-v2/FoundationPersistence.test.ts:2880:30 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7648047Z
2026-10-24T23:06:14.7648120Z 2880 nextClaimableAt: Effect.succeed(Option.none()),
2026-10-24T23:06:14.7648173Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7648175Z
2026-10-24T23:06:14.7648522Z src/orchestration-v2/Orchestrator.ts:11811:7 - suggestion TS377120: `Effect.filterOrFail` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-24T23:06:14.7648525Z
2026-10-24T23:06:14.7648578Z 11811 Effect.flatMap((planned) =>
2026-10-24T23:06:14.7648620Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7648623Z
2026-10-24T23:06:14.7648948Z src/orchestration-v2/Orchestrator.ts:12234:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.restartContinuationPending")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7648950Z
2026-10-24T23:06:14.7649052Z 12234 restartContinuationPending: (run) =>
2026-10-24T23:06:14.7649099Z ~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7649101Z
2026-10-24T23:06:14.7649422Z src/orchestration-v2/Orchestrator.ts:12236:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.awaitRestartContinuation")((run) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7649465Z
2026-10-24T23:06:14.7649522Z 12236 awaitRestartContinuation: (run) =>
2026-10-24T23:06:14.7649570Z ~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7649573Z
2026-10-24T23:06:14.7649885Z src/orchestration-v2/Orchestrator.ts:12239:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.autoArmLimitRecovery")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7649887Z
2026-10-24T23:06:14.7649943Z 12239 autoArmLimitRecovery: (input) =>
2026-10-24T23:06:14.7649988Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7649992Z
2026-10-24T23:06:14.7650286Z src/orchestration-v2/Orchestrator.ts:12267:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.searchThread")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7650288Z
2026-10-24T23:06:14.7650337Z 12267 searchThread: (input) =>
2026-10-24T23:06:14.7650379Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7650383Z
2026-10-24T23:06:14.7650767Z src/orchestration-v2/Orchestrator.ts:12275: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-24T23:06:14.7650769Z
2026-10-24T23:06:14.7650886Z 12275 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-24T23:06:14.7650928Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7650930Z
2026-10-24T23:06:14.7651255Z src/orchestration-v2/Orchestrator.ts:12279:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTimelinePage")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7651257Z
2026-10-24T23:06:14.7651320Z 12279 getTimelinePage: (threadId, options) =>
2026-10-24T23:06:14.7651365Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7651369Z
2026-10-24T23:06:14.7651673Z src/orchestration-v2/Orchestrator.ts:12283:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getMessageCount")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7651675Z
2026-10-24T23:06:14.7651726Z 12283 getMessageCount: (threadId) =>
2026-10-24T23:06:14.7651772Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7651775Z
2026-10-24T23:06:14.7652073Z src/orchestration-v2/Orchestrator.ts:12287:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getTurnItem")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7652076Z
2026-10-24T23:06:14.7652125Z 12287 getTurnItem: (input) =>
2026-10-24T23:06:14.7652165Z ~~~~~~~~~~~
2026-10-24T23:06:14.7652171Z
2026-10-24T23:06:14.7652499Z src/orchestration-v2/Orchestrator.ts:12295:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadRecords")((threadId, fields, filter) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7652502Z
2026-10-24T23:06:14.7652575Z 12295 getThreadRecords: (threadId, fields, filter) =>
2026-10-24T23:06:14.7652619Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7652621Z
2026-10-24T23:06:14.7652934Z src/orchestration-v2/Orchestrator.ts:12299:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadProjection")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7652972Z
2026-10-24T23:06:14.7653032Z 12299 getThreadProjection: (threadId) =>
2026-10-24T23:06:14.7653074Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7653076Z
2026-10-24T23:06:14.7653395Z src/orchestration-v2/Orchestrator.ts:12303:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getCheckpointContext")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7653432Z
2026-10-24T23:06:14.7653492Z 12303 getCheckpointContext: (threadId) =>
2026-10-24T23:06:14.7653538Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7653540Z
2026-10-24T23:06:14.7653847Z src/orchestration-v2/Orchestrator.ts:12307:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshot")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7653851Z
2026-10-24T23:06:14.7653903Z 12307 getThreadSnapshot: (threadId) =>
2026-10-24T23:06:14.7653950Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7653952Z
2026-10-24T23:06:14.7654287Z src/orchestration-v2/Orchestrator.ts:12311:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadSnapshotWindow")((threadId, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7654289Z
2026-10-24T23:06:14.7654364Z 12311 getThreadSnapshotWindow: (threadId, options) =>
2026-10-24T23:06:14.7654461Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7654464Z
2026-10-24T23:06:14.7654770Z src/orchestration-v2/Orchestrator.ts:12315:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7654772Z
2026-10-24T23:06:14.7654828Z 12315 getShellSnapshot: (options) =>
2026-10-24T23:06:14.7654871Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7654873Z
2026-10-24T23:06:14.7655191Z src/orchestration-v2/Orchestrator.ts:12317:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.listActiveSubagentThreadIds")(() => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7655194Z
2026-10-24T23:06:14.7655251Z 12317 listActiveSubagentThreadIds: () =>
2026-10-24T23:06:14.7655298Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7655301Z
2026-10-24T23:06:14.7655609Z src/orchestration-v2/Orchestrator.ts:12319:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.readShellSnapshot")((options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7655611Z
2026-10-24T23:06:14.7655665Z 12319 readShellSnapshot: (options) =>
2026-10-24T23:06:14.7655713Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7655715Z
2026-10-24T23:06:14.7656020Z src/orchestration-v2/Orchestrator.ts:12326:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadShell")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7656024Z
2026-10-24T23:06:14.7656075Z 12326 getThreadShell: (threadId) =>
2026-10-24T23:06:14.7656118Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7656120Z
2026-10-24T23:06:14.7656438Z src/orchestration-v2/Orchestrator.ts:12330:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("OrchestratorV2.getThreadEventSequence")((threadId) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7656442Z
2026-10-24T23:06:14.7656506Z 12330 getThreadEventSequence: (threadId) =>
2026-10-24T23:06:14.7656549Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7656551Z
2026-10-24T23:06:14.7656870Z 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-24T23:06:14.7656926Z
2026-10-24T23:06:14.7656996Z 160 getInstance: () => Effect.succeed(undefined),
2026-10-24T23:06:14.7657051Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7657053Z
2026-10-24T23:06:14.7657348Z 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-24T23:06:14.7657395Z
2026-10-24T23:06:14.7657505Z 269 getShell: (projectId) => get(projectId).pipe(Effect.map(Option.map(toShell))),
2026-10-24T23:06:14.7657546Z ~~~~~~~~
2026-10-24T23:06:14.7657548Z
2026-10-24T23:06:14.7657845Z 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-24T23:06:14.7657848Z
2026-10-24T23:06:14.7657896Z 270 listShells: (options) =>
2026-10-24T23:06:14.7657938Z ~~~~~~~~~~
2026-10-24T23:06:14.7657940Z
2026-10-24T23:06:14.7658282Z src/orchestration-v2/ProjectionControlReads.test.ts:279:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7658285Z
2026-10-24T23:06:14.7658332Z 279 Effect.succeed(
2026-10-24T23:06:14.7658378Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7658382Z
2026-10-24T23:06:14.7658712Z 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-24T23:06:14.7658714Z
2026-10-24T23:06:14.7658761Z 78 get: (instanceId) =>
2026-10-24T23:06:14.7658802Z ~~~
2026-10-24T23:06:14.7658804Z
2026-10-24T23:06:14.7659118Z 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-24T23:06:14.7659121Z
2026-10-24T23:06:14.7659164Z 135 list: () =>
2026-10-24T23:06:14.7659206Z ~~~~
2026-10-24T23:06:14.7659208Z
2026-10-24T23:06:14.7659526Z 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-24T23:06:14.7659531Z
2026-10-24T23:06:14.7659614Z 93 record: (properties: Readonly<Record<string, unknown>>) =>
2026-10-24T23:06:14.7659657Z ~~~~~~
2026-10-24T23:06:14.7659659Z
2026-10-24T23:06:14.7660021Z 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-24T23:06:14.7660023Z
2026-10-24T23:06:14.7660084Z 818 Effect.flatMap((storedEvents) =>
2026-10-24T23:06:14.7660126Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7660128Z
2026-10-24T23:06:14.7660382Z src/orchestration-v2/ProviderSessionManager.test.ts:1155:19 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7660385Z
2026-10-24T23:06:14.7660505Z 1155 : Effect.succeed(Option.some(makeBrowserAccessProject(requestedProjectId))),
2026-10-24T23:06:14.7660551Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7660554Z
2026-10-24T23:06:14.7660812Z src/orchestration-v2/ProviderTurnStartService.test.ts:150:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7660814Z
2026-10-24T23:06:14.7660859Z 150 Effect.succeed(
2026-10-24T23:06:14.7660958Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7660960Z
2026-10-24T23:06:14.7661213Z src/orchestration-v2/ProviderTurnStartService.test.ts:703:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7661215Z
2026-10-24T23:06:14.7661345Z 703 Effect.succeed(Option.some({ workspaceRoot: "/tmp/native-account-project" } as never)),
2026-10-24T23:06:14.7661435Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7661437Z
2026-10-24T23:06:14.7661694Z src/orchestration-v2/ProviderTurnStartService.testkit.ts:14:20 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7661696Z
2026-10-24T23:06:14.7661763Z 14 getById: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7661810Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7661812Z
2026-10-24T23:06:14.7662101Z 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-24T23:06:14.7662103Z
2026-10-24T23:06:14.7662183Z 205 Effect.catchCause(() => Effect.succeed(undefined)),
2026-10-24T23:06:14.7662241Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7662243Z
2026-10-24T23:06:14.7662615Z 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-24T23:06:14.7662617Z
2026-10-24T23:06:14.7662674Z 512 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7662720Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7662722Z
2026-10-24T23:06:14.7663123Z 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-24T23:06:14.7663126Z
2026-10-24T23:06:14.7663185Z 1302 return runExecution.startRootRun({
2026-10-24T23:06:14.7663225Z ~~~~~~
2026-10-24T23:06:14.7663227Z
2026-10-24T23:06:14.7663474Z src/orchestration-v2/PullRequestWatchReactor.ts:478:53 - suggestion TS377114: `Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)
2026-10-24T23:06:14.7663478Z
2026-10-24T23:06:14.7663574Z 478 ? pullRequests.activity(reference).pipe(Effect.map(Option.some))
2026-10-24T23:06:14.7663633Z ~~~~~~~~~~
2026-10-24T23:06:14.7663638Z
2026-10-24T23:06:14.7663988Z 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-24T23:06:14.7663990Z
2026-10-24T23:06:14.7664060Z 49 cleanupScheduledTasks: (threadId: ThreadId) =>
2026-10-24T23:06:14.7664104Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7664106Z
2026-10-24T23:06:14.7664481Z 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-24T23:06:14.7664486Z
2026-10-24T23:06:14.7664553Z 58 cleanupTerminals: (threadId: string) =>
2026-10-24T23:06:14.7664596Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7664599Z
2026-10-24T23:06:14.7664980Z 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-24T23:06:14.7664983Z
2026-10-24T23:06:14.7665043Z 66 cleanupPreviews: (threadId: string) =>
2026-10-24T23:06:14.7665085Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7665087Z
2026-10-24T23:06:14.7665437Z 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-24T23:06:14.7665481Z
2026-10-24T23:06:14.7665569Z 74 cleanupAttachments: (attachmentIds: ReadonlyArray<string>) =>
2026-10-24T23:06:14.7665613Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7665615Z
2026-10-24T23:06:14.7665868Z 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-24T23:06:14.7665870Z
2026-10-24T23:06:14.7665929Z 1812 ).pipe(Effect.map(Option.some)),
2026-10-24T23:06:14.7665971Z ~~~~~~~~~~
2026-10-24T23:06:14.7665974Z
2026-10-24T23:06:14.7666335Z 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-24T23:06:14.7666339Z
2026-10-24T23:06:14.7666395Z 931 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7666440Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7666443Z
2026-10-24T23:06:14.7666674Z src/orchestration-v2/RuntimePolicy.test.ts:90:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7666677Z
2026-10-24T23:06:14.7666721Z 90 Effect.succeed(
2026-10-24T23:06:14.7666764Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7666766Z
2026-10-24T23:06:14.7667058Z 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-24T23:06:14.7667060Z
2026-10-24T23:06:14.7667105Z 54 resolve: (input) =>
2026-10-24T23:06:14.7667146Z ~~~~~~~
2026-10-24T23:06:14.7667148Z
2026-10-24T23:06:14.7667394Z src/orchestration-v2/RuntimeRequestService.test.ts:29:7 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7667397Z
2026-10-24T23:06:14.7667444Z 29 Effect.succeed(
2026-10-24T23:06:14.7667486Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7667488Z
2026-10-24T23:06:14.7667734Z src/orchestration-v2/ThreadLaunchService.test.ts:189:33 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7667736Z
2026-10-24T23:06:14.7667828Z 189 getByWorkspaceRoot: () => Effect.succeed(Option.some(project)),
2026-10-24T23:06:14.7667880Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7667883Z
2026-10-24T23:06:14.7668125Z src/orchestration-v2/ThreadLaunchService.test.ts:220:32 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7668128Z
2026-10-24T23:06:14.7668208Z 220 folderForThread: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7668261Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7668263Z
2026-10-24T23:06:14.7668579Z 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-24T23:06:14.7668583Z
2026-10-24T23:06:14.7668627Z 91 archive: (input) =>
2026-10-24T23:06:14.7668667Z ~~~~~~~
2026-10-24T23:06:14.7668669Z
2026-10-24T23:06:14.7669026Z 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-24T23:06:14.7669029Z
2026-10-24T23:06:14.7669076Z 97 unarchive: (input) =>
2026-10-24T23:06:14.7669114Z ~~~~~~~~~
2026-10-24T23:06:14.7669116Z
2026-10-24T23:06:14.7669455Z 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-24T23:06:14.7669458Z
2026-10-24T23:06:14.7669506Z 103 delete: (input) =>
2026-10-24T23:06:14.7669550Z ~~~~~~
2026-10-24T23:06:14.7669552Z
2026-10-24T23:06:14.7669883Z 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-24T23:06:14.7669885Z
2026-10-24T23:06:14.7669934Z 109 updateMetadata: (input) =>
2026-10-24T23:06:14.7669977Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7669980Z
2026-10-24T23:06:14.7670309Z 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-24T23:06:14.7670313Z
2026-10-24T23:06:14.7670363Z 118 setRuntimeMode: (input) =>
2026-10-24T23:06:14.7670402Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7670406Z
2026-10-24T23:06:14.7670740Z 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-24T23:06:14.7670743Z
2026-10-24T23:06:14.7670797Z 125 setInteractionMode: (input) =>
2026-10-24T23:06:14.7670840Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7670842Z
2026-10-24T23:06:14.7671177Z 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-24T23:06:14.7671181Z
2026-10-24T23:06:14.7671233Z 132 setModelSelection: (input) =>
2026-10-24T23:06:14.7671274Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7671276Z
2026-10-24T23:06:14.7671641Z 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-24T23:06:14.7671643Z
2026-10-24T23:06:14.7671698Z 689 Effect.flatMap((projection) =>
2026-10-24T23:06:14.7671743Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7671745Z
2026-10-24T23:06:14.7672017Z 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-24T23:06:14.7672022Z
2026-10-24T23:06:14.7672087Z 706 ensureProjectionTranscript(input.threadId)
2026-10-24T23:06:14.7672139Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7672270Z 707 .pipe(Effect.andThen(orchestrator.getThreadRecords(input.threadId, fields, filter)))
2026-10-24T23:06:14.7672352Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7672390Z ...
2026-10-24T23:06:14.7672429Z 726 ),
2026-10-24T23:06:14.7672467Z ~~~~~~~~~~
2026-10-24T23:06:14.7672504Z 727 );
2026-10-24T23:06:14.7672543Z ~~~~~~~
2026-10-24T23:06:14.7672546Z
2026-10-24T23:06:14.7672958Z 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-24T23:06:14.7672961Z
2026-10-24T23:06:14.7673016Z 717 Effect.flatMap((projection) =>
2026-10-24T23:06:14.7673059Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7673061Z
2026-10-24T23:06:14.7673417Z 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-24T23:06:14.7673459Z
2026-10-24T23:06:14.7673561Z 1131 if (failures[0] !== undefined) return yield* Effect.fail(failures[0]);
2026-10-24T23:06:14.7673615Z ~~~~~
2026-10-24T23:06:14.7673618Z
2026-10-24T23:06:14.7673954Z 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-24T23:06:14.7673956Z
2026-10-24T23:06:14.7674006Z 1142 searchThread: (input) =>
2026-10-24T23:06:14.7674046Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7674048Z
2026-10-24T23:06:14.7674491Z 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-24T23:06:14.7674495Z
2026-10-24T23:06:14.7674610Z 1147 getThreadHistoryPage: (threadId, cursor, throughEntryId, conversationOnly) =>
2026-10-24T23:06:14.7674654Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7674656Z
2026-10-24T23:06:14.7675010Z 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-24T23:06:14.7675013Z
2026-10-24T23:06:14.7675073Z 1153 getTimelinePage: (threadId, options) =>
2026-10-24T23:06:14.7675116Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7675118Z
2026-10-24T23:06:14.7675459Z 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-24T23:06:14.7675463Z
2026-10-24T23:06:14.7675516Z 1157 getMessageCount: (threadId) =>
2026-10-24T23:06:14.7675559Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7675561Z
2026-10-24T23:06:14.7675887Z 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-24T23:06:14.7675890Z
2026-10-24T23:06:14.7675939Z 1161 getTurnItem: (input) =>
2026-10-24T23:06:14.7675980Z ~~~~~~~~~~~
2026-10-24T23:06:14.7675982Z
2026-10-24T23:06:14.7676346Z 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-24T23:06:14.7676350Z
2026-10-24T23:06:14.7676421Z 1166 getThreadRecords: (threadId, fields, filter) =>
2026-10-24T23:06:14.7676464Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7676466Z
2026-10-24T23:06:14.7676883Z 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-24T23:06:14.7676886Z
2026-10-24T23:06:14.7677021Z 1206 ensureTranscript: () => Effect.succeed({ importedThreadCount: 0, importedMessageCount: 0 }),
2026-10-24T23:06:14.7677066Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7677069Z
2026-10-24T23:06:14.7677329Z src/orchestration-v2/ThreadPullRequestService.test.ts:119:29 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7677372Z
2026-10-24T23:06:14.7677452Z 119 getShell: () => Effect.succeed(Option.some(project)),
2026-10-24T23:06:14.7677504Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7677507Z
2026-10-24T23:06:14.7677762Z src/orchestration-v2/ThreadPullRequestService.test.ts:238:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7677764Z
2026-10-24T23:06:14.7677843Z 238 getShell: () => Effect.succeed(Option.some(project)),
2026-10-24T23:06:14.7677894Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7677896Z
2026-10-24T23:06:14.7678266Z src/orchestration-v2/ThreadPullRequestService.ts:326:17 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7678269Z
2026-10-24T23:06:14.7678325Z 326 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7678372Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7678374Z
2026-10-24T23:06:14.7678738Z src/orchestration-v2/ThreadSettlementService.ts:342:11 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7678741Z
2026-10-24T23:06:14.7678795Z 342 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7678839Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7678841Z
2026-10-24T23:06:14.7679204Z src/orchestration-v2/ThreadSettlementService.ts:505:11 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7679206Z
2026-10-24T23:06:14.7679259Z 505 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7679305Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7679307Z
2026-10-24T23:06:14.7679668Z src/orchestration-v2/ThreadSettlementService.ts:523:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7679670Z
2026-10-24T23:06:14.7679722Z 523 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7679765Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7679769Z
2026-10-24T23:06:14.7680134Z src/orchestration-v2/ThreadSettlementService.ts:565:9 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7680136Z
2026-10-24T23:06:14.7680188Z 565 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7680231Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7680236Z
2026-10-24T23:06:14.7680577Z 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-24T23:06:14.7680579Z
2026-10-24T23:06:14.7680634Z 106 normalize: (item, runOrdinal) =>
2026-10-24T23:06:14.7680675Z ~~~~~~~~~
2026-10-24T23:06:14.7680677Z
2026-10-24T23:06:14.7681104Z 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-24T23:06:14.7681107Z
2026-10-24T23:06:14.7681203Z 54 const thread = Schema.decodeUnknownSync(OrchestrationV2AppThread)({
2026-10-24T23:06:14.7681249Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7681324Z
2026-10-24T23:06:14.7681683Z 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-24T23:06:14.7681685Z
2026-10-24T23:06:14.7681726Z 231 try {
2026-10-24T23:06:14.7681771Z ~~~~~
2026-10-24T23:06:14.7681848Z 232 decodeThreadHistoryCursor(args.query.cursor);
2026-10-24T23:06:14.7681912Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7681954Z ...
2026-10-24T23:06:14.7682082Z 236 return yield* failEnvironmentInternal("orchestration_thread_history_failed", cause);
2026-10-24T23:06:14.7682166Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7682207Z 237 }
2026-10-24T23:06:14.7682248Z ~~~~~~~~~~~
2026-10-24T23:06:14.7682251Z
2026-10-24T23:06:14.7682487Z src/orchestration-v2/runtimeLayer.test.ts:120:18 - suggestion TS377117: `Effect.succeedNone` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7682490Z
2026-10-24T23:06:14.7682553Z 120 getById: () => Effect.succeed(Option.none()),
2026-10-24T23:06:14.7682600Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7682602Z
2026-10-24T23:06:14.7682840Z src/orchestration-v2/runtimeLayer.test.ts:997:11 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7682842Z
2026-10-24T23:06:14.7682891Z 997 Effect.succeed(
2026-10-24T23:06:14.7682935Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7682938Z
2026-10-24T23:06:14.7683290Z 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-24T23:06:14.7683295Z
2026-10-24T23:06:14.7683341Z 40 append: (input) =>
2026-10-24T23:06:14.7683381Z ~~~~~~
2026-10-24T23:06:14.7683384Z
2026-10-24T23:06:14.7683693Z 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-24T23:06:14.7683695Z
2026-10-24T23:06:14.7683757Z 283 const awaitDispatch = (key: string) =>
2026-10-24T23:06:14.7683799Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7683801Z
2026-10-24T23:06:14.7684205Z 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-24T23:06:14.7684208Z
2026-10-24T23:06:14.7684260Z 447 execute: () => Effect.void,
2026-10-24T23:06:14.7684300Z ~~~~~~~
2026-10-24T23:06:14.7684302Z
2026-10-24T23:06:14.7684661Z 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-24T23:06:14.7684664Z
2026-10-24T23:06:14.7684707Z 92 list: (input) =>
2026-10-24T23:06:14.7684748Z ~~~~
2026-10-24T23:06:14.7684751Z
2026-10-24T23:06:14.7685119Z 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-24T23:06:14.7685121Z
2026-10-24T23:06:14.7685166Z 102 set: (input) =>
2026-10-24T23:06:14.7685204Z ~~~
2026-10-24T23:06:14.7685208Z
2026-10-24T23:06:14.7685527Z 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-24T23:06:14.7685570Z
2026-10-24T23:06:14.7685615Z 54 get: (key) =>
2026-10-24T23:06:14.7685655Z ~~~
2026-10-24T23:06:14.7685657Z
2026-10-24T23:06:14.7685989Z 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-24T23:06:14.7685992Z
2026-10-24T23:06:14.7686038Z 64 put: (key, guide) =>
2026-10-24T23:06:14.7686080Z ~~~
2026-10-24T23:06:14.7686082Z
2026-10-24T23:06:14.7686406Z 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-24T23:06:14.7686410Z
2026-10-24T23:06:14.7686462Z 45 Effect.catch((error) =>
2026-10-24T23:06:14.7686504Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7686506Z
2026-10-24T23:06:14.7686809Z 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-24T23:06:14.7686812Z
2026-10-24T23:06:14.7686877Z 75 awaitAttached: () => Effect.succeed(false),
2026-10-24T23:06:14.7686921Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7686923Z
2026-10-24T23:06:14.7687223Z 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-24T23:06:14.7687225Z
2026-10-24T23:06:14.7687286Z 78 isAttached: () => Effect.succeed(false),
2026-10-24T23:06:14.7687327Z ~~~~~~~~~~
2026-10-24T23:06:14.7687329Z
2026-10-24T23:06:14.7687626Z 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-24T23:06:14.7687628Z
2026-10-24T23:06:14.7687731Z 79 endpoint: () => Effect.die("No desktop app is attached to this server."),
2026-10-24T23:06:14.7687772Z ~~~~~~~~
2026-10-24T23:06:14.7687774Z
2026-10-24T23:06:14.7688066Z 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-24T23:06:14.7688069Z
2026-10-24T23:06:14.7688118Z 80 pointer: () => Effect.void,
2026-10-24T23:06:14.7688160Z ~~~~~~~
2026-10-24T23:06:14.7688162Z
2026-10-24T23:06:14.7688481Z 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-24T23:06:14.7688485Z
2026-10-24T23:06:14.7688539Z 194 awaitAttached: (key, timeout) =>
2026-10-24T23:06:14.7688579Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7688584Z
2026-10-24T23:06:14.7688932Z 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-24T23:06:14.7688934Z
2026-10-24T23:06:14.7689032Z 216 isAttached: (key) => Effect.sync(() => attachedTabs.has(keyOf(key))),
2026-10-24T23:06:14.7689072Z ~~~~~~~~~~
2026-10-24T23:06:14.7689075Z
2026-10-24T23:06:14.7689383Z 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-24T23:06:14.7689425Z
2026-10-24T23:06:14.7689527Z 218 pointer: (key, pointer) => command({ type: "pointer", ...key, ...pointer }),
2026-10-24T23:06:14.7689566Z ~~~~~~~
2026-10-24T23:06:14.7689569Z
2026-10-24T23:06:14.7690012Z 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-24T23:06:14.7690015Z
2026-10-24T23:06:14.7690108Z 481 executable: () => Effect.runPromise(previewBrowser.executable),
2026-10-24T23:06:14.7690157Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7690159Z
2026-10-24T23:06:14.7690590Z 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-24T23:06:14.7690594Z
2026-10-24T23:06:14.7690643Z 688 ? Effect.runPromise(
2026-10-24T23:06:14.7690687Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7690689Z
2026-10-24T23:06:14.7691119Z 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-24T23:06:14.7691122Z
2026-10-24T23:06:14.7691199Z 697 const scope = await Effect.runPromise(Scope.make());
2026-10-24T23:06:14.7691250Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7691253Z
2026-10-24T23:06:14.7691677Z 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-24T23:06:14.7691682Z
2026-10-24T23:06:14.7691745Z 699 const endpoint = await Effect.runPromise(
2026-10-24T23:06:14.7691799Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7691801Z
2026-10-24T23:06:14.7692231Z 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-24T23:06:14.7692233Z
2026-10-24T23:06:14.7692316Z 709 await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-24T23:06:14.7692361Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7692365Z
2026-10-24T23:06:14.7692791Z 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-24T23:06:14.7692793Z
2026-10-24T23:06:14.7692876Z 713 await Effect.runPromise(Scope.close(scope, Exit.void));
2026-10-24T23:06:14.7692921Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7692924Z
2026-10-24T23:06:14.7693394Z 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-24T23:06:14.7693397Z
2026-10-24T23:06:14.7693447Z 1200 await Effect.runPromise(
2026-10-24T23:06:14.7693533Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7693535Z
2026-10-24T23:06:14.7693963Z 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-24T23:06:14.7693965Z
2026-10-24T23:06:14.7694016Z 1693 : await Effect.runPromise(
2026-10-24T23:06:14.7694066Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7694068Z
2026-10-24T23:06:14.7694528Z 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-24T23:06:14.7694530Z
2026-10-24T23:06:14.7694590Z 1757 ? await Effect.runPromise(
2026-10-24T23:06:14.7694639Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7694642Z
2026-10-24T23:06:14.7694899Z 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-24T23:06:14.7694901Z
2026-10-24T23:06:14.7695008Z 1760 ServerBrowserTabNotFoundError: () => Effect.succeed(undefined),
2026-10-24T23:06:14.7695075Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7695078Z
2026-10-24T23:06:14.7695502Z 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-24T23:06:14.7695510Z
2026-10-24T23:06:14.7695580Z 1766 const { sessions } = await Effect.runPromise(
2026-10-24T23:06:14.7695638Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7695640Z
2026-10-24T23:06:14.7696067Z 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-24T23:06:14.7696070Z
2026-10-24T23:06:14.7696123Z 1794 await Effect.runPromise(
2026-10-24T23:06:14.7696167Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7696169Z
2026-10-24T23:06:14.7696593Z 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-24T23:06:14.7696597Z
2026-10-24T23:06:14.7696652Z 1825 await Effect.runPromise(
2026-10-24T23:06:14.7696700Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7696702Z
2026-10-24T23:06:14.7697170Z 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-24T23:06:14.7697173Z
2026-10-24T23:06:14.7697300Z 1889 await Effect.runPromise(manager.close({ threadId: tab.threadId, tabId: tab.tabId }));
2026-10-24T23:06:14.7697344Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7697347Z
2026-10-24T23:06:14.7697771Z 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-24T23:06:14.7697816Z
2026-10-24T23:06:14.7697868Z 1957 await Effect.runPromise(
2026-10-24T23:06:14.7697915Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7697917Z
2026-10-24T23:06:14.7698490Z 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-24T23:06:14.7698493Z
2026-10-24T23:06:14.7698559Z 1969 const snapshot = await Effect.runPromise(
2026-10-24T23:06:14.7698615Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7698617Z
2026-10-24T23:06:14.7699045Z 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-24T23:06:14.7699049Z
2026-10-24T23:06:14.7699100Z 2215 await Effect.runPromise(
2026-10-24T23:06:14.7699145Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7699147Z
2026-10-24T23:06:14.7699411Z 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-24T23:06:14.7699414Z
2026-10-24T23:06:14.7699486Z 179 const receive = (chunk: Uint8Array | string) => {
2026-10-24T23:06:14.7699529Z ~~~~~~~
2026-10-24T23:06:14.7699531Z
2026-10-24T23:06:14.7699817Z 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-24T23:06:14.7699821Z
2026-10-24T23:06:14.7699914Z 209 Effect.catch(() => Effect.succeed(HttpServerResponse.empty())),
2026-10-24T23:06:14.7699954Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7699956Z
2026-10-24T23:06:14.7700268Z 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-24T23:06:14.7700270Z
2026-10-24T23:06:14.7700352Z 860 resolveAvailableEditors: () => cachedAvailableEditors,
2026-10-24T23:06:14.7700396Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7700398Z
2026-10-24T23:06:14.7700713Z 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-24T23:06:14.7700717Z
2026-10-24T23:06:14.7700775Z 861 resolveFileManagerRevealKind: () =>
2026-10-24T23:06:14.7700821Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7700823Z
2026-10-24T23:06:14.7701120Z 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-24T23:06:14.7701122Z
2026-10-24T23:06:14.7701173Z 865 launchBrowser: (target) =>
2026-10-24T23:06:14.7701267Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7701273Z
2026-10-24T23:06:14.7701563Z 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-24T23:06:14.7701566Z
2026-10-24T23:06:14.7701617Z 869 launchEditor: (input) =>
2026-10-24T23:06:14.7701712Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7701714Z
2026-10-24T23:06:14.7701951Z src/project/AgentSessionImporter.test.ts:212:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7701953Z
2026-10-24T23:06:14.7701999Z 212 Effect.succeed(
2026-10-24T23:06:14.7702048Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7702050Z
2026-10-24T23:06:14.7702280Z src/project/ManagedProjectFolders.ts:346:13 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7702282Z
2026-10-24T23:06:14.7702364Z 346 ? Effect.succeed(Option.some(folderFor(id.slice(-8))))
2026-10-24T23:06:14.7702408Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7702410Z
2026-10-24T23:06:14.7702633Z src/project/ManagedProjectFolders.ts:348:15 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7702637Z
2026-10-24T23:06:14.7702704Z 348 ? Effect.succeed(Option.some(fullFolder))
2026-10-24T23:06:14.7702749Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7702752Z
2026-10-24T23:06:14.7703053Z 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-24T23:06:14.7703055Z
2026-10-24T23:06:14.7703133Z 432 start: (input, hooks) => locked(start(input, hooks)),
2026-10-24T23:06:14.7703172Z ~~~~~
2026-10-24T23:06:14.7703174Z
2026-10-24T23:06:14.7703477Z 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-24T23:06:14.7703479Z
2026-10-24T23:06:14.7703549Z 433 cancel: (projectId) => locked(cancel(projectId)),
2026-10-24T23:06:14.7703590Z ~~~~~~
2026-10-24T23:06:14.7703592Z
2026-10-24T23:06:14.7703885Z 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-24T23:06:14.7703889Z
2026-10-24T23:06:14.7703954Z 434 retry: (projectId) => locked(retry(projectId)),
2026-10-24T23:06:14.7703995Z ~~~~~
2026-10-24T23:06:14.7703997Z
2026-10-24T23:06:14.7704296Z 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-24T23:06:14.7704298Z
2026-10-24T23:06:14.7704369Z 435 discard: (projectId) => locked(discard(projectId)),
2026-10-24T23:06:14.7704440Z ~~~~~~~
2026-10-24T23:06:14.7704442Z
2026-10-24T23:06:14.7704759Z 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-24T23:06:14.7704762Z
2026-10-24T23:06:14.7704858Z 21 get: (key) => Effect.sync(() => Option.fromUndefinedOr(bytes.get(key))),
2026-10-24T23:06:14.7704898Z ~~~
2026-10-24T23:06:14.7704900Z
2026-10-24T23:06:14.7705265Z 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-24T23:06:14.7705267Z
2026-10-24T23:06:14.7705313Z 22 set: (key, value) =>
2026-10-24T23:06:14.7705353Z ~~~
2026-10-24T23:06:14.7705355Z
2026-10-24T23:06:14.7705674Z 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-24T23:06:14.7705715Z
2026-10-24T23:06:14.7705764Z 26 remove: (key) =>
2026-10-24T23:06:14.7705805Z ~~~~~~
2026-10-24T23:06:14.7705807Z
2026-10-24T23:06:14.7706118Z 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-24T23:06:14.7706120Z
2026-10-24T23:06:14.7706217Z 30 create: () => Effect.die("Handoff does not create persistent secrets."),
2026-10-24T23:06:14.7706258Z ~~~~~~
2026-10-24T23:06:14.7706260Z
2026-10-24T23:06:14.7706596Z 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-24T23:06:14.7706600Z
2026-10-24T23:06:14.7706725Z 31 getOrCreateRandom: () => Effect.die("Handoff uses the destination environment identity."),
2026-10-24T23:06:14.7706769Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7706771Z
2026-10-24T23:06:14.7707169Z 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-24T23:06:14.7707172Z
2026-10-24T23:06:14.7707281Z 205 return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(
2026-10-24T23:06:14.7707333Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7707335Z
2026-10-24T23:06:14.7707595Z 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-24T23:06:14.7707599Z
2026-10-24T23:06:14.7707649Z 569 ? Effect.succeed(undefined)
2026-10-24T23:06:14.7707695Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7707698Z
2026-10-24T23:06:14.7708003Z 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-24T23:06:14.7708005Z
2026-10-24T23:06:14.7708057Z 284 current: (driverKind) =>
2026-10-24T23:06:14.7708100Z ~~~~~~~
2026-10-24T23:06:14.7708102Z
2026-10-24T23:06:14.7708445Z 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-24T23:06:14.7708448Z
2026-10-24T23:06:14.7708504Z 284 return yield* Effect.fail(
2026-10-24T23:06:14.7708549Z ~~~~~
2026-10-24T23:06:14.7708552Z
2026-10-24T23:06:14.7708860Z 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-24T23:06:14.7708862Z
2026-10-24T23:06:14.7708913Z 211 importProfile: (input) =>
2026-10-24T23:06:14.7708953Z ~~~~~~~~~~~~~
2026-10-24T23:06:14.7708955Z
2026-10-24T23:06:14.7709326Z 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-24T23:06:14.7709328Z
2026-10-24T23:06:14.7709388Z 39 credentials: (namespace, bindingId) =>
2026-10-24T23:06:14.7709430Z ~~~~~~~~~~~
2026-10-24T23:06:14.7709432Z
2026-10-24T23:06:14.7709788Z src/pullRequest/PullRequestService.ts:2984:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7709829Z
2026-10-24T23:06:14.7709880Z 2984 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7709926Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7709928Z
2026-10-24T23:06:14.7710279Z src/pullRequest/PullRequestService.ts:3387:7 - suggestion TS377116: `Effect.catchCauseIf` expresses selective recovery more directly than `Effect.catchCause` with a conditional `Effect.failCause` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7710282Z
2026-10-24T23:06:14.7710334Z 3387 Effect.catchCause((cause) =>
2026-10-24T23:06:14.7710376Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7710381Z
2026-10-24T23:06:14.7710685Z src/pullRequest/PullRequestService.ts:3607:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("PullRequestService.listStats")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7710689Z
2026-10-24T23:06:14.7710737Z 3607 listStats: (input) =>
2026-10-24T23:06:14.7710778Z ~~~~~~~~~
2026-10-24T23:06:14.7710780Z
2026-10-24T23:06:14.7711007Z src/relay/AgentAwarenessRelay.test.ts:271:9 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone)
2026-10-24T23:06:14.7711009Z
2026-10-24T23:06:14.7711054Z 271 Effect.succeed(
2026-10-24T23:06:14.7711105Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7711107Z
2026-10-24T23:06:14.7711407Z 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-24T23:06:14.7711410Z
2026-10-24T23:06:14.7711528Z 822 requestCatchUp: () => Queue.offer(catchUpRequests, undefined).pipe(Effect.asVoid),
2026-10-24T23:06:14.7711572Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7711574Z
2026-10-24T23:06:14.7711940Z 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-24T23:06:14.7711942Z
2026-10-24T23:06:14.7712004Z 641 requestDesktopUpdate: (requestId) =>
2026-10-24T23:06:14.7712047Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7712049Z
2026-10-24T23:06:14.7712407Z 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-24T23:06:14.7712409Z
2026-10-24T23:06:14.7712468Z 647 commitDesktopUpdate: (requestId) =>
2026-10-24T23:06:14.7712511Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7712515Z
2026-10-24T23:06:14.7712874Z 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-24T23:06:14.7712876Z
2026-10-24T23:06:14.7712931Z 649 cancelDesktopUpdate: (requestId) =>
2026-10-24T23:06:14.7712974Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7712976Z
2026-10-24T23:06:14.7713366Z 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-24T23:06:14.7713368Z
2026-10-24T23:06:14.7713430Z 698 setDiagnosticsDemand: () => Effect.void,
2026-10-24T23:06:14.7713474Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7713476Z
2026-10-24T23:06:14.7713818Z 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-24T23:06:14.7713951Z
2026-10-24T23:06:14.7714015Z 699 requestDesktopUpdate: () => Effect.void,
2026-10-24T23:06:14.7714059Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7714061Z
2026-10-24T23:06:14.7714442Z 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-24T23:06:14.7714444Z
2026-10-24T23:06:14.7714507Z 700 commitDesktopUpdate: () => Effect.void,
2026-10-24T23:06:14.7714553Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7714555Z
2026-10-24T23:06:14.7714899Z 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-24T23:06:14.7714903Z
2026-10-24T23:06:14.7714961Z 701 cancelDesktopUpdate: () => Effect.void,
2026-10-24T23:06:14.7715004Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7715006Z
2026-10-24T23:06:14.7715330Z 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-24T23:06:14.7715333Z
2026-10-24T23:06:14.7715381Z 1091 readHistory: () =>
2026-10-24T23:06:14.7715424Z ~~~~~~~~~~~
2026-10-24T23:06:14.7715426Z
2026-10-24T23:06:14.7715762Z 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-24T23:06:14.7715766Z
2026-10-24T23:06:14.7715827Z 1097 setExternalProcesses: () => Effect.void,
2026-10-24T23:06:14.7715874Z ~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7715876Z
2026-10-24T23:06:14.7716204Z 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-24T23:06:14.7716206Z
2026-10-24T23:06:14.7716265Z 1098 setHostPowerState: () => Effect.void,
2026-10-24T23:06:14.7716307Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7716311Z
2026-10-24T23:06:14.7716592Z 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-24T23:06:14.7716594Z
2026-10-24T23:06:14.7716661Z 1136 ? Effect.succeed(undefined)
2026-10-24T23:06:14.7716720Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7716722Z
2026-10-24T23:06:14.7716990Z 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-24T23:06:14.7716993Z
2026-10-24T23:06:14.7717046Z 166 const results = yield* Effect.all(
2026-10-24T23:06:14.7717094Z ~~~~~~~~~~
2026-10-24T23:06:14.7717097Z
2026-10-24T23:06:14.7717477Z src/server.ts:481: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-24T23:06:14.7717481Z
2026-10-24T23:06:14.7717534Z 481 return Effect.gen(function* () {
2026-10-24T23:06:14.7717576Z ~~~~~~
2026-10-24T23:06:14.7717621Z
2026-10-24T23:06:14.7717883Z 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-24T23:06:14.7717887Z
2026-10-24T23:06:14.7717952Z 209 prepareTrial: Effect.succeed(undefined),
2026-10-24T23:06:14.7718007Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7718009Z
2026-10-24T23:06:14.7718266Z 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-24T23:06:14.7718269Z
2026-10-24T23:06:14.7718323Z 413 const results = yield* Effect.all(
2026-10-24T23:06:14.7718369Z ~~~~~~~~~~
2026-10-24T23:06:14.7718371Z
2026-10-24T23:06:14.7718769Z 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-24T23:06:14.7718774Z
2026-10-24T23:06:14.7718825Z 204 listChangeRequests: (input) =>
2026-10-24T23:06:14.7718870Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7718872Z
2026-10-24T23:06:14.7719259Z 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-24T23:06:14.7719262Z
2026-10-24T23:06:14.7719312Z 209 getChangeRequest: (input) =>
2026-10-24T23:06:14.7719358Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7719360Z
2026-10-24T23:06:14.7719752Z 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-24T23:06:14.7719756Z
2026-10-24T23:06:14.7719809Z 214 createChangeRequest: (input) =>
2026-10-24T23:06:14.7719853Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7719855Z
2026-10-24T23:06:14.7720251Z 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-24T23:06:14.7720255Z
2026-10-24T23:06:14.7720313Z 219 getRepositoryCloneUrls: (input) =>
2026-10-24T23:06:14.7720357Z ~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7720359Z
2026-10-24T23:06:14.7720743Z 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-24T23:06:14.7720747Z
2026-10-24T23:06:14.7720844Z 224 createRepository: (input) => provider.createRepository(input),
2026-10-24T23:06:14.7720886Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7720888Z
2026-10-24T23:06:14.7721272Z 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-24T23:06:14.7721317Z
2026-10-24T23:06:14.7721371Z 225 getDefaultBranch: (input) =>
2026-10-24T23:06:14.7721413Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7721415Z
2026-10-24T23:06:14.7721810Z 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-24T23:06:14.7721851Z
2026-10-24T23:06:14.7721906Z 230 checkoutChangeRequest: (input) =>
2026-10-24T23:06:14.7721951Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7721953Z
2026-10-24T23:06:14.7722296Z 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-24T23:06:14.7722298Z
2026-10-24T23:06:14.7722423Z 345 resolve: (input) => resolveHandle(input).pipe(Effect.map((handle) => handle.provider)),
2026-10-24T23:06:14.7722465Z ~~~~~~~
2026-10-24T23:06:14.7722467Z
2026-10-24T23:06:14.7722816Z src/sourceControl/SourceControlRepositoryService.ts:406:7 - suggestion TS377116: `Effect.catchIf` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)
2026-10-24T23:06:14.7722822Z
2026-10-24T23:06:14.7722870Z 406 Effect.catch((sshError) =>
2026-10-24T23:06:14.7722912Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7722914Z
2026-10-24T23:06:14.7723277Z src/sourceControl/SourceControlRepositoryService.ts:553:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.lookupRepository")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7723279Z
2026-10-24T23:06:14.7723331Z 553 lookupRepository: (input) =>
2026-10-24T23:06:14.7723372Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7723375Z
2026-10-24T23:06:14.7723730Z src/sourceControl/SourceControlRepositoryService.ts:555:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.prepareClone")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7723732Z
2026-10-24T23:06:14.7723782Z 555 prepareClone: (input) =>
2026-10-24T23:06:14.7723825Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7723827Z
2026-10-24T23:06:14.7724197Z src/sourceControl/SourceControlRepositoryService.ts:562:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.cloneRepository")((input, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7724200Z
2026-10-24T23:06:14.7724255Z 562 cloneRepository: (input, options) =>
2026-10-24T23:06:14.7724299Z ~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7724301Z
2026-10-24T23:06:14.7724707Z src/sourceControl/SourceControlRepositoryService.ts:569:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.discardClone")((destinationPath) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7724710Z
2026-10-24T23:06:14.7724766Z 569 discardClone: (destinationPath) =>
2026-10-24T23:06:14.7724809Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7724811Z
2026-10-24T23:06:14.7725176Z src/sourceControl/SourceControlRepositoryService.ts:573:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("SourceControlRepositoryService.publishRepository")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7725178Z
2026-10-24T23:06:14.7725232Z 573 publishRepository: (input) =>
2026-10-24T23:06:14.7725276Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7725278Z
2026-10-24T23:06:14.7725626Z 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-24T23:06:14.7725628Z
2026-10-24T23:06:14.7725683Z 708 return yield* Effect.fail(
2026-10-24T23:06:14.7725724Z ~~~~~
2026-10-24T23:06:14.7725726Z
2026-10-24T23:06:14.7726007Z 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-24T23:06:14.7726054Z
2026-10-24T23:06:14.7726102Z 113 record: () => Effect.void,
2026-10-24T23:06:14.7726143Z ~~~~~~
2026-10-24T23:06:14.7726145Z
2026-10-24T23:06:14.7726430Z 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-24T23:06:14.7726435Z
2026-10-24T23:06:14.7726488Z 115 recordOwners: () => Effect.void,
2026-10-24T23:06:14.7726529Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7726531Z
2026-10-24T23:06:14.7726822Z 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-24T23:06:14.7726824Z
2026-10-24T23:06:14.7726963Z 329 yield* Effect.forever(Effect.sleep(FLUSH_INTERVAL_MS).pipe(Effect.flatMap(() => flushWhenDue)), {
2026-10-24T23:06:14.7727030Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7727032Z
2026-10-24T23:06:14.7727297Z 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-24T23:06:14.7727299Z
2026-10-24T23:06:14.7727357Z 90 .pipe(Effect.catch(() => Effect.void));
2026-10-24T23:06:14.7727402Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7727405Z
2026-10-24T23:06:14.7727718Z 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-24T23:06:14.7727721Z
2026-10-24T23:06:14.7727773Z 60 generateCommitMessage: (input) =>
2026-10-24T23:06:14.7727820Z ~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7727822Z
2026-10-24T23:06:14.7728123Z 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-24T23:06:14.7728125Z
2026-10-24T23:06:14.7728175Z 64 generatePrContent: (input) =>
2026-10-24T23:06:14.7728218Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7728220Z
2026-10-24T23:06:14.7728522Z 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-24T23:06:14.7728525Z
2026-10-24T23:06:14.7728578Z 68 generateBranchName: (input) =>
2026-10-24T23:06:14.7728621Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7728623Z
2026-10-24T23:06:14.7728929Z 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-24T23:06:14.7728933Z
2026-10-24T23:06:14.7733286Z 72 generateReviewGuide: (input) =>
2026-10-24T23:06:14.7733371Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7733375Z
2026-10-24T23:06:14.7733847Z 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-24T23:06:14.7733851Z
2026-10-24T23:06:14.7733906Z 76 generateThreadTitle: (input) =>
2026-10-24T23:06:14.7733950Z ~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7733952Z
2026-10-24T23:06:14.7734232Z 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-24T23:06:14.7734283Z
2026-10-24T23:06:14.7734332Z 172 readSummary: (input) =>
2026-10-24T23:06:14.7734372Z ~~~~~~~~~~~
2026-10-24T23:06:14.7734415Z
2026-10-24T23:06:14.7734654Z 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-24T23:06:14.7734657Z
2026-10-24T23:06:14.7734713Z 642 usageInstances(driver, settings)
2026-10-24T23:06:14.7734759Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7734803Z 643 .pipe(
2026-10-24T23:06:14.7734843Z ~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7734882Z ...
2026-10-24T23:06:14.7734949Z 664 Effect.provideContext(readerContext),
2026-10-24T23:06:14.7735005Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7735046Z 665 ),
2026-10-24T23:06:14.7735084Z ~~~~~~~~~~~
2026-10-24T23:06:14.7735087Z
2026-10-24T23:06:14.7735420Z src/vcs/GitVcsDriverCore.ts:4020:9 - suggestion TS377120: `Effect.filterOrElse` expresses this conditional validation more directly than `Effect.flatMap` with an identity `Effect.succeed` branch. effect(flatMapConditionalToFilterOrFail)
2026-10-24T23:06:14.7735424Z
2026-10-24T23:06:14.7735476Z 4020 Effect.flatMap((result) =>
2026-10-24T23:06:14.7735518Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7735521Z
2026-10-24T23:06:14.7735841Z src/vcs/GitVcsDriverCore.ts:4511: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-24T23:06:14.7735844Z
2026-10-24T23:06:14.7735903Z 4511 commit: (cwd, subject, body, options) =>
2026-10-24T23:06:14.7735942Z ~~~~~~
2026-10-24T23:06:14.7735944Z
2026-10-24T23:06:14.7736288Z src/vcs/GitVcsDriverCore.ts:4513: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-24T23:06:14.7736292Z
2026-10-24T23:06:14.7736372Z 4513 pushCurrentBranch: (cwd, fallbackBranch, options) =>
2026-10-24T23:06:14.7736414Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7736417Z
2026-10-24T23:06:14.7736724Z src/vcs/GitVcsDriverCore.ts:4515:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pullCurrentBranch")((cwd) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7736729Z
2026-10-24T23:06:14.7736848Z 4515 pullCurrentBranch: (cwd) => withListRefsInvalidation(cwd, pullCurrentBranch(cwd)),
2026-10-24T23:06:14.7736892Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7736894Z
2026-10-24T23:06:14.7737212Z src/vcs/GitVcsDriverCore.ts:4523:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createWorktree")((input, options) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7737216Z
2026-10-24T23:06:14.7737272Z 4523 createWorktree: (input, options) =>
2026-10-24T23:06:14.7737313Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7737315Z
2026-10-24T23:06:14.7737629Z src/vcs/GitVcsDriverCore.ts:4525:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRefIntoBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7737631Z
2026-10-24T23:06:14.7737820Z 4525 fetchRefIntoBranch: (input) => withListRefsInvalidation(input.cwd, fetchRefIntoBranch(input)),
2026-10-24T23:06:14.7737864Z ~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7737866Z
2026-10-24T23:06:14.7738301Z src/vcs/GitVcsDriverCore.ts:4528:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.refreshCheckedOutBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7738373Z
2026-10-24T23:06:14.7738429Z 4528 refreshCheckedOutBranch: (input) =>
2026-10-24T23:06:14.7738474Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7738476Z
2026-10-24T23:06:14.7738777Z src/vcs/GitVcsDriverCore.ts:4530:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.ensureRemote")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7738780Z
2026-10-24T23:06:14.7738895Z 4530 ensureRemote: (input) => withListRefsInvalidation(input.cwd, ensureRemote(input)),
2026-10-24T23:06:14.7738938Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7738940Z
2026-10-24T23:06:14.7739238Z src/vcs/GitVcsDriverCore.ts:4533:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemote")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7739241Z
2026-10-24T23:06:14.7739287Z 4533 fetchRemote: (input) =>
2026-10-24T23:06:14.7739328Z ~~~~~~~~~~~
2026-10-24T23:06:14.7739330Z
2026-10-24T23:06:14.7739649Z src/vcs/GitVcsDriverCore.ts:4548:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchWorktreeBaseCommit")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7739651Z
2026-10-24T23:06:14.7739707Z 4548 fetchWorktreeBaseCommit: (input) =>
2026-10-24T23:06:14.7739749Z ~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7739751Z
2026-10-24T23:06:14.7740061Z src/vcs/GitVcsDriverCore.ts:4550:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7740064Z
2026-10-24T23:06:14.7740198Z 4550 fetchRemoteBranch: (input) => withListRefsInvalidation(input.cwd, fetchRemoteBranch(input)),
2026-10-24T23:06:14.7740241Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7740244Z
2026-10-24T23:06:14.7740570Z src/vcs/GitVcsDriverCore.ts:4551:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.fetchRemoteTrackingBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7740572Z
2026-10-24T23:06:14.7740631Z 4551 fetchRemoteTrackingBranch: (input) =>
2026-10-24T23:06:14.7740677Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7740679Z
2026-10-24T23:06:14.7740989Z src/vcs/GitVcsDriverCore.ts:4553:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.setBranchUpstream")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7740991Z
2026-10-24T23:06:14.7741122Z 4553 setBranchUpstream: (input) => withListRefsInvalidation(input.cwd, setBranchUpstream(input)),
2026-10-24T23:06:14.7741166Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7741168Z
2026-10-24T23:06:14.7741471Z src/vcs/GitVcsDriverCore.ts:4554:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.removeWorktree")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7741475Z
2026-10-24T23:06:14.7741598Z 4554 removeWorktree: (input) => withListRefsInvalidation(input.cwd, removeWorktree(input)),
2026-10-24T23:06:14.7741639Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7741642Z
2026-10-24T23:06:14.7741996Z src/vcs/GitVcsDriverCore.ts:4555:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.pruneWorktrees")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7741999Z
2026-10-24T23:06:14.7742122Z 4555 pruneWorktrees: (input) => withListRefsInvalidation(input.cwd, pruneWorktrees(input)),
2026-10-24T23:06:14.7742162Z ~~~~~~~~~~~~~~
2026-10-24T23:06:14.7742164Z
2026-10-24T23:06:14.7742478Z src/vcs/GitVcsDriverCore.ts:4556:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.deleteLocalBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7742521Z
2026-10-24T23:06:14.7742653Z 4556 deleteLocalBranch: (input) => withListRefsInvalidation(input.cwd, deleteLocalBranch(input)),
2026-10-24T23:06:14.7742695Z ~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7742697Z
2026-10-24T23:06:14.7743002Z src/vcs/GitVcsDriverCore.ts:4557:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.renameBranch")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7743004Z
2026-10-24T23:06:14.7743119Z 4557 renameBranch: (input) => withListRefsInvalidation(input.cwd, renameBranch(input)),
2026-10-24T23:06:14.7743162Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7743164Z
2026-10-24T23:06:14.7743464Z src/vcs/GitVcsDriverCore.ts:4558:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.createRef")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7743468Z
2026-10-24T23:06:14.7743574Z 4558 createRef: (input) => withListRefsInvalidation(input.cwd, createRef(input)),
2026-10-24T23:06:14.7743615Z ~~~~~~~~~
2026-10-24T23:06:14.7743618Z
2026-10-24T23:06:14.7743916Z src/vcs/GitVcsDriverCore.ts:4559:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("GitVcsDriver.GitVcsDriver.switchRef")((input) => { ... })`. effect(effectFnOpportunity)
2026-10-24T23:06:14.7743918Z
2026-10-24T23:06:14.7744024Z 4559 switchRef: (input) => withListRefsInvalidation(input.cwd, switchRef(input)),
2026-10-24T23:06:14.7744064Z ~~~~~~~~~
2026-10-24T23:06:14.7744067Z
2026-10-24T23:06:14.7744458Z 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-24T23:06:14.7744463Z
2026-10-24T23:06:14.7744561Z 153 return serverSettings.getSettings.pipe(
2026-10-24T23:06:14.7744600Z ~~~~~~
2026-10-24T23:06:14.7744602Z
2026-10-24T23:06:14.7744896Z 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-24T23:06:14.7744898Z
2026-10-24T23:06:14.7744981Z 171 }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-24T23:06:14.7745026Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7745028Z
2026-10-24T23:06:14.7745298Z 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-24T23:06:14.7745301Z
2026-10-24T23:06:14.7745377Z 171 }).pipe(Effect.catch(() => Effect.succeed(undefined)));
2026-10-24T23:06:14.7745437Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7745439Z
2026-10-24T23:06:14.7745668Z 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-24T23:06:14.7745671Z
2026-10-24T23:06:14.7745768Z 401 resolveFileManagerRevealKind: () => Effect.succeed(undefined),
2026-10-24T23:06:14.7745869Z ~~~~~~~~~~~~~~~~~~~~~~~~~
2026-10-24T23:06:14.7745874Z
2026-10-24T23:06:14.7746143Z src/ws.ts:1385: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-24T23:06:14.7746146Z
2026-10-24T23:06:14.7746208Z 1385 return yield* Option.match(project, {
2026-10-24T23:06:14.7746297Z ~~~~~~~~~~~~
2026-10-24T23:06:14.7746300Z
2026-10-24T23:06:14.7746593Z src/ws.ts:2320: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-24T23:06:14.7746595Z
2026-10-24T23:06:14.7746653Z 2320 return yield* Effect.fail(
2026-10-24T23:06:14.7746698Z ~~~~~
2026-10-24T23:06:14.7746701Z
2026-10-24T23:06:14.7746989Z src/ws.ts:2329: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-24T23:06:14.7746992Z
2026-10-24T23:06:14.7747048Z 2329 return yield* Effect.fail(
2026-10-24T23:06:14.7747093Z ~~~~~
2026-10-24T23:06:14.7747095Z
2026-10-24T23:06:14.7747378Z src/ws.ts:2337: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-24T23:06:14.7747382Z
2026-10-24T23:06:14.7747435Z 2337 return yield* Effect.fail(
2026-10-24T23:06:14.7747477Z ~~~~~
2026-10-24T23:06:14.7747479Z
2026-10-24T23:06:14.7747481Z
2026-10-24T23:06:14.7747521Z ---
2026-10-24T23:06:14.7747785Z vp run: 0/33 cache hit (0%), 33/33 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-24T23:06:14.8153505Z Post job cleanup.
2026-10-24T23:06:14.8749842Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-24T23:06:14.8818338Z Post job cleanup.
2026-10-24T23:06:14.8831928Z ##[start-action display=Cache full pnpm store;id=__d51a7197-5ef3-4939-9d39-cfed03f965f8.__actions_cache]
2026-10-24T23:06:14.9129957Z Post job cleanup.
2026-10-24T23:06:14.9794084Z [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/_work/t3code/t3code --files-from manifest.txt --use-compress-program zstdmt
2026-10-24T23:06:18.8371682Z Failed to save: Unable to reserve cache with key pnpm-full-v1-Linux-X64-00603bf3edbe5c5c110144002d8c9a314f8b592aed66db22932aa917c61d6447, another job may be creating this cache.
2026-10-24T23:06:18.8832891Z ##[end-action id=__d51a7197-5ef3-4939-9d39-cfed03f965f8.__actions_cache;outcome=success;conclusion=success;duration_ms=4000]
2026-10-24T23:06:18.8834750Z ##[start-action display=Cache Vite+;id=__d51a7197-5ef3-4939-9d39-cfed03f965f8.vp_cache]
2026-10-24T23:06:18.8856617Z Post job cleanup.
2026-10-24T23:06:18.9447943Z 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-24T23:06:18.9476572Z ##[end-action id=__d51a7197-5ef3-4939-9d39-cfed03f965f8.vp_cache;outcome=success;conclusion=success;duration_ms=64]
2026-10-24T23:06:18.9516915Z Post job cleanup.
2026-10-24T23:06:18.9905536Z [command]/usr/local/bin/git version
2026-10-24T23:06:18.9930597Z git version 2.55.0
2026-10-24T23:06:18.9978609Z Temporarily overriding HOME='/home/runner/_work/_temp/4215d1f6-c4c2-4f8b-af4e-c8df2d69a20c' before making global git config changes
2026-10-24T23:06:18.9978962Z Adding repository directory to the temporary git global config as a safe directory
2026-10-24T23:06:18.9981384Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-24T23:06:19.0002740Z Removing SSH command configuration
2026-10-24T23:06:19.0005475Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-24T23:06:19.0025457Z [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-24T23:06:19.0137039Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-24T23:06:19.0158340Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-24T23:06:19.0193611Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-24T23:06:19.0212472Z ##[group]Run '/job_completed.sh'
2026-10-24T23:06:19.0220512Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-24T23:06:19.0220684Z env:
2026-10-24T23:06:19.0220806Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 170
2026-10-24T23:06:19.0220946Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 419
2026-10-24T23:06:19.0221083Z BLACKSMITH_CHECK_RUN_ID: 121013090972
2026-10-24T23:06:19.0221234Z BLACKSMITH_JOB_DISPLAY_NAME: Build and Typecheck
2026-10-24T23:06:19.0221392Z GITHUB_ACTIONS_CACHE_MODE: write
2026-10-24T23:06:19.0221516Z ##[endgroup]
2026-10-24T23:06:19.0294577Z Docker container cache not activated, skipping hash computation.
2026-10-24T23:06:19.0566818Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-24T23:06:19.0606235Z Cleaning up orphan processes