unstale

npm / @effect/tsgo

@effect/tsgo

What changed in @effect/tsgo 0.0 to 0.55, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.

6 breaking5 deprecations32 new APIs and options8 performance15 behavior and defaults89 tooling83 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.1 on npm

@effect/tsgo 0.551 changes

Tooling 1

  • Adds an opt-in effectNative diagnostic suggesting effect/String counterparts for native String method invocations. It defaults to off; the effect-native preset enables it as a warning.

    0.55.0release notes

@effect/tsgo 0.541 changes

Tooling 1

  • Adds a diagnostic warning when an object literal is checked as a Schema class instance, since it lacks the class prototype needed for runtime behavior.

    0.54.0release notes

@effect/tsgo 0.5320 changes

New APIs and options 6

  • Adds the identifier pattern, which makes the expected deterministic key the class name alone.

    0.53.0release notes

  • Can now be set in per-file overrides; import tooling and diagnostics use the value resolved for the current file, with a scoped value replacing the base value.

    0.53.0release notes

  • Can now be set in per-file overrides; import tooling and diagnostics use the value resolved for the current file, with a scoped value replacing the base value.

    0.53.0release notes

  • Can now be set in per-file overrides; import tooling and diagnostics use the value resolved for the current file, with a scoped value replacing the base value.

    0.53.0release notes

  • Adds an off-by-default diagnostic for imports of individual modules from packages configured in barrelImportPackages; it has no quick fix.

    0.53.0release notes

  • Adds an off-by-default diagnostic for named imports from packages configured in namespaceImportPackages; it has no quick fix.

    0.53.0release notes

Performance 3

  • The rule allocates less memory by creating findings maps only when needed and reusing stored maps when a re-check adds nothing.

    0.53.2release notes

  • Namespace export checks re-check only unresolved results reached by that member, reducing repeated work for namespaces with many members.

    0.53.2release notes

  • Diagnostics require less work by checking node shapes before querying types, symbols, or signatures and computing types only when a step can still report; reported diagnostics are unchanged.

    0.53.0release notes

Behavior and default changes 3

  • Barrels are now discovered from package files rather than a built-in Effect path list; auto-import no longer rewrites modules without a forwarding barrel or imports already from a barrel.

    0.53.0release notes

  • The rule now computes keys for files without a package.json or whose nearest package.json has no name, using the available project directory to determine the sub-directory segment.

    0.53.0release notes

  • Can now be set in per-file overrides; import tooling and diagnostics use the value resolved for the current file, with a scoped value replacing the base value.

    0.53.0release notes

Tooling 3

  • Now reports Effect.runSyncExit and Effect.runPromiseExit calls inside an Effect and offers quick fixes for Effect v3 and v4.

    0.53.5release notes

  • With --format json, diagnostics that have related locations now include a relatedInformation array; --format pretty prints those locations beneath the diagnostic with code snippets.

    0.53.3release notes

  • Adds a diagnostic for inline name payload fields on Effect error classes that can hide the error type in logs.

    0.53.0release notes

Fixes and other changes 5

  • With --format pretty, the ~ markers are now aligned correctly on lines 10 and above.

    0.53.3release notes

  • The rule keeps only an innermost warning when it reports every channel of the outer warning with the same any or unknown; outer unknown warnings remain when inner expressions only have any.

    0.53.2release notes

  • The rule reports a problem once when a declaration and its name share a type, reporting the initializer rather than both the variable name and initializer.

    0.53.2release notes

  • The rule checks one node when pairs of nodes share a type, so problems are reported once rather than on both a declaration and its name.

    0.53.2release notes

  • Avoids TS2589 and follow-on type errors in generic calls while correctly reporting experimental API usage in inferred constraints, array and rest-parameter constraints, and nested generic-call arguments. The same fix applies to unstableApiUsage.

    0.53.1release notes

@effect/tsgo 0.5220 changes

Breaking changes 3

  • Removes the debug plugin option and the debug-only Flows group from the document outline.

    0.52.0release notes

  • Go collection views replace direct collection access; flow.Transformations[i] becomes flow.Transformations().At(i), with iteration and explicit owned copies supported.

    0.52.0release notes

  • Go parser results expose fields through getters, so result.A becomes result.A().

    0.52.0release notes

New APIs and options 4

  • Adds an opt-in effectNative diagnostic suggesting corresponding Effect Array APIs for native Array calls and references; it is off by default and enabled as a warning by the effect-native preset.

    0.52.0release notes

  • Adds an opt-in effectNative diagnostic suggesting Effect Record APIs for native Object calls and references; it is off by default and enabled as a warning by the effect-native preset.

    0.52.0release notes

  • Effect v4 schema class completions now include a readonly unique-symbol brand type argument; Effect v3 and Model.Class completions retain their existing type arguments.

    0.52.0release notes

  • Adds a correctness suggestion enabled by default for Effect v4 schema classes, errors, and opaque classes when the second brand type argument is omitted; explicit {} suppresses it.

    0.52.0release notes

Behavior and default changes 1

  • The latest TypeScript version now resolves to lib/tsc, while other versions resolve to their versioned artifacts path; tools running lib/tsc directly keep working.

    0.52.0release notes

Tooling 4

  • Adds a style suggestion and quick fix that replaces safe zero-duration Effect.sleep calls with Effect.yieldNow for Effect v3 or Effect.yieldNow() for Effect v4.

    0.52.0release notes

  • Adds a style suggestion and quick fix to use Effect.tap when callbacks run an effect and restore their unchanged parameter with terminal Effect.as or Effect.map.

    0.52.0release notes

  • Adds an opt-in diagnostic suggesting Schema.TaggedError for Effect v3 and v4 class declarations extending Data.TaggedError, including anonymous default exports.

    0.52.0release notes

  • Effect v4 completions for Schema.Opaque now include a branded completion.

    0.52.0release notes

Fixes and other changes 8

  • The refactor no longer crashes when gen is a named import or local alias; it rewrites to Effect.fn using an existing Effect import name and does not add a missing import.

    0.52.0release notes

  • Experimental or unstable API checks skip inference-blocked contextual queries inside inferred generator expressions, preventing false iterator and object-spread diagnostics but potentially omitting constraint-based property warnings there.

    0.52.0release notes

  • Effect.fn and async-to-Effect refactors now replace nested functions in place rather than overwriting their containing value, and catch-binding defaults no longer crash code actions.

    0.52.0release notes

  • Diagnostics now report experimental and unstable properties supplied in contextually typed object literals, including shorthand properties, even when the function and interface are stable.

    0.52.0release notes

  • Data.TaggedError and Schema.TaggedError completions now use configured keyPatterns so inserted tags match the key expected by deterministicKeys.

    0.52.0release notes

  • Effect diagnostics now run after TypeScript checks unused identifiers, preventing plugin symbol queries from suppressing TS6133.

    0.52.0release notes

  • Dispatch analysis recognizes both Predicate.isTagged call forms as tag comparisons, so existing catch-tag diagnostics and quick fixes handle them in Effect v3 and v4.

    0.52.0release notes

  • Avoids false delete diagnostics for valid index-signature properties, including parenthesized and optional targets, while invalid required-property and readonly deletes still report compiler errors.

    0.52.0release notes

@effect/tsgo 0.513 changes

Tooling 1

  • Diagnostics on stable exports that expose experimental types now include a child pointing to the type's declaration, including when it is in another file.

    0.51.0release notes

Fixes and other changes 2

  • Inherited bases whose public members are all optional and explicitly stability-tagged are ignored, including through augmentations and superclass factories; direct properties and parameters typed as those bases remain checked.

    0.51.0release notes

  • Properties and methods marked @internal are excluded from the public surface during leak checks.

    0.51.0release notes

@effect/tsgo 0.502 changes

New APIs and options 1

  • Adds a preset that enables apiStabilityLeak as a warning.

    0.50.0release notes

Tooling 1

  • Adds an opt-in diagnostic that reports public exports exposing APIs with less stable stability tags. It is off by default and can be configured directly.

    0.50.0release notes

@effect/tsgo 0.494 changes

Behavior and default changes 1

  • Plugin option and diagnostic severity resolution now accept rooted source and config file paths directly.

    0.49.0release notes

Tooling 1

  • TypeScript 7.0.2 remains supported through adapters for the legacy typescript-go provider.

    0.49.0release notes

Fixes and other changes 2

  • Effect options are preserved through upstream option cloning and comparison.

    0.49.0release notes

  • Include patterns now work for files in filesystem roots.

    0.49.0release notes

@effect/tsgo 0.485 changes

New APIs and options 2

  • Selectively allow experimental declaration modules or exported APIs, with per-file overrides and declaration-based diagnostic names.

    0.48.0release notes

  • Selectively allow unstable declaration modules or exported APIs, with per-file overrides and declaration-based diagnostic names.

    0.48.0release notes

Tooling 1

  • Packaged TypeScript compilers omit embedded standard libraries and ship matching lib.*.d.ts files so editor go-to-definition opens real library files; direct executable use keeps diagnostics and get-exe-path working.

    0.48.0release notes

Fixes and other changes 2

  • Allow-list entries using package/module#exportName now match overloaded dual exports with their own @stability tag; unlisted exports warn under that name.

    0.48.1release notes

  • Allow-list entries using package/module#exportName now match overloaded dual exports with their own @stability tag; unlisted exports warn under that name.

    0.48.1release notes

@effect/tsgo 0.477 changes

Behavior and default changes 1

  • Namespace auto-imports for nested Effect modules now resolve to public module paths such as effect/cli/Prompt.

    0.47.0release notes

Tooling 2

  • Adds a diagnostic that warns by default when APIs marked with @stability experimental are used.

    0.47.0release notes

  • Adds a diagnostic that warns by default when APIs marked with @stability unstable are used.

    0.47.0release notes

Fixes and other changes 4

  • Fixes a panic on the default of a dynamically imported export = or JSON module.

    0.47.2release notes

  • Fixes a panic on the default of a dynamically imported export = or JSON module.

    0.47.2release notes

  • The command can now run without the deprecated --force flag.

    0.47.1release notes

  • Discovers installed Oxlint musl bindings without rejecting them before component selection, so TypeScript-only commands work on Alpine Linux; unsupported replacements are reported during patch preparation, allowing --skip-missing and restoring original binaries with unpatch.

    0.47.0release notes

@effect/tsgo 0.4612 changes

New APIs and options 3

  • Adds a matching count of files whose tsconfig does not enable the language-service plugin to the JSON summary.

    0.46.1release notes

  • Unknown Effect rule names now produce an effect(unknownRuleName) diagnostic, including in overrides and inherited configurations; set unknownRuleName to off to disable it or error to raise its severity.

    0.46.0release notes

  • Adds a diagnostic preset that promotes every default-enabled diagnostic to an error, with the complete preset catalog exposed consistently through TypeScript setup and generated Oxlint presets.

    0.46.0release notes

Tooling 5

  • Reports files skipped because their tsconfig does not enable the language-service plugin, rather than only reporting that zero files were checked.

    0.46.1release notes

  • Adds a diagnostic and quick fix to replace direct _tag equality predicates in Effect.catchIf with Effect.catchTag.

    0.46.0release notes

  • Adds a v4-only diagnostic suggesting Effect.tapError for handlers that sequence an effect and then fail with the original, unmodified error; generator handlers and selective catches are excluded.

    0.46.0release notes

  • Existing diagnostics now recognize Effect APIs referenced through constant aliases, and quick fixes rebuild the replacement API from the source file's imported module name without modifying the shared alias.

    0.46.0release notes

  • Adds a diagnostic and quick fix to replace zero-parameter Effect.flatMap callbacks that return an existing constant Effect value with Effect.andThen.

    0.46.0release notes

Fixes and other changes 4

  • Preserves Effect plugin options in the Oxlint integration when tsconfig.json uses extends, whether options are inherited or declared locally.

    0.46.1release notes

  • Conversions preserve enclosing expressions, sibling declarations, comments, literal spelling, and formatting; avoid unsafe suggestions and correctly wrap non-call pipe arguments while retaining factory calls.

    0.46.1release notes

  • Deduplicates diagnostics when multiple union members display the same type name.

    0.46.1release notes

  • Restores compatibility with TypeScript 7.1.0-dev.20260924.1.

    0.46.0release notes

@effect/tsgo 0.451 changes

Tooling 1

  • Adds an opt-in diagnostic that recommends Effect-based Schema decoding and encoding over synchronous methods; enabled by the effect-native preset.

    0.45.0release notes

@effect/tsgo 0.445 changes

Deprecations 2

  • Adds a diagnostic warning about importing @effect/match in projects targeting Effect v4, where pattern matching is built into effect.

    0.44.0release notes

  • Adds a diagnostic warning about importing @effect/schema in projects targeting Effect v4, where Schema is built into effect.

    0.44.0release notes

Tooling 1

  • Adds a diagnostic and quick fixes suggesting Effect.timeoutOrElse or Effect.timeoutOption for matching timeout and TimeoutError-catching patterns, with safety conditions on the error channel and handler.

    0.44.0release notes

Fixes and other changes 2

  • Fixes the Effect v4 diagnostic message and rule description to recommend the Effect Crypto module instead of Random for cryptographic UUID generation.

    0.44.0release notes

  • Fixes the Effect v4 diagnostic message and rule description to recommend the Effect Crypto module instead of Random for cryptographic UUID generation.

    0.44.0release notes

@effect/tsgo 0.433 changes

Tooling 2

  • The rule now recommends Effect-native alternatives for console, timers, stream, and their listed submodules, including node: imports.

    0.43.0release notes

  • For Effect v4, the rule now diagnoses crypto and node:crypto imports and recommends the Crypto service; Effect v3 crypto imports remain allowed.

    0.43.0release notes

Fixes and other changes 1

  • The Effect v4 recommendation for child_process now points to effect/unstable/process.

    0.43.0release notes

@effect/tsgo 0.429 changes

Breaking changes 1

  • Parsing is synchronous and non-generator by default; callers can use flags to explicitly accept thunks, async functions, or generators.

    0.42.0release notes

Behavior and default changes 2

  • Keeps type arguments on parenthesized pipe arguments and normalizes verified curried pipeable applications, while leaving unrelated curried APIs unchanged.

    0.42.0release notes

  • An explicit promise-success annotation anywhere in the surrounding pipe now suppresses this diagnostic, not only when it appears in the last argument.

    0.42.0release notes

Tooling 6

  • Now detects data-last Effect.all forms expressed through piping flows; the existing quick fix remains limited to standalone Effect.all calls it can safely rewrite.

    0.42.0release notes

  • Adds a style diagnostic and quick fix for replacing manual tagged-error dispatch with Effect.catchTag or Effect.catchTags.

    0.42.0release notes

  • Adds a style diagnostic and quick fix for replacing Effect.matchEffect handlers that return Effect.fail and Effect.succeed with Effect.mapBoth.

    0.42.0release notes

  • Adds a style diagnostic and quick fix for replacing Effect.matchEffect or Effect.matchCauseEffect handlers that only return Effect.succeed with non-effectful counterparts.

    0.42.0release notes

  • Adds a style diagnostic and quick fix for replacing inline Layer.succeed and Layer.effect provision with direct service provision.

    0.42.0release notes

  • Adds a diagnostic that replaces Effect.runPromise applied to Effect.exit with the dedicated Effect.runPromiseExit runner.

    0.42.0release notes

@effect/tsgo 0.411 changes

Breaking changes 1

  • Type-only TypeParser operations no longer take an AST location parameter; they derive instantiated property types from the supplied checker type.

    0.41.0release notes

@effect/tsgo 0.404 changes

Tooling 3

  • Reclassifies this diagnostic as style.

    0.40.0release notes

  • Adds a style diagnostic suggesting Effect.timeoutOrElse when a first-completion race has exactly one Effect.sleep- or Effect.delay-based timer arm.

    0.40.0release notes

  • Reclassifies this diagnostic as correctness.

    0.40.0release notes

Fixes and other changes 1

  • Stops reporting this diagnostic when Schema.Number is refined with the built-in isFinite or isInt checks, including pipe-style refinements.

    0.40.0release notes

@effect/tsgo 0.396 changes

New APIs and options 1

  • Exposes piping-flow extraction through etsgoapi.TypeParser so external Go integrations can consume the analysis without importing internal packages.

    0.39.0release notes

Tooling 4

  • Adds a rule that replaces manual disposal finalizers passed to Effect.acquireRelease with Effect.acquireDisposable.

    0.39.0release notes

  • Adds a diagnostic and quick fix that replaces identity-succeed Effect.flatMap conditionals with Effect.filterOrFail or Effect.filterOrElse.

    0.39.0release notes

  • Adds a diagnostic and quick fix for Option-to-Effect conversions that can use Effect.fromOption, preserving custom failures in a lazy callback.

    0.39.0release notes

  • Adds a diagnostic and autofix that replaces Effect.succeed(Option.none()) and Effect.succeed(Option.some(value)), including equivalent pipe forms, with Effect.succeedNone and Effect.succeedSome(value).

    0.39.0release notes

Fixes and other changes 1

  • The Effect language-service plugin now supports SchemaStore's draft-07 nullable schema representation when injecting its schema.

    0.39.1release notes

@effect/tsgo 0.389 changes

Behavior and default changes 1

  • Data-first calls now normalize to the same piping-flow representation as pipeable calls, including when overloads reorder generic parameters or return a generic union.

    0.38.0release notes

Tooling 5

  • Adds a style diagnostic suggesting Effect.forEach(values, callback, options) instead of Effect.all(values.map(callback), options).

    0.38.0release notes

  • Adds a style diagnostic suggesting Effect.orDie when a catch-all handler forwards its typed failure unchanged to Effect.die.

    0.38.0release notes

  • Adds a diagnostic for conditional catch handlers that re-fail their untouched input, suggesting catchIf, catchCauseIf, or catchTag.

    0.38.0release notes

  • Adds a diagnostic and quick fix replacing Effect.map(Option.some) and its exact eta-expanded form with Effect.asSome in pipeable and data-first flows.

    0.38.0release notes

  • The diagnostic and quick fix now also recognize identity-forwarding function expressions; annotated or optional mapper parameters and explicit inner Option.some type arguments remain excluded.

    0.38.0release notes

Fixes and other changes 3

  • The diagnostic now detects and correctly fixes data-first Effect.map(self, () => {}) calls as well as the existing data-last form.

    0.38.0release notes

  • Corrects supportedEffect metadata to v3 only, so Effect v4 users no longer enable a rule that cannot run for them.

    0.38.0release notes

  • Corrects supportedEffect metadata to include v3 and v4, reflecting the rule's support for Effect v4.

    0.38.0release notes

@effect/tsgo 0.372 changes

Tooling 1

  • The canonical TypeScript shim namespace supports both the legacy microsoft/typescript-go compiler and the migrated microsoft/TypeScript/tsc compiler.

    0.37.0release notes

Fixes and other changes 1

  • The diagnostic is suppressed when merging chained pipe calls would exceed the available overload arity.

    0.37.0release notes

@effect/tsgo 0.369 changes

New APIs and options 1

  • Recommended and category-specific shared configurations are now available for Oxlint.

    0.36.0release notes

Performance 3

  • The walker-rule prefilter now uses cached signatures and return types for call expressions to skip expensive flow-analysis re-checks when a return type cannot be a strict Effect.

    0.36.2release notes

  • In tsc CLI mode without includeSuggestionsInTsc, rules below the minimum visible severity are skipped before execution unless a file directive references them.

    0.36.2release notes

  • The effectInFailure and promiseInEffectSuccess rules check declared types first and skip flow-type queries for references that cannot be strict Effect types.

    0.36.2release notes

Fixes and other changes 5

  • Type-only heritage nodes are excluded from execution flow graphs across supported TypeScript versions.

    0.36.5release notes

  • Reports unsupported target package versions together with the current @effect/tsgo version and supported alternatives.

    0.36.5release notes

  • Declaration emit is allowed when all diagnostics are ignored Effect diagnostics, even with noEmitOnError enabled.

    0.36.4release notes

  • Refreshes patched binaries when an updated package provides a different replacement artifact.

    0.36.3release notes

  • Setup updates preserve existing indentation and newline styles in JSON configuration files.

    0.36.1release notes

@effect/tsgo 0.353 changes

Fixes and other changes 3

  • Effect plugin options are persisted in TypeScript build information so incremental builds recheck semantic diagnostics when extended tsconfig plugin settings change.

    0.35.0release notes

  • Prevents the rule from panicking when a decoder input is produced by a preceding call or pipe transformation.

    0.35.0release notes

  • Avoids false positive TS2731 diagnostics for symbol-valued interpolations in tagged template literals traversed by Effect diagnostic rules.

    0.35.0release notes

@effect/tsgo 0.341 changes

Tooling 1

  • Adds a non-interactive setup workflow with project, integration, diagnostic, editor, preview, and apply options. It recommends running the package manager install command whenever it changes package.json.

    0.34.0release notes

@effect/tsgo 0.333 changes

Tooling 2

  • Adds a style suggestion recommending typed Schema decoder APIs when an input is assignable to the schema's encoded type.

    0.33.0release notes

  • Updates Schema class completions for the Error and TaggedError renames.

    0.33.0release notes

Fixes and other changes 1

  • Suppresses auto-imports from blocked Effect internal modules.

    0.33.0release notes

@effect/tsgo 0.323 changes

Tooling 2

  • Redundant Oxlint dependencies are no longer installed when Vite+ is present.

    0.32.1release notes

  • Oxlint's TypeScript declarations now include the effecttsgo plugin and its rule names.

    0.32.0release notes

Fixes and other changes 1

  • Skip messages now identify components that have already been patched.

    0.32.1release notes

@effect/tsgo 0.312 changes

Tooling 1

  • Adds a quick fix for floating Effects in yieldable Effect contexts.

    0.31.0release notes

Fixes and other changes 1

  • Converting hand-rolled reason dispatch to Effect.catchReason or Effect.catchReasons now preserves narrowed wrapper error references.

    0.31.0release notes

@effect/tsgo 0.301 changes

Tooling 1

  • When enabling the Oxlint integration, existing .oxlintrc.json files are configured to use the new Effect-aware Oxlint configuration schema.

    0.30.0release notes

@effect/tsgo 0.291 changes

Tooling 1

  • Setup now lets developers select TypeScript and Oxlint integrations, pins supported Oxlint dependencies, and creates integration-aware prepare scripts.

    0.29.0release notes

@effect/tsgo 0.281 changes

Tooling 1

  • The renamed etsoxlintrunner integration exposes Effect code actions as lazy Oxlint suggestions.

    0.28.0release notes

@effect/tsgo 0.246 changes

Tooling 2

  • Hovering the asterisk or trailing space in a yield* expression now returns enhanced Effect quickinfo.

    0.24.2release notes

  • Adds an off-by-default diagnostic and quick fix to replace Schema.Schema.Type<typeof X> with typeof X.Type.

    0.24.0release notes

Fixes and other changes 4

  • Packaged Unix binaries preserve executable permissions, allowing the diagnostics command to launch them after installation.

    0.24.3release notes

  • Avoids introducing TS2589 for assignments with recursive expected types and non-Effect values.

    0.24.3release notes

  • Ignores Effect v4 local Effect.provide(..., { local: true }) calls when reporting chained provides.

    0.24.3release notes

  • Avoids excessive type-depth diagnostics when matching data-first and pipeable overloads with complex return types.

    0.24.1release notes

@effect/tsgo 0.232 changes

Tooling 1

  • Adds a diagnostic and quick fix that replaces Effect.sync thunks returning stable constant values with Effect.succeed.

    0.23.0release notes

Fixes and other changes 1

  • Avoids excessive type-depth diagnostics when checking complex non-Effect types, such as the return type of Remeda's chunk function.

    0.23.0release notes

@effect/tsgo 0.221 changes

Tooling 1

  • Adds a diagnostic to prevent instance members in classes extending Schema.Opaque.

    0.22.0release notes

@effect/tsgo 0.211 changes

Tooling 1

  • Adds an off-by-default diagnostic to audit exported fixed-arity functions without corresponding pipeable overloads.

    0.21.0release notes

@effect/tsgo 0.204 changes

Tooling 2

  • Adds a command to report Effect diagnostics from a file or TypeScript project, with multiple output formats, severity filtering, progress reporting, strict warning handling, and inline language-service configuration.

    0.20.0release notes

  • Configures current TypeScript Go VS Code settings, including the workspace TypeScript SDK path and additional SDK locations.

    0.20.0release notes

Fixes and other changes 2

  • Compositions now start from Layer.empty when the first layer does not provide a requested output service.

    0.20.0release notes

  • Configures TypeScript to use the installed local copy of the generated schema during setup.

    0.20.0release notes

@effect/tsgo 0.191 changes

Tooling 1

  • Adds a diagnostic and quick fix that replaces Effect.flatMap callbacks which only wrap their result with Effect.succeed with Effect.map; supports pipe, pipeable, data-first, and data-last forms.

    0.19.0release notes

@effect/tsgo 0.183 changes

New APIs and options 1

  • Adds --typescript-package <name> to select the TypeScript package to patch.

    0.18.0release notes

Behavior and default changes 1

  • When resolving the native TypeScript package to patch, resolution automatically falls back from typescript to @typescript/native.

    0.18.0release notes

Fixes and other changes 1

  • The command can skip TypeScript package aliases that lack package metadata needed for native binary matching.

    0.18.1release notes

@effect/tsgo 0.167 changes

New APIs and options 2

  • Adds a public package with a narrow wrapper around the internal type parser for inspecting Effect, Layer, Stream, service, Context.Tag, Schema, union member, and YieldableError types.

    0.16.0release notes

  • Adds an ETS API helper to extract layer magic from caller-provided layer nodes.

    0.16.0release notes

Behavior and default changes 1

  • Layer graph extraction can start from multiple nodes without exploding expressions.

    0.16.0release notes

Tooling 1

  • Adds a diagnostic suggesting Effect.ignore or Effect.ignoreCause when Effect.catch or Effect.catchCause returns Effect.void on a void success channel.

    0.16.0release notes

Fixes and other changes 3

  • Type lookup now guards against import clauses without a default binding, preventing a nil-symbol panic.

    0.16.2release notes

  • Checker, rule, refactor, and LSP symbol and type resolution now guard against meta properties, preventing panics on import.defer calls.

    0.16.2release notes

  • The checker no longer suggests unnecessaryEffectGen when a single-return generator contains nested yield* expressions.

    0.16.1release notes

@effect/tsgo 0.155 changes

Breaking changes 1

  • The unused native API hook was removed from the patched TypeScript-Go API.

    0.15.0release notes

New APIs and options 1

  • The typescript package at version 7 or later is supported as a native backend alongside @typescript/native-preview; versions below 7 are not treated as native.

    0.15.0release notes

Behavior and default changes 1

  • These commands resolve the native TypeScript binary from either installed backend, trying @typescript/native-preview first and then typescript >= 7.

    0.15.0release notes

Tooling 1

  • Setup points this VS Code setting at node_modules/typescript for the typescript backend and at node_modules/@typescript/native-preview otherwise.

    0.15.0release notes

Fixes and other changes 1

  • Recognizes an existing typescript >= 7 install, avoids redundantly adding @typescript/native-preview, and writes the correct backend package to package.json.

    0.15.0release notes

@effect/tsgo 0.142 changes

Tooling 2

  • Platform packages now publish the tsc binary built from generated/stable alongside tsgo built from main.

    0.14.6release notes

  • Adds a suggestion diagnostic for Effect v4 that recommends Schema.Finite and Schema.FiniteFromString over number schemas that also accept NaN and infinities.

    0.14.0release notes

@effect/tsgo 0.133 changes

New APIs and options 1

  • Additional TypeScript-Go shims are exposed for module resolution.

    0.13.1release notes

Tooling 2

  • Additional TypeScript-Go shims are exposed for language service quick info documentation.

    0.13.1release notes

  • Adds a diagnostic suggesting you hoist repeated trailing Effect.orDie calls from every yielded effect to the generator result.

    0.13.0release notes

@effect/tsgo 0.121 changes

Tooling 1

  • Adds a diagnostic suggesting Effect.orElseSucceed in Effect v4 or Effect.catchAll in Effect v3 for Effect.catch(() => Effect.succeed(value)).

    0.12.0release notes

@effect/tsgo 0.113 changes

Deprecations 1

  • Adds a diagnostic discouraging constructing Effect v4 Schema classes with new and suggesting SchemaClass.make(...) instead.

    0.11.0release notes

Fixes and other changes 2

  • The diagnostic now allows generic zero-argument functions returning Effect values.

    0.11.3release notes

  • Fixes shim generation for mirrored struct fields that reference unexported named types.

    0.11.2release notes

@effect/tsgo 0.102 changes

Tooling 2

  • The diagnostic now also detects lazy Layer returns and mentions the concrete lazy type in its message.

    0.10.0release notes

  • Adds a diagnostic suggesting consecutive uninterrupted catchTag transformations be collapsed into catchTags when semantics remain equivalent.

    0.10.0release notes

@effect/tsgo 0.92 changes

Behavior and default changes 1

  • Turns preferSchemaOverJson off by default; the effect-native preset remains at warning, with improved diagnostic guidance for Effect v3 and v4 projects.

    0.9.0release notes

Tooling 1

  • Adds a diagnostic for exported zero-argument functions, exported interface members, and Context.Service members that lazily return Effect or Stream values.

    0.9.0release notes

@effect/tsgo 0.81 changes

Tooling 1

  • Adds a style diagnostic and quick fix that suggests replacing schema-style typeof annotations with an equivalent named type when available.

    0.8.0release notes

@effect/tsgo 0.73 changes

New APIs and options 1

  • Runs Effect diagnostics for a specific source file with explicit rule selection and Effect options.

    0.7.0release notes

Tooling 1

  • Adds a diagnostic for hoistable repeated Effect.mapError(...) usage in Effect.gen and generator-form Effect.fn.

    0.7.5release notes

Fixes and other changes 1

  • Avoids stray TypeScript diagnostics when detecting data-first and data-last Effect APIs during piping-flow analysis.

    0.7.2release notes

@effect/tsgo 0.64 changes

Tooling 2

  • Diagnostics for unsafe effect type assertions now also cover Stream and Layer assertions.

    0.6.1release notes

  • Adds a diagnostic and quick-fix to detect assertions that unsafely narrow Effect error or requirements channels.

    0.6.0release notes

Fixes and other changes 2

  • The TypeScript-Go submodule now includes upstream fixes for declaration emit.

    0.6.1release notes

  • The restored Effect v4 API is included in the updated metadata.

    0.6.1release notes

@effect/tsgo 0.53 changes

Fixes and other changes 3

  • Effect diagnostics are skipped for source files resolved from external libraries.

    0.5.2release notes

  • Plugin activation now works when inherited through multiple tsconfig extends hops, without duplicating the plugin stanza in intermediate configs.

    0.5.2release notes

  • Fixes a false-positive TS2683 and preserves contextual this typing in directly yielded expressions during data-first call analysis.

    0.5.2release notes

@effect/tsgo 0.42 changes

New APIs and options 1

  • The checker shim now exports the TypeScript-Go helper for reuse.

    0.4.0release notes

Fixes and other changes 1

  • Execution-flow graphing models yield* operands as yieldable links and preserves the generator result type through piped calls, including for generator-based Effect.fn calls.

    0.4.0release notes

@effect/tsgo 0.315 changes

Deprecations 2

  • Adds an Effect v4 diagnostic warning on crypto.randomUUID() usage and recommending the Effect Random module.

    0.3.0release notes

  • Adds an Effect v4 diagnostic warning on crypto.randomUUID() usage and recommending the Effect Random module.

    0.3.0release notes

New APIs and options 4

  • Ports the effectMapFlatten diagnostic from the reference language service.

    0.3.0release notes

  • Adds a diagnostic warning on manual new Promise construction in favor of Effect-native async patterns.

    0.3.0release notes

  • Adds a diagnostic warning on process.env reads and recommending Effect Config.

    0.3.0release notes

  • Adds a diagnostic warning on process.env reads and recommending Effect Config.

    0.3.0release notes

Tooling 9

  • Diagnostics now recognize Effect.promise constructor thunks.

    0.3.1release notes

  • Diagnostics now recognize Effect.sync constructor thunks.

    0.3.1release notes

  • Diagnostics now recognize Effect.try constructor thunks.

    0.3.1release notes

  • Diagnostics now recognize Effect.tryPromise constructor thunks.

    0.3.1release notes

  • Adds a diagnostic warning on async functions in favor of Effect-native async patterns.

    0.3.0release notes

  • Ports the effectDoNotation diagnostic from the reference language service.

    0.3.0release notes

  • Adds a diagnostic for Effect.sync thunks that return the global Promise<T> type.

    0.3.0release notes

  • Adds a diagnostic for nested bare yield* Effect.gen(...) calls inside existing Effect generator contexts.

    0.3.0release notes

  • Adds a diagnostic and quick fix for arrow functions whose block body only returns an expression.

    0.3.0release notes

@effect/tsgo 0.23 changes

New APIs and options 1

  • Effect plugin option handling now supports per-file overrides.

    0.2.0release notes

Behavior and default changes 1

  • Effect diagnostic text now uses a neutral, factual tone; severity remains controlled by configuration.

    0.2.0release notes

Fixes and other changes 1

  • The Effect v4 floatingEffect diagnostic now reports floating Stream expressions.

    0.2.0release notes

@effect/tsgo 0.14 changes

Tooling 2

  • When enabling the language service, the setup flow adds this dependency if missing and preserves whether an existing installation is in dependencies or devDependencies.

    0.1.1release notes

  • Adds Effect v4 support for the diagnostic and quick fix; nested Effect.run* calls inside generators now suggest and apply Effect.run*With fixes using extracted services.

    0.1.0release notes

Fixes and other changes 2

  • Checks only the primary Effect.fn callback body, avoiding false positives for helper callback parameters contextually typed by the Effect.fn result.

    0.1.1release notes

  • Contextual union types now suppress the diagnostic when any union member provides a callable contextual type, aligning nested Effect.fnUntraced callbacks with TypeScript's noImplicitAny behavior.

    0.1.0release notes

@effect/tsgo 0.021 changes

New APIs and options 2

  • Boolean flags for Effect diagnostics, refactors, quickinfo, and completions are now honored by the Go language-service hooks.

    0.0.20release notes

  • Adds back the includeSuggestionsInTsc setting.

    0.0.17release notes

Performance 2

  • Caching and performance allocation changes were made.

    0.0.9release notes

  • Caching was added inside Checker, potentially affecting checker performance.

    0.0.8release notes

Behavior and default changes 1

  • Graphs and locations now prefer the property name.

    0.0.15release notes

Tooling 4

  • Upstream TypeScript-Go changes add linked editing support.

    0.0.16release notes

  • Upstream TypeScript-Go changes include signature help trigger characters.

    0.0.16release notes

  • Adds document symbols, making symbols available for documents in supporting tools.

    0.0.12release notes

  • Completions were added.

    0.0.6release notes

Fixes and other changes 12

  • The tsgo CLI now respects includeSuggestionsInTsc: false during command-line runs, filtering suggestions as configured.

    0.0.19release notes

  • Only skip-file disables an entire file, so later rule-specific preview directives can re-enable diagnostics.

    0.0.18release notes

  • Upstream TypeScript-Go changes include auto-import fixes.

    0.0.16release notes

  • Upstream TypeScript-Go changes include formatting rule fixes.

    0.0.16release notes

  • Upstream TypeScript-Go changes include JSON syntax validation.

    0.0.16release notes

  • Handles an existing prepare script.

    0.0.15release notes

  • Fixes the range that triggers a refactor.

    0.0.14release notes

  • The missingEffectContext message includes more information.

    0.0.13release notes

  • Severity selection was ported.

    0.0.13release notes

  • Fixes an issue caused by nested expressions with type arguments in tsgo.

    0.0.5release notes

  • Aligns floatingEffect effect subtype behaviour.

    0.0.4release notes

  • Setup-generated tsconfig plugin entries are kept aligned with the Effect plugin name parsed by tsgo.

    0.0.1release notes