Update dependency @effect/tsgo to v0.38.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
from
August 27, 2026 02:56
8e1de25 to
b18c5e0
Compare
renovate
Bot
force-pushed
the
renovate/effect-tsgo-0.x
branch
from
August 30, 2026 11:57
b18c5e0 to
9566693
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.38.0Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
Effect-TS/tsgo (@effect/tsgo)
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.5Compare Source
Patch 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.4Compare Source
Patch Changes
7a616ec: Allow declaration emit withnoEmitOnErrorwhen all diagnostics are ignored Effect diagnostics.v0.36.3Compare Source
Patch 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.