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@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.
@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.
@effect/tsgo 0.5320 changes
New APIs and options 6
Adds the
identifierpattern, which makes the expected deterministic key the class name alone.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.
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.
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.
Adds an off-by-default diagnostic for imports of individual modules from packages configured in
barrelImportPackages; it has no quick fix.Adds an off-by-default diagnostic for named imports from packages configured in
namespaceImportPackages; it has no quick fix.
Performance 3
The rule allocates less memory by creating findings maps only when needed and reusing stored maps when a re-check adds nothing.
Namespace export checks re-check only unresolved results reached by that member, reducing repeated work for namespaces with many members.
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.
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.
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.
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.
Tooling 3
Now reports Effect.runSyncExit and Effect.runPromiseExit calls inside an Effect and offers quick fixes for Effect v3 and v4.
With --format json, diagnostics that have related locations now include a relatedInformation array; --format pretty prints those locations beneath the diagnostic with code snippets.
Adds a diagnostic for inline
namepayload fields on Effect error classes that can hide the error type in logs.
Fixes and other changes 5
With --format pretty, the ~ markers are now aligned correctly on lines 10 and above.
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.
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.
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.
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.
@effect/tsgo 0.5220 changes
Breaking changes 3
Removes the debug plugin option and the debug-only Flows group from the document outline.
Go collection views replace direct collection access; flow.Transformations[i] becomes flow.Transformations().At(i), with iteration and explicit owned copies supported.
Go parser results expose fields through getters, so result.A becomes result.A().
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.
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.
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.
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.
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.
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.
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.
Adds an opt-in diagnostic suggesting Schema.TaggedError for Effect v3 and v4 class declarations extending Data.TaggedError, including anonymous default exports.
Effect v4 completions for Schema.Opaque now include a branded completion.
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.
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.
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.
Diagnostics now report experimental and unstable properties supplied in contextually typed object literals, including shorthand properties, even when the function and interface are stable.
Data.TaggedError and Schema.TaggedError completions now use configured keyPatterns so inserted tags match the key expected by deterministicKeys.
Effect diagnostics now run after TypeScript checks unused identifiers, preventing plugin symbol queries from suppressing TS6133.
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.
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.
@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.
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.
Properties and methods marked
@internalare excluded from the public surface during leak checks.
@effect/tsgo 0.502 changes
New APIs and options 1
Adds a preset that enables apiStabilityLeak as a warning.
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.
@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.
Tooling 1
TypeScript 7.0.2 remains supported through adapters for the legacy typescript-go provider.
Fixes and other changes 2
Effect options are preserved through upstream option cloning and comparison.
Include patterns now work for files in filesystem roots.
@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.
Selectively allow unstable declaration modules or exported APIs, with per-file overrides and declaration-based diagnostic names.
Tooling 1
Packaged TypeScript compilers omit embedded standard libraries and ship matching
lib.*.d.tsfiles so editor go-to-definition opens real library files; direct executable use keepsdiagnosticsandget-exe-pathworking.
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.
Allow-list entries using package/module#exportName now match overloaded dual exports with their own @stability tag; unlisted exports warn under that name.
@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.
Tooling 2
Adds a diagnostic that warns by default when APIs marked with @stability experimental are used.
Adds a diagnostic that warns by default when APIs marked with @stability unstable are used.
Fixes and other changes 4
Fixes a panic on the default of a dynamically imported export = or JSON module.
Fixes a panic on the default of a dynamically imported export = or JSON module.
The command can now run without the deprecated --force flag.
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.
@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.
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.
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.
Tooling 5
Reports files skipped because their tsconfig does not enable the language-service plugin, rather than only reporting that zero files were checked.
Adds a diagnostic and quick fix to replace direct _tag equality predicates in Effect.catchIf with Effect.catchTag.
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.
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.
Adds a diagnostic and quick fix to replace zero-parameter Effect.flatMap callbacks that return an existing constant Effect value with Effect.andThen.
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.
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.
Deduplicates diagnostics when multiple union members display the same type name.
Restores compatibility with TypeScript 7.1.0-dev.20260924.1.
@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.
@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.
Adds a diagnostic warning about importing @effect/schema in projects targeting Effect v4, where Schema is built into effect.
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.
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.
Fixes the Effect v4 diagnostic message and rule description to recommend the Effect Crypto module instead of Random for cryptographic UUID generation.
@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.
For Effect v4, the rule now diagnoses crypto and node:crypto imports and recommends the Crypto service; Effect v3 crypto imports remain allowed.
Fixes and other changes 1
The Effect v4 recommendation for child_process now points to effect/unstable/process.
@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.
Behavior and default changes 2
Keeps type arguments on parenthesized pipe arguments and normalizes verified curried pipeable applications, while leaving unrelated curried APIs unchanged.
An explicit promise-success annotation anywhere in the surrounding pipe now suppresses this diagnostic, not only when it appears in the last argument.
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.
Adds a style diagnostic and quick fix for replacing manual tagged-error dispatch with Effect.catchTag or Effect.catchTags.
Adds a style diagnostic and quick fix for replacing Effect.matchEffect handlers that return Effect.fail and Effect.succeed with Effect.mapBoth.
Adds a style diagnostic and quick fix for replacing Effect.matchEffect or Effect.matchCauseEffect handlers that only return Effect.succeed with non-effectful counterparts.
Adds a style diagnostic and quick fix for replacing inline Layer.succeed and Layer.effect provision with direct service provision.
Adds a diagnostic that replaces Effect.runPromise applied to Effect.exit with the dedicated Effect.runPromiseExit runner.
@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.
@effect/tsgo 0.404 changes
Tooling 3
Reclassifies this diagnostic as style.
Adds a style diagnostic suggesting Effect.timeoutOrElse when a first-completion race has exactly one Effect.sleep- or Effect.delay-based timer arm.
Reclassifies this diagnostic as correctness.
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.
@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.
Tooling 4
Adds a rule that replaces manual disposal finalizers passed to Effect.acquireRelease with Effect.acquireDisposable.
Adds a diagnostic and quick fix that replaces identity-succeed Effect.flatMap conditionals with Effect.filterOrFail or Effect.filterOrElse.
Adds a diagnostic and quick fix for Option-to-Effect conversions that can use Effect.fromOption, preserving custom failures in a lazy callback.
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).
Fixes and other changes 1
The Effect language-service plugin now supports SchemaStore's draft-07 nullable schema representation when injecting its schema.
@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.
Tooling 5
Adds a style diagnostic suggesting Effect.forEach(values, callback, options) instead of Effect.all(values.map(callback), options).
Adds a style diagnostic suggesting Effect.orDie when a catch-all handler forwards its typed failure unchanged to Effect.die.
Adds a diagnostic for conditional catch handlers that re-fail their untouched input, suggesting catchIf, catchCauseIf, or catchTag.
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.
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.
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.
Corrects supportedEffect metadata to v3 only, so Effect v4 users no longer enable a rule that cannot run for them.
Corrects supportedEffect metadata to include v3 and v4, reflecting the rule's support for Effect v4.
@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.
Fixes and other changes 1
The diagnostic is suppressed when merging chained pipe calls would exceed the available overload arity.
@effect/tsgo 0.369 changes
New APIs and options 1
Recommended and category-specific shared configurations are now available for Oxlint.
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.
In tsc CLI mode without includeSuggestionsInTsc, rules below the minimum visible severity are skipped before execution unless a file directive references them.
The effectInFailure and promiseInEffectSuccess rules check declared types first and skip flow-type queries for references that cannot be strict Effect types.
Fixes and other changes 5
Type-only heritage nodes are excluded from execution flow graphs across supported TypeScript versions.
Reports unsupported target package versions together with the current @effect/tsgo version and supported alternatives.
Declaration emit is allowed when all diagnostics are ignored Effect diagnostics, even with noEmitOnError enabled.
Refreshes patched binaries when an updated package provides a different replacement artifact.
Setup updates preserve existing indentation and newline styles in JSON configuration files.
@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.
Prevents the rule from panicking when a decoder input is produced by a preceding call or pipe transformation.
Avoids false positive TS2731 diagnostics for symbol-valued interpolations in tagged template literals traversed by Effect diagnostic rules.
@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.
@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.
Updates Schema class completions for the Error and TaggedError renames.
Fixes and other changes 1
Suppresses auto-imports from blocked Effect internal modules.
@effect/tsgo 0.323 changes
Tooling 2
Redundant Oxlint dependencies are no longer installed when Vite+ is present.
Oxlint's TypeScript declarations now include the effecttsgo plugin and its rule names.
Fixes and other changes 1
Skip messages now identify components that have already been patched.
@effect/tsgo 0.312 changes
Tooling 1
Adds a quick fix for floating Effects in yieldable Effect contexts.
Fixes and other changes 1
Converting hand-rolled reason dispatch to Effect.catchReason or Effect.catchReasons now preserves narrowed wrapper error references.
@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.
@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.
@effect/tsgo 0.281 changes
Tooling 1
The renamed etsoxlintrunner integration exposes Effect code actions as lazy Oxlint suggestions.
@effect/tsgo 0.246 changes
Tooling 2
Hovering the asterisk or trailing space in a yield* expression now returns enhanced Effect quickinfo.
Adds an off-by-default diagnostic and quick fix to replace Schema.Schema.Type<typeof X> with typeof X.Type.
Fixes and other changes 4
Packaged Unix binaries preserve executable permissions, allowing the diagnostics command to launch them after installation.
Avoids introducing TS2589 for assignments with recursive expected types and non-Effect values.
Ignores Effect v4 local
Effect.provide(..., { local: true })calls when reporting chained provides.Avoids excessive type-depth diagnostics when matching data-first and pipeable overloads with complex return types.
@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.
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.
@effect/tsgo 0.221 changes
Tooling 1
Adds a diagnostic to prevent instance members in classes extending Schema.Opaque.
@effect/tsgo 0.211 changes
Tooling 1
Adds an off-by-default diagnostic to audit exported fixed-arity functions without corresponding pipeable overloads.
@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.
Configures current TypeScript Go VS Code settings, including the workspace TypeScript SDK path and additional SDK locations.
Fixes and other changes 2
Compositions now start from
Layer.emptywhen the first layer does not provide a requested output service.Configures TypeScript to use the installed local copy of the generated schema during setup.
@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.
@effect/tsgo 0.183 changes
New APIs and options 1
Adds --typescript-package <name> to select the TypeScript package to patch.
Behavior and default changes 1
When resolving the native TypeScript package to patch, resolution automatically falls back from typescript to @typescript/native.
Fixes and other changes 1
The command can skip TypeScript package aliases that lack package metadata needed for native binary matching.
@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.
Adds an ETS API helper to extract layer magic from caller-provided layer nodes.
Behavior and default changes 1
Layer graph extraction can start from multiple nodes without exploding expressions.
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.
Fixes and other changes 3
Type lookup now guards against import clauses without a default binding, preventing a nil-symbol panic.
Checker, rule, refactor, and LSP symbol and type resolution now guard against meta properties, preventing panics on import.defer calls.
The checker no longer suggests unnecessaryEffectGen when a single-return generator contains nested yield* expressions.
@effect/tsgo 0.155 changes
Breaking changes 1
The unused native API hook was removed from the patched TypeScript-Go API.
New APIs and options 1
The
typescriptpackage at version 7 or later is supported as a native backend alongside@typescript/native-preview; versions below 7 are not treated as native.
Behavior and default changes 1
These commands resolve the native TypeScript binary from either installed backend, trying
@typescript/native-previewfirst and thentypescript>= 7.
Tooling 1
Setup points this VS Code setting at
node_modules/typescriptfor thetypescriptbackend and atnode_modules/@typescript/native-previewotherwise.
Fixes and other changes 1
Recognizes an existing
typescript>= 7 install, avoids redundantly adding@typescript/native-preview, and writes the correct backend package topackage.json.
@effect/tsgo 0.142 changes
Tooling 2
Platform packages now publish the tsc binary built from generated/stable alongside tsgo built from main.
Adds a suggestion diagnostic for Effect v4 that recommends Schema.Finite and Schema.FiniteFromString over number schemas that also accept NaN and infinities.
@effect/tsgo 0.133 changes
New APIs and options 1
Additional TypeScript-Go shims are exposed for module resolution.
Tooling 2
Additional TypeScript-Go shims are exposed for language service quick info documentation.
Adds a diagnostic suggesting you hoist repeated trailing Effect.orDie calls from every yielded effect to the generator result.
@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)).
@effect/tsgo 0.113 changes
Deprecations 1
Adds a diagnostic discouraging constructing Effect v4 Schema classes with new and suggesting SchemaClass.make(...) instead.
Fixes and other changes 2
The diagnostic now allows generic zero-argument functions returning Effect values.
Fixes shim generation for mirrored struct fields that reference unexported named types.
@effect/tsgo 0.102 changes
Tooling 2
The diagnostic now also detects lazy Layer returns and mentions the concrete lazy type in its message.
Adds a diagnostic suggesting consecutive uninterrupted catchTag transformations be collapsed into catchTags when semantics remain equivalent.
@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.
Tooling 1
Adds a diagnostic for exported zero-argument functions, exported interface members, and Context.Service members that lazily return Effect or Stream values.
@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.
@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.
Tooling 1
Adds a diagnostic for hoistable repeated Effect.mapError(...) usage in Effect.gen and generator-form Effect.fn.
Fixes and other changes 1
Avoids stray TypeScript diagnostics when detecting data-first and data-last Effect APIs during piping-flow analysis.
@effect/tsgo 0.64 changes
Tooling 2
Diagnostics for unsafe effect type assertions now also cover Stream and Layer assertions.
Adds a diagnostic and quick-fix to detect assertions that unsafely narrow Effect error or requirements channels.
Fixes and other changes 2
The TypeScript-Go submodule now includes upstream fixes for declaration emit.
The restored Effect v4 API is included in the updated metadata.
@effect/tsgo 0.53 changes
Fixes and other changes 3
Effect diagnostics are skipped for source files resolved from external libraries.
Plugin activation now works when inherited through multiple tsconfig extends hops, without duplicating the plugin stanza in intermediate configs.
Fixes a false-positive TS2683 and preserves contextual this typing in directly yielded expressions during data-first call analysis.
@effect/tsgo 0.42 changes
New APIs and options 1
The checker shim now exports the TypeScript-Go helper for reuse.
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.
@effect/tsgo 0.315 changes
Deprecations 2
Adds an Effect v4 diagnostic warning on crypto.randomUUID() usage and recommending the Effect Random module.
Adds an Effect v4 diagnostic warning on crypto.randomUUID() usage and recommending the Effect Random module.
New APIs and options 4
Ports the effectMapFlatten diagnostic from the reference language service.
Adds a diagnostic warning on manual new Promise construction in favor of Effect-native async patterns.
Adds a diagnostic warning on process.env reads and recommending Effect Config.
Adds a diagnostic warning on process.env reads and recommending Effect Config.
Tooling 9
Diagnostics now recognize Effect.promise constructor thunks.
Diagnostics now recognize Effect.sync constructor thunks.
Diagnostics now recognize Effect.try constructor thunks.
Diagnostics now recognize Effect.tryPromise constructor thunks.
Adds a diagnostic warning on async functions in favor of Effect-native async patterns.
Ports the effectDoNotation diagnostic from the reference language service.
Adds a diagnostic for Effect.sync thunks that return the global Promise<T> type.
Adds a diagnostic for nested bare yield* Effect.gen(...) calls inside existing Effect generator contexts.
Adds a diagnostic and quick fix for arrow functions whose block body only returns an expression.
@effect/tsgo 0.23 changes
New APIs and options 1
Effect plugin option handling now supports per-file overrides.
Behavior and default changes 1
Effect diagnostic text now uses a neutral, factual tone; severity remains controlled by configuration.
Fixes and other changes 1
The Effect v4 floatingEffect diagnostic now reports floating Stream expressions.
@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.
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.
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.
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.
@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.
Adds back the includeSuggestionsInTsc setting.
Performance 2
Caching and performance allocation changes were made.
Caching was added inside Checker, potentially affecting checker performance.
Behavior and default changes 1
Graphs and locations now prefer the property name.
Tooling 4
Upstream TypeScript-Go changes add linked editing support.
Upstream TypeScript-Go changes include signature help trigger characters.
Adds document symbols, making symbols available for documents in supporting tools.
Completions were added.
Fixes and other changes 12
The tsgo CLI now respects includeSuggestionsInTsc: false during command-line runs, filtering suggestions as configured.
Only skip-file disables an entire file, so later rule-specific preview directives can re-enable diagnostics.
Upstream TypeScript-Go changes include auto-import fixes.
Upstream TypeScript-Go changes include formatting rule fixes.
Upstream TypeScript-Go changes include JSON syntax validation.
Handles an existing prepare script.
Fixes the range that triggers a refactor.
The missingEffectContext message includes more information.
Severity selection was ported.
Fixes an issue caused by nested expressions with type arguments in tsgo.
Aligns floatingEffect effect subtype behaviour.
Setup-generated tsconfig plugin entries are kept aligned with the Effect plugin name parsed by tsgo.