unstale

npm / @effect/language-service

@effect/language-service

What changed in @effect/language-service 0.80 to 0.87, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.

2 breaking2 new APIs and options4 behavior and defaults41 tooling13 fixes and other

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

npx @unstale/cli init

@unstale/cli 0.2.0 on npm

@effect/language-service 0.8712 changes

Breaking changes 1

  • Effect v4 compatibility now uses the new package paths for CLI, HTTP, schema model, and encoding imports, updating examples and diagnostics.

    0.87.3release notes

Tooling 7

  • The v4 quick fix now inserts Effect.context<never>() instead of the removed Effect.services, and reuses an existing Effect.context() binding.

    0.87.5release notes

  • Calls inside an Effect are now reported, with a suggestion to use Effect.runPromiseExitWith in v4 or Runtime.runPromiseExit in v3.

    0.87.5release notes

  • Calls inside an Effect are now reported, like Effect.runSync, with a suggestion to use the appropriate v4 or v3 alternative.

    0.87.5release notes

  • The language service now allows Effect.provide at recognized application entry points.

    0.87.3release notes

  • Effect v4 compatibility is updated to 4.0.0-beta.104, including the renamed Schema.Error and Schema.TaggedError constructors.

    0.87.2release notes

  • Adds a style diagnostic suggesting Effect.map instead of Effect.flatMap followed by Effect.succeed.

    0.87.0release notes

  • Updates the setup command to configure VS Code with the unified js/ts TypeScript settings.

    0.87.0release notes

Fixes and other changes 4

  • Now checks calls used as method receivers and calls nested inside them.

    0.87.4release notes

  • Reports calls whose result is used as a method receiver, including calls nested inside them.

    0.87.4release notes

  • Now checks calls used as method receivers and calls nested inside them.

    0.87.4release notes

  • The diagnostic now ignores Effect v4 local Effect.provide(..., { local: true }) calls when reporting chained provides.

    0.87.1release notes

@effect/language-service 0.869 changes

Breaking changes 1

  • Unsupported TypeScript versions are rejected when loading or patching TypeScript; TypeScript 7 users are directed to @effect/tsgo.

    0.86.5release notes

Behavior and default changes 2

  • When TypeScript skipLibCheck is enabled, patched tsc runs skip Effect diagnostics for external library files.

    0.86.6release notes

  • The preferSchemaOverJson option is now off by default.

    0.86.2release notes

Tooling 3

  • The generated schema.json now includes the TypeScript 6.0 ES2025 target and lib entries.

    0.86.2release notes

  • Diagnostic guidance now recommends Effect v3 and v4 APIs based on whether the shape is known and whether code handles JSON strings or values.

    0.86.2release notes

  • Adds a diagnostic for Effect, Stream, and Layer assertions that unsafely narrow error or requirements channels; it skips channels originally typed as any and offers a quick fix that removes the assertion.

    0.86.0release notes

Fixes and other changes 3

  • The language service no longer suggests removing Effect.gen when a single return statement contains multiple yield* expressions, which would produce invalid code.

    0.86.4release notes

  • RpcClient → Rpc enrichment skips ancestor nodes whose type cannot be resolved, preserving the upstream go-to-definition result for JSX tag names.

    0.86.3release notes

  • Promise detection ignores any and unknown before checking assignability against the global Promise type, fixing false positives for Effect.sync thunks whose return type degrades to any.

    0.86.3release notes

@effect/language-service 0.8512 changes

Tooling 11

  • Adds an effect-native diagnostic reporting async function declarations and guiding developers toward Effect-based async control flow.

    0.85.0release notes

  • Adds a diagnostic discouraging crypto.randomUUID() in favor of the Effect Random module, which uses Effect-injected randomness.

    0.85.0release notes

  • Adds a diagnostic discouraging crypto.randomUUID() in favor of the Effect Random module, which uses Effect-injected randomness.

    0.85.0release notes

  • Adds a style diagnostic for Effect.Do usage and suggests migrating to Effect.gen or Effect.fn.

    0.85.0release notes

  • Adds a style diagnostic for Effect.map(...) immediately followed by Effect.flatten in pipe flows.

    0.85.0release notes

  • Adds a diagnostic for Effect.sync(() => Promise...) patterns and suggests Effect.promise or Effect.tryPromise for async work.

    0.85.0release notes

  • Adds a diagnostic that detects yield* Effect.gen(...) inside an existing Effect generator context.

    0.85.0release notes

  • Adds an effect-native diagnostic reporting manual Promise construction and guiding developers toward Effect-based async control flow.

    0.85.0release notes

  • Adds a diagnostic guiding process.env reads toward Effect Config APIs.

    0.85.0release notes

  • Adds a diagnostic guiding process.env reads toward Effect Config APIs.

    0.85.0release notes

  • Adds a style diagnostic for arrow functions whose block body only returns an expression.

    0.85.0release notes

Fixes and other changes 1

  • Type parsing is updated to match renamed Context APIs in the latest Effect v4 beta releases.

    0.85.1release notes

@effect/language-service 0.8415 changes

Tooling 12

  • Diagnostic messages use reviewed neutral wording while preserving version-specific API references.

    0.84.3release notes

  • Adds Effect v4 support so the diagnostic suggests and fixes Effect.run*With usage based on Effect.services.

    0.84.1release notes

  • Adds an opt-in diagnostic that flags console logging methods outside Effect generators and suggests Effect.log/Logger.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags console logging methods inside Effect generators and suggests Effect.log/Logger.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags Date.now() and new Date() usage outside Effect generators and suggests Clock/DateTime.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags Date.now() and new Date() usage inside Effect generators and suggests Clock/DateTime.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags global fetch() usage outside Effect generators and suggests HttpClient.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags global fetch() usage inside Effect generators and suggests HttpClient.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags Math.random() usage outside Effect generators and suggests the Random service.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags Math.random() usage inside Effect generators and suggests the Random service.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags setTimeout and setInterval usage outside Effect generators and suggests Effect.sleep/Schedule.

    0.84.0release notes

  • Adds an opt-in diagnostic that flags setTimeout and setInterval usage inside Effect generators and suggests Effect.sleep/Schedule.

    0.84.0release notes

Fixes and other changes 3

  • Floating Stream values are now reported in Effect projects for both v3 and v4.

    0.84.3release notes

  • Ignores type-only heritage expressions such as interface extensions, preventing bogus TS2689 diagnostics.

    0.84.2release notes

  • Prevents false positives when an Effect.fn or Effect.fnUntraced callback gets its contextual function type from a union member.

    0.84.1release notes

@effect/language-service 0.832 changes

New APIs and options 1

  • Adds a CLI command for updating diagnostic rule severities without rerunning the full setup flow.

    0.83.0release notes

Tooling 1

  • Adds setup CLI preset management for diagnostic severities, including preset metadata and preset-aware customization.

    0.83.0release notes

@effect/language-service 0.825 changes

Behavior and default changes 2

  • The command's diagnostics output now includes start and end.

    0.82.0release notes

  • A schema can now be referenced from a local installation.

    0.82.0release notes

Tooling 2

  • Use this comment on an enclosing declaration to suppress the leaking requirements diagnostic for specific leaked services.

    0.82.0release notes

  • Adds a diagnostic mirroring noImplicitAny for unannotated Effect.fn and Effect.fnUntraced callback parameters.

    0.82.0release notes

Fixes and other changes 1

  • The diagnostic now also reports invalid ServiceMap.Service self type parameters.

    0.82.0release notes

@effect/language-service 0.814 changes

Tooling 3

  • A new diagnostic flags global fetch usage and recommends the Effect HTTP client.

    0.81.0release notes

  • The node built-in import diagnostic now recommends the Effect HTTP client for http and https imports.

    0.81.0release notes

  • Setup diagnostics now use grouped preview-driven metadata and richer interactive prompt rendering.

    0.81.0release notes

Fixes and other changes 1

  • Setup diagnostics now support tsconfig files that do not contain compilerOptions.

    0.81.0release notes

@effect/language-service 0.803 changes

New APIs and options 1

  • The diagnostics command accepts inline --lspconfig to override project plugin configuration without editing tsconfig.json.

    0.80.0release notes

Tooling 2

  • A root schema.json is generated for tsconfig.json plugin configuration and includes typed Effect Language Service plugin options.

    0.80.0release notes

  • effect-language-service setup automatically adds or removes the matching $schema entry.

    0.80.0release notes