Update dependency @effect/tsgo to v0.44.0 - #6
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/effect-tsgo-0.x
branch
from
August 23, 2026 22:34
4033cf8 to
8e1de25
Compare
renovate
Bot
force-pushed
the
renovate/effect-tsgo-0.x
branch
2 times, most recently
from
August 30, 2026 11:57
b18c5e0 to
9566693
Compare
renovate
Bot
force-pushed
the
renovate/effect-tsgo-0.x
branch
from
September 5, 2026 16:05
9566693 to
ee2310b
Compare
renovate
Bot
force-pushed
the
renovate/effect-tsgo-0.x
branch
from
September 10, 2026 00:53
ee2310b to
e478d84
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.36.1→0.44.0Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
Effect-TS/tsgo (@effect/tsgo)
v0.44.0Compare Source
Minor Changes
a64e17d: AddobsoleteMatchImportdiagnostic (TS377127) to warn when importing@effect/matchin projects targeting Effect v4. In Effect v4, pattern matching is built directly intoeffect(import { Match } from "effect"orimport * as Match from "effect/Match").63331b6: AddobsoleteSchemaImportdiagnostic (TS377128) to warn when importing@effect/schemaor@effect/schema/*in projects targeting Effect v4. In Effect v4, Schema is built directly intoeffect(import { Schema } from "effect"orimport * as Schema from "effect/Schema").29733f1: Add thetimeoutCatchTagToTimeoutOrElsediagnostic and quick fixes for Effect v4. SuggestEffect.timeoutOrElseforEffect.timeoutfollowed byEffect.catchTag("TimeoutError", ...), andEffect.timeoutOptionfor the corresponding Some/None pattern. Only suggest a rewrite when the input error channel excludesTimeoutErrorand the handler does not use the caught error.Patch Changes
a05d76b: Reuse the normalized piping-flow shape and sequence matchers across existing diagnostics.d990b0a: FixcryptoRandomUUIDandcryptoRandomUUIDInEffectdiagnostic messages and rule descriptions in Effect v4 to recommend the EffectCryptomodule instead ofRandom. In Effect v4,Randomdoes not providerandomUUIDand uses non-cryptographicMath.random, whereas cryptographic UUID generation is provided byCrypto.Crypto(such asyield* crypto.randomUUIDv4).7993db9: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommit1f70213d4922b434345f639b441681e470c7cfc1, and update the TypeScript latest tag totypescript@latest.v0.43.0Compare Source
Minor Changes
956b8d6: ExtendnodeBuiltinImportto recommend Effect-native alternatives forconsole,timers,timers/promises,stream,stream/promises, andstream/web, including theirnode:forms.For Effect v4, also flag
cryptoandnode:cryptoimports and recommendCryptofromeffect. For example,import { randomUUID } from "node:crypto"is now diagnosed; use theCryptoservice'srandomUUIDv4effect instead. Effect v3 crypto imports remain allowed because that version has no corresponding Crypto service.Correct the Effect v4
child_processrecommendation to point toeffect/unstable/process. The rule remains disabled by default; configurenodeBuiltinImportwith error severity to prohibit covered imports.v0.42.0Compare Source
Minor Changes
7565750: Add thematchEffectToMapBothstyle diagnostic and quick fix for replacingEffect.matchEffecthandlers that returnEffect.failandEffect.succeedwithEffect.mapBoth.a09feae: Add thecatchAllTagDispatchToCatchTagstyle diagnostic and quick fix for replacing manual tagged-error dispatch withEffect.catchTagorEffect.catchTags.2d501a2: Add theprovideLayerSucceedToProvideServicediagnostic and quick fix for replacing inlineLayer.succeedandLayer.effectprovision with direct service provision.46c6e68: Add thematchEffectToMatchstyle diagnostic and quick fix for replacingEffect.matchEffectorEffect.matchCauseEffectwhose handlers only returnEffect.succeedwith their non-effectful counterparts.Make lazy-expression parsing synchronous and non-generator by default, with flags for callers that explicitly accept thunks, async functions, or generators.
59c5fff: Adopt the piping flow parser in more diagnostics.promiseInEffectSuccess: an explicit promise-success annotation (type arguments onEffect.succeed/as/map/zipWith) now suppresses the diagnostic from any position in the surrounding pipe, not only the last argument.base.pipe(Effect.as<Promise<number>>(promiseValue), Effect.as(promiseValue))no longer reports, matching the reversed order that was already accepted.allOfMapToForEach: now also detects the data-last form expressed through piping flows, e.g.pipe(values.map(effectful), Effect.all)andpipe(values.map(effectful), Effect.all, Effect.asVoid), which were previously invisible to the call-expression walk. These matches are diagnostic-only: the existing quick fix remains limited to the standaloneEffect.all(xs.map(f), options?)call it can safely rewrite.pipe(x, (Effect.as<...>(v))).Effect.catch(handler)(effect)haseffectas its subject,Effect.catchas its callee, andhandleras its transformation argument. The normalization is limited to calls whose signatures verify that they are the pipeable counterpart of a data-first overload of the same combinator, leaving unrelated curried APIs such asEffect.fn("name")(body)unchanged.db28a74: Add therunOfExitToRunExitdiagnostic, which replacesEffect.runPromiseapplied toEffect.exitwith the dedicatedEffect.runPromiseExitrunner.Patch Changes
348021d: Update TypeScript next to 7.1.0-dev.20260906.1 and adapt diagnostics snapshot cleanup to its new API while preserving compatibility with stable TypeScript.928506b: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommit1f70213d4922b434345f639b441681e470c7cfc1, and update the TypeScript latest tag totypescript@latest. Refresh the Oxlint configuration schema from the selected package.v0.41.0Compare Source
Minor Changes
d095234: Normalize piping-flow transformations around their callee, arguments, and explicit type arguments without exposing a representation-dependent transformation node. Add shared rewriter operations for replacing transformations and flow prefixes while preserving data-first, data-last,pipe(...), and.pipe(...)source forms.d3efa70: Remove the AST location parameter from type-onlyTypeParseroperations. Effect, Layer, Stream, Schema, service, Context.Tag, Scope, and related type predicates now derive instantiated property types directly from the supplied checker type.Patch Changes
1d0dfb8: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommitcf7b9361a33fa0c8e1afa3cf45fde29c9ab23ec0, and update the TypeScript latest tag totypescript@latest.v0.40.0Compare Source
Minor Changes
815273c: Add the Effect v4raceFirstWithSleepToTimeoutstyle diagnostic, which suggestsEffect.timeoutOrElsewhen a first-completion race has exactly oneEffect.sleep- orEffect.delay-based timer arm.Reclassify
acquireReleaseDisposableas style andunsafeEffectTypeAssertionas correctness.Patch Changes
c1ac8e5: Avoid reporting theschemaNumberdiagnostic whenSchema.Numberis refined with the built-inisFiniteorisIntchecks, including pipe-style refinements.0fba9d1: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommit43a90f4c105bc9db7cb7aa299beddafbabe1d23e, and update the TypeScript latest tag totypescript@latest.v0.39.1Compare Source
Patch Changes
c2e4353: Update the TypeScript next tag to7.1.0-dev.20260901.1, update Oxlint to1.81.0, and refresh the generated configuration schemas. Support SchemaStore's draft-07 nullable schema representation when injecting the Effect language-service plugin schema.v0.39.0Compare Source
Minor Changes
7e30dc9: Add theacquireReleaseDisposablerule to replace manual disposal finalizers passed toEffect.acquireReleasewithEffect.acquireDisposable.f134c31: Add theoptionMatchToFromOptiondiagnostic and quick fix for Option-to-Effect conversions that can useEffect.fromOption.The rule recognizes supported
Option.matchcall styles andOption.isSome/Option.isNoneconditional expressions whose branches only wrap the value withEffect.succeedor produceEffect.fail. It suggests the one-argumentEffect.fromOptionform for the defaultCause.NoSuchElementError, and preserves custom failures in a lazy callback.90c884e: Expose piping-flow extraction through theetsgoapiGo API.The type parser already understands "piping flows" — a subject expression followed by an ordered list of transformations, unifying the
pipe(...), pipeable.pipe(...), data-first, data-last andEffect.fnforms — but that analysis was only reachable from internal packages.etsgoapi.TypeParsernow surfaces it so external Go integrations can consume it without importinginternal/....Adds the public
PipingFlow,PipingFlowSubject,PipingFlowTransformationandTransformationKindtypes alongside the new(*TypeParser).PipingFlowsmethod.804c2a9: Add theflatMapConditionalToFilterOrFaildiagnostic and quick fix, which replaces identity-succeedEffect.flatMapconditionals withEffect.filterOrFailorEffect.filterOrElse.4e14641: Add thepreferSucceedSomeOrNonediagnostic and autofix for replacingEffect.succeed(Option.none())andEffect.succeed(Option.some(value)), including equivalent pipe forms, withEffect.succeedNoneandEffect.succeedSome(value).Patch Changes
fcc641e: Keep the Nix TypeScript source pin synchronized with the TypeScript next metadata so Nix builds compile generated shims against the matching compiler revision.36f2524: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommit9a8581c393a38961489cc8409ae4dfbe97fc25ec, and update the TypeScript latest tag totypescript@latest.v0.38.0Compare Source
Minor Changes
773b245: Add theallOfMapToForEachstyle diagnostic, which suggests replacingEffect.all(values.map(callback), options)with the equivalentEffect.forEach(values, callback, options)form.fe7a29e: Add thecatchAllDieToOrDiestyle diagnostic, which suggests replacingEffect.catchorEffect.catchAllwithEffect.orDiewhen the catch-allhandler forwards its typed failure unchanged to
Effect.die.32c575a: Add thecatchConditionalRefailToCatchIfdiagnostic for conditionalEffect.catchandEffect.catchCausehandlers that re-fail their untouched input, suggestingEffect.catchIf,Effect.catchCauseIf, orEffect.catchTagas appropriate.41ec458: Detect the data-first form ofeffectMapVoidby driving detection off piping flows.effectMapVoidpreviously matched only the data-last / pipeable form of the pattern, so a data-firstEffect.map(self, () => {})was missed. Detection now runs over the piping-flow transformations, which normalize the subject away, so both forms are reported uniformly and the quick fix rewrites each one correctly.For example, the data-first call:
is now flagged and fixed to:
while the existing data-last form (
pipe(self, Effect.map(() => {}))) continues to be fixed to a bareEffect.asVoid.1ab4380: Improve dual function detection by matching alpha-equivalent data-first and pipeable overload declarations without instantiating their generic signatures.For example, data-first calls such as
Option.match(value, handlers)now normalize to the same piping-flow representation asvalue.pipe(Option.match(handlers)), even when the overloads reorder generic parameters or return a generic union.2ae20c4: Refactor themapSomeToAsSomemapper detection onto the sharedUnwrapIdentityForwarderhelper. The diagnostic and quick fix now also recognize identity-forwarding function expressions:Annotated or optional mapper parameters and explicit type arguments on the inner
Option.somecall still do not trigger, since they can intentionally widen the resultingOptiontype.2a02aae: Add themapSomeToAsSomediagnostic and quick fix, which replacesEffect.map(Option.some)and its exact eta-expanded form withEffect.asSomein pipeable and data-first flows.Patch Changes
68a603e: Bound CI Go caches with a resolved cache identityrepoctl upstream resolvenow emits a Go cache identity derived fromupstream.json: thetypescriptcomponent owns and saves its Go caches,oxlint-tsgolintrestores the compiler objects already cached by the typescript jobs under its TypeScript dependency version (Go's build cache is content-addressed, so the shared compiler packages hit directly), and the Rust-basedoxlintcomponent skips Go caching entirely instead of saving a duplicate GOCACHE snapshot.The go-build cache key no longer includes the commit SHA, so a multi-GB cache entry is written once per dependency state instead of on every push to main, and non-materialized setups are restore-only. Previously each push saved ~15GB of duplicate GOCACHE snapshots, evicting every other cache in the repository (GitHub caps repository caches at 10GB) and forcing all validation jobs to run cold.
The generated shim cache key now also hashes
_patches/typescript/**, so patch changes for the migrated TypeScript compiler repository invalidate cached shims correctly.e30bbdb: FixsupportedEffectmetadata for two rules whose declaration disagreed with their actual behavior:genericEffectServicesdeclared["v3", "v4"]but is gated to run only on Effect v3 projects. It now declares["v3"], so v4 users no longer enable a rule that can never fire.schemaSyncInEffectdeclared["v3"]but fully supports Effect v4 (suggestingdecodeEffect/encodeEffectvariants). It now declares["v3", "v4"].metadata.jsonand the generated rule docs were regenerated accordingly. No diagnostic behavior changed.24cbb0d: Fixrepoctl upstream updatefailing when a TypeScript commit is reachable from both supported provider repositories.Previously,
resolveTypeScriptProviderandreadRemoteTypeScriptGitlinkin_tools/repoctl/src/upstream.tserrored out withTypeScript commit <sha> matched 2 supported repositorieswhenever a single revision existed in bothmicrosoft/TypeScript(the canonical upstream) and the legacymicrosoft/typescript-gofork. This blocked the daily "Update Upstreams" workflow for revisions shared between the two.Both functions now prefer
microsoft/TypeScriptwhen it matches and fall back tomicrosoft/typescript-gootherwise. A "no supported repository matched" error is still raised when neither matches.7a07115: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommit5739027c9a7df24e27123f453a50c011b37717b6, and update the TypeScript latest tag totypescript@latest.v0.37.0Compare Source
Minor Changes
afb17ac: Support both the legacymicrosoft/typescript-gocompiler and the migratedmicrosoft/TypeScript/tsccompiler behind the canonical TypeScript shimnamespace.
Patch Changes
a3af171: Build the Nix package from the migrated TypeScript monorepo source and update the pinned compiler revision correctly.eba879b: Suppress theunnecessaryPipeChaindiagnostic when merging chained pipe calls would exceed the available overload arity.83b8e2a: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommite9e477458d7b975ed5e43117fb85f6bc87363a6a, and update the TypeScript latest tag totypescript@latest. Refresh the Oxlint configuration schema from the selected package.v0.36.5Patch Changes
9ddab5d: Report unsupported target package versions with the current@effect/tsgoversion and the supported alternatives.922903b: Document the target package versions supported by each published release.ca311a5: Exclude type-only heritage nodes from execution flow graphs across supported TypeScript versions.7c54018: Update the TypeScript next tag totypescript@next, which shipstypescript-gocommit34ffe2a2531a226da0046d213899ae0b721229b0, and update the TypeScript latest tag totypescript@latest.v0.36.4Patch Changes
7a616ec: Allow declaration emit withnoEmitOnErrorwhen all diagnostics are ignored Effect diagnostics.v0.36.3Patch Changes
73f7f28: Refresh patched binaries when an updated@effect/tsgopackage provides a different replacement artifact.9190801: Update Effect v4 dependencies and embedded test fixtures to4.0.0-beta.107.v0.36.2Compare Source
Patch Changes
8362acc: Extend the walker-rule prefilter to call expressions.A call expression's type is its resolved signature's return type, and both the signature and that return type are already cached from the main check phase.
NodeCouldBeStrictEffectnow consults them for call nodes and skips the expensive flow-analysis re-check when the declared return type conclusively cannot be a strict Effect. Signature-less calls, optional chains, and every inconclusive return type stay conservative, andpromiseInEffectSuccessno longer computes a location type for calls only to discard it. Emitted diagnostics are unchanged; on a large Effect monorepo build this removes a further ~4.6% of wall time on top of the reference-node prefilter, bringing the total Effect diagnostics overhead versus a pristine tsgo build of the same commit down to ~17%.9020153: Skip diagnostic rules below the minimum visible severity before executing them.In
tscCLI mode withoutincludeSuggestionsInTsc, suggestion- and message-severity diagnostics are dropped from the output after rules run. The rule runner now receives the minimum severity the caller can surface and skips such rules up front, avoiding their type-checker queries entirely. A rule below the threshold still runs when any directive in the file references it (for example// @effect-diagnostics ruleName:erroror a wildcard), since directives can raise its severity and must be tracked forunusedDirectivereporting. Emitted diagnostics are unchanged; on a large Effect monorepo build this removes roughly 1–2s of check time.257af25: Skip flow-analysis type queries for references that conclusively cannot be an Effect.The
effectInFailureandpromiseInEffectSuccessrules walk every node of a file and query its flow type just to test whether it is a strict Effect type. The newTypeParser.NodeCouldBeStrictEffectprefilter inspects the referenced symbol's declared type first — flow narrowing can only refine the declared type, so a declared type that conclusively contains no possibly-Effect constituent (primitives, plain objects with a different type name, unions thereof) can never produce a strict Effect flow type, and the expensive query is skipped. The predicate is conservative:any/unknown, type parameters, conditionals, symbol-less types, and deep unions always fall through to the full query. Emitted diagnostics are unchanged; on a large Effect monorepo build this removes ~10% of build wall time (~2.7s of ~26.8s).Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.