Skip to content

Update dependency @effect/tsgo to v0.38.0 - #6

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/effect-tsgo-0.x
Open

Update dependency @effect/tsgo to v0.38.0#6
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/effect-tsgo-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 21, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@effect/tsgo (source) 0.36.10.38.0 age adoption passing confidence

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Release Notes

Effect-TS/tsgo (@​effect/tsgo)

v0.38.0

Compare Source

Minor Changes
  • 773b245: Add the allOfMapToForEach style diagnostic, which suggests replacing
    Effect.all(values.map(callback), options) with the equivalent
    Effect.forEach(values, callback, options) form.

  • fe7a29e: Add the catchAllDieToOrDie style diagnostic, which suggests replacing
    Effect.catch or Effect.catchAll with Effect.orDie when the catch-all
    handler forwards its typed failure unchanged to Effect.die.

  • 32c575a: Add the catchConditionalRefailToCatchIf diagnostic for conditional Effect.catch and Effect.catchCause handlers that re-fail their untouched input, suggesting Effect.catchIf, Effect.catchCauseIf, or Effect.catchTag as appropriate.

  • 41ec458: Detect the data-first form of effectMapVoid by driving detection off piping flows.

    effectMapVoid previously matched only the data-last / pipeable form of the pattern, so a data-first Effect.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:

    Effect.map(Effect.succeed(1), () => {})

    is now flagged and fixed to:

    Effect.asVoid(Effect.succeed(1))

    while the existing data-last form (pipe(self, Effect.map(() => {}))) continues to be fixed to a bare Effect.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 as value.pipe(Option.match(handlers)), even when the overloads reorder generic parameters or return a generic union.

  • 2ae20c4: Refactor the mapSomeToAsSome mapper detection onto the shared UnwrapIdentityForwarder helper. The diagnostic and quick fix now also recognize identity-forwarding function expressions:

    // now triggers, alongside Effect.map(Option.some) and Effect.map((v) => Option.some(v))
    numberEffect.pipe(
      Effect.map(function (value) {
        return Option.some(value)
      })
    )

    Annotated or optional mapper parameters and explicit type arguments on the inner Option.some call still do not trigger, since they can intentionally widen the resulting Option type.

  • 2a02aae: Add the mapSomeToAsSome diagnostic and quick fix, which replaces Effect.map(Option.some) and its exact eta-expanded form with Effect.asSome in pipeable and data-first flows.

Patch Changes
  • 68a603e: Bound CI Go caches with a resolved cache identity

    repoctl upstream resolve now emits a Go cache identity derived from upstream.json: the typescript component owns and saves its Go caches, oxlint-tsgolint restores 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-based oxlint component 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: Fix supportedEffect metadata for two rules whose declaration disagreed with their actual behavior:

    • genericEffectServices declared ["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.
    • schemaSyncInEffect declared ["v3"] but fully supports Effect v4 (suggesting decodeEffect/encodeEffect variants). It now declares ["v3", "v4"].

    metadata.json and the generated rule docs were regenerated accordingly. No diagnostic behavior changed.

  • 24cbb0d: Fix repoctl upstream update failing when a TypeScript commit is reachable from both supported provider repositories.

    Previously, resolveTypeScriptProvider and readRemoteTypeScriptGitlink in _tools/repoctl/src/upstream.ts errored out with TypeScript commit <sha> matched 2 supported repositories whenever a single revision existed in both microsoft/TypeScript (the canonical upstream) and the legacy microsoft/typescript-go fork. This blocked the daily "Update Upstreams" workflow for revisions shared between the two.

    Both functions now prefer microsoft/TypeScript when it matches and fall back to microsoft/typescript-go otherwise. A "no supported repository matched" error is still raised when neither matches.

  • 7a07115: Update the TypeScript next tag to typescript@next, which ships typescript-go commit 5739027c9a7df24e27123f453a50c011b37717b6, and update the TypeScript latest tag to typescript@latest.

v0.37.0

Compare Source

Minor Changes
  • afb17ac: Support both the legacy microsoft/typescript-go compiler and the migrated
    microsoft/TypeScript/tsc compiler behind the canonical TypeScript shim
    namespace.
Patch Changes
  • a3af171: Build the Nix package from the migrated TypeScript monorepo source and update the pinned compiler revision correctly.
  • eba879b: Suppress the unnecessaryPipeChain diagnostic when merging chained pipe calls would exceed the available overload arity.
  • 83b8e2a: Update the TypeScript next tag to typescript@next, which ships typescript-go commit e9e477458d7b975ed5e43117fb85f6bc87363a6a, and update the TypeScript latest tag to typescript@latest. Refresh the Oxlint configuration schema from the selected package.

v0.36.5

Compare Source

Patch Changes
  • 9ddab5d: Report unsupported target package versions with the current @effect/tsgo version 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 to typescript@next, which ships typescript-go commit 34ffe2a2531a226da0046d213899ae0b721229b0, and update the TypeScript latest tag to typescript@latest.

v0.36.4

Compare Source

Patch Changes
  • 7a616ec: Allow declaration emit with noEmitOnError when all diagnostics are ignored Effect diagnostics.

v0.36.3

Compare Source

Patch Changes
  • 73f7f28: Refresh patched binaries when an updated @effect/tsgo package provides a different replacement artifact.
  • 9190801: Update Effect v4 dependencies and embedded test fixtures to 4.0.0-beta.107.

v0.36.2

Compare 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. NodeCouldBeStrictEffect now 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, and promiseInEffectSuccess no 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 tsc CLI mode without includeSuggestionsInTsc, 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:error or a wildcard), since directives can raise its severity and must be tracked for unusedDirective reporting. 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 effectInFailure and promiseInEffectSuccess rules walk every node of a file and query its flow type just to test whether it is a strict Effect type. The new TypeParser.NodeCouldBeStrictEffect prefilter 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)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/effect-tsgo-0.x branch from 4033cf8 to 8e1de25 Compare August 23, 2026 22:34
@renovate renovate Bot changed the title Update dependency @effect/tsgo to v0.36.5 chore(deps): update dependency @effect/tsgo to v0.36.5 Aug 23, 2026
@renovate renovate Bot changed the title chore(deps): update dependency @effect/tsgo to v0.36.5 chore(deps): update dependency @effect/tsgo to v0.37.0 Aug 27, 2026
@renovate
renovate Bot force-pushed the renovate/effect-tsgo-0.x branch from 8e1de25 to b18c5e0 Compare August 27, 2026 02:56
@renovate
renovate Bot force-pushed the renovate/effect-tsgo-0.x branch from b18c5e0 to 9566693 Compare August 30, 2026 11:57
@renovate renovate Bot changed the title chore(deps): update dependency @effect/tsgo to v0.37.0 Update dependency @effect/tsgo to v0.38.0 Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants