#6811017a54 Thanks @mattiamanzati! - Generate a root schema.json for tsconfig.json plugin configuration, add typed Effect Language Service plugin options to that schema, and have effect-language-service setup add or remove the matching $schema entry automatically.
#6793664197 Thanks @mattiamanzati! - Add inline --lspconfig support to the effect-language-service diagnostics CLI command so diagnostics runs can override the project plugin configuration without editing tsconfig.json.
#6716b9c378 Thanks @mattiamanzati! - Add the extendsNativeError diagnostic to warn when classes directly extend the native Error constructor, including common local aliases such as const E = Error.
This helps steer users toward tagged errors that preserve stronger typing in the Effect failure channel.
The generated table is checked in CI, and diagnostics tests verify that fixable matches the presence of non-suppression quick fixes.
#6762f982d6 Thanks @mattiamanzati! - Add the nodeBuiltinImport diagnostic to warn when importing Node.js built-in modules (fs, path, child_process) that have Effect-native counterparts in @effect/platform.
This diagnostic covers ES module imports and top-level require() calls, matching both bare and node:-prefixed specifiers as well as subpath variants like fs/promises, path/posix, and path/win32. It defaults to severity off and provides no code fixes.
ignoreEffectErrorsInTscExitCode allows Effect diagnostics reported as errors to be ignored for exit-code purposes, and skipDisabledOptimiziation keeps disabled diagnostics eligible for comment-based overrides when patch mode is active.
#67454e8c16 Thanks @mattiamanzati! - Add the serviceNotAsClass diagnostic to warn when ServiceMap.Service is used as a variable assignment instead of in a class declaration.
Includes an auto-fix that converts const Config = ServiceMap.Service<Shape>("Config") to class Config extends ServiceMap.Service<Config, Shape>()("Config") {}.
Patch Changes
#675d1f09c3 Thanks @mattiamanzati! - Rename the skipDisabledOptimiziation plugin option to skipDisabledOptimization.
#6630e82d43 Thanks @mattiamanzati! - Improve effectFnOpportunity inferred span naming for service-layer methods and align examples for Effect v4.
The inferred span can now include service + method names (for example MyService.log) when the convertible function is a method inside a layer service object for strict supported patterns like:
Layer.succeed(Service)(...)
Layer.sync(Service)(...)
Layer.effect(Service)(Effect.gen(...))
Layer.effect(Service, Effect.gen(...))
Also add Effect v4 diagnostics fixtures for:
effectFnOpportunity_inferred.ts
effectFnOpportunity_inferredLayer.ts
#669a010a29 Thanks @mattiamanzati! - Add a new effectInFailure diagnostic that warns when an Effect computation appears in the failure channel (E) of another Effect.
The rule traverses Effect-typed expressions, unrolls union members of E, and reports when any member is itself a strict Effect type.
It prefers innermost matches for nested cases (for example nested Effect.try in catch) to avoid noisy parent reports.
Patch Changes
#66606b3a6c Thanks @mattiamanzati! - Fix effectFnOpportunity inferred span naming for Layer.*(this, ...) patterns in class static members.
When the inferred layer target is this, the diagnostic now uses the nearest enclosing class name (for example MyService) instead of the literal this token.
#665a95a679 Thanks @mattiamanzati! - Improve yield-based diagnostics and hover behavior by introducing effectYieldableType in TypeParser and using it in missingReturnYieldStar.
In Effect v4, yieldable values are recognized through asEffect() and mapped to Effect A/E/R.
In Effect v3, effectYieldableType falls back to standard effectType behavior.
missingReturnYieldStar now correctly handles yieldable values such as Option.none().
Hover support for yield* was updated to use yieldable parsing paths.
#664934ef7e Thanks @mattiamanzati! - Improve missingReturnYieldStar safety by targeting only expression statements with top-level yield* expressions and validating the enclosing Effect.gen scope via findEnclosingScopes.
This avoids edge cases where nested or wrapped yield* expressions could be matched incorrectly.
#6610f92686 Thanks @mattiamanzati! - Update effect dependency to v4.0.0-beta.19 and fix compatibility issues:
Fix layerMagic refactor producing any types in Layer channels by replacing Array.partition (which now uses the v4 Filter.Filter API) with a native loop for boolean partition logic
Add v4 Layer type detection shortcut using "~effect/Layer" TypeId property, matching the pattern already used for Effect type detection
Mark Effect.filterMap as unchanged in the outdated API migration database since it was re-added in v4
#655c875de2 Thanks @mattiamanzati! - Add outdatedApi diagnostic that warns when using outdated Effect APIs in a project targeting a newer version of Effect.
Patch Changes
#66099a97a6 Thanks @mattiamanzati! - Dispose TypeScript language services in tests to prevent resource leaks
Added languageService.dispose() calls via try/finally patterns to all test files that create language services through createServicesWithMockedVFS(). This ensures proper cleanup of TypeScript compiler resources after each test completes, preventing memory leaks during test runs.
Fixed TaggedError completion to use TaggedErrorClass matching the v4 API
Removed Schema.RequestClass examples that no longer exist in v4
Updated Effect v4 harness to latest version
#6592699a80 Thanks @mattiamanzati! - Add support for Model.Class from effect/unstable/schema in completions and diagnostics.
The classSelfMismatch diagnostic now detects mismatched Self type parameters in Model.Class declarations, and the autocomplete for Self type in classes now suggests Model.Class when typing after Model..
import{Model}from"effect/unstable/schema";// autocomplete triggers after `Model.`
exportclassMyDataModelextendsModel.Class<MyDataModel>("MyDataModel")({id: Schema.String,}){}
#651aeab349 Thanks @mattiamanzati! - Add refactor to convert Effect.Service to Context.Tag with a static Layer property.
Supports all combinator kinds (effect, scoped, sync, succeed) and dependencies. The refactor replaces the Effect.Service class declaration with a Context.Tag class that has a static layer property using the corresponding Layer combinator.
#6542c93eab Thanks @mattiamanzati! - Migrate internal Effect dependency from v3 to v4. This updates all CLI and core modules to use the Effect v4 API while maintaining full backward compatibility with existing functionality.
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@effect/language-service](https://github.com/Effect-TS/language-service) | [`^0.75.0` → `^0.80.0`](https://renovatebot.com/diffs/npm/@effect%2flanguage-service/0.75.1/0.80.0) |  |  |
| [typescript](https://www.typescriptlang.org/) ([source](https://github.com/microsoft/TypeScript)) | [`~5.6.2` → `~5.9.0`](https://renovatebot.com/diffs/npm/typescript/5.6.3/5.9.3) |  |  |
---
### Release Notes
<details>
<summary>Effect-TS/language-service (@​effect/language-service)</summary>
### [`v0.80.0`](https://github.com/Effect-TS/language-service/releases/tag/%40effect/language-service%400.80.0)
[Compare Source](https://github.com/Effect-TS/language-service/compare/@effect/language-service@0.79.0...@effect/language-service@0.80.0)
##### Minor Changes
- [#​681](https://github.com/Effect-TS/language-service/pull/681) [`1017a54`](https://github.com/Effect-TS/language-service/commit/1017a5443b2e6919f18e57afb86373ba825037c9) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Generate a root `schema.json` for `tsconfig.json` plugin configuration, add typed Effect Language Service plugin options to that schema, and have `effect-language-service setup` add or remove the matching `$schema` entry automatically.
- [#​679](https://github.com/Effect-TS/language-service/pull/679) [`3664197`](https://github.com/Effect-TS/language-service/commit/3664197f271012d001f6074d40c5303826d632ce) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add inline `--lspconfig` support to the `effect-language-service diagnostics` CLI command so diagnostics runs can override the project plugin configuration without editing `tsconfig.json`.
### [`v0.79.0`](https://github.com/Effect-TS/language-service/releases/tag/%40effect/language-service%400.79.0)
[Compare Source](https://github.com/Effect-TS/language-service/compare/@effect/language-service@0.78.0...@effect/language-service@0.79.0)
##### Minor Changes
- [#​671](https://github.com/Effect-TS/language-service/pull/671) [`6b9c378`](https://github.com/Effect-TS/language-service/commit/6b9c378c4e1d0c83e4afe322cf44ccacd75d1cb4) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add the `extendsNativeError` diagnostic to warn when classes directly extend the native `Error` constructor, including common local aliases such as `const E = Error`.
This helps steer users toward tagged errors that preserve stronger typing in the Effect failure channel.
- [#​678](https://github.com/Effect-TS/language-service/pull/678) [`0e9c11b`](https://github.com/Effect-TS/language-service/commit/0e9c11b4b3c076adef62e31722855ebc0071aaf6) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Generate the README diagnostics table from the diagnostic registry.
Each diagnostic now declares:
- whether it is fixable
- which Effect versions it supports
The generated table is checked in CI, and diagnostics tests verify that `fixable` matches the presence of non-suppression quick fixes.
- [#​676](https://github.com/Effect-TS/language-service/pull/676) [`2f982d6`](https://github.com/Effect-TS/language-service/commit/2f982d69541633aca2cd3bcdc89bdae7d17cb97b) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add the `nodeBuiltinImport` diagnostic to warn when importing Node.js built-in modules (`fs`, `path`, `child_process`) that have Effect-native counterparts in `@effect/platform`.
This diagnostic covers ES module imports and top-level `require()` calls, matching both bare and `node:`-prefixed specifiers as well as subpath variants like `fs/promises`, `path/posix`, and `path/win32`. It defaults to severity `off` and provides no code fixes.
- [#​673](https://github.com/Effect-TS/language-service/pull/673) [`f9e24df`](https://github.com/Effect-TS/language-service/commit/f9e24df5db70110d5e84da45810bd82cf12fadc7) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add plugin options to better control patched `tsc` behavior.
`ignoreEffectErrorsInTscExitCode` allows Effect diagnostics reported as errors to be ignored for exit-code purposes, and `skipDisabledOptimiziation` keeps disabled diagnostics eligible for comment-based overrides when patch mode is active.
- [#​674](https://github.com/Effect-TS/language-service/pull/674) [`54e8c16`](https://github.com/Effect-TS/language-service/commit/54e8c16865e99be9b6faec3e50c17d1e501242f9) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add the `serviceNotAsClass` diagnostic to warn when `ServiceMap.Service` is used as a variable assignment instead of in a class declaration.
Includes an auto-fix that converts `const Config = ServiceMap.Service<Shape>("Config")` to `class Config extends ServiceMap.Service<Config, Shape>()("Config") {}`.
##### Patch Changes
- [#​675](https://github.com/Effect-TS/language-service/pull/675) [`d1f09c3`](https://github.com/Effect-TS/language-service/commit/d1f09c364bde5a14905b4a9d030830309b6aab43) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Rename the `skipDisabledOptimiziation` plugin option to `skipDisabledOptimization`.
Example:
```json
{
"compilerOptions": {
"plugins": [
{
"name": "@​effect/language-service",
"skipDisabledOptimization": true
}
]
}
}
```
### [`v0.78.0`](https://github.com/Effect-TS/language-service/releases/tag/%40effect/language-service%400.78.0)
[Compare Source](https://github.com/Effect-TS/language-service/compare/@effect/language-service@0.77.0...@effect/language-service@0.78.0)
##### Minor Changes
- [#​663](https://github.com/Effect-TS/language-service/pull/663) [`0e82d43`](https://github.com/Effect-TS/language-service/commit/0e82d437e91fe0b98c51b4b53c8d06f29aa41b8e) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Improve `effectFnOpportunity` inferred span naming for service-layer methods and align examples for Effect v4.
The inferred span can now include service + method names (for example `MyService.log`) when the convertible function is a method inside a layer service object for strict supported patterns like:
- `Layer.succeed(Service)(...)`
- `Layer.sync(Service)(...)`
- `Layer.effect(Service)(Effect.gen(...))`
- `Layer.effect(Service, Effect.gen(...))`
Also add Effect v4 diagnostics fixtures for:
- `effectFnOpportunity_inferred.ts`
- `effectFnOpportunity_inferredLayer.ts`
- [#​669](https://github.com/Effect-TS/language-service/pull/669) [`a010a29`](https://github.com/Effect-TS/language-service/commit/a010a29d219a22da2553d82da3bbabc3312106f5) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add a new `effectInFailure` diagnostic that warns when an `Effect` computation appears in the failure channel (`E`) of another `Effect`.
The rule traverses Effect-typed expressions, unrolls union members of `E`, and reports when any member is itself a strict Effect type.
It prefers innermost matches for nested cases (for example nested `Effect.try` in `catch`) to avoid noisy parent reports.
##### Patch Changes
- [#​666](https://github.com/Effect-TS/language-service/pull/666) [`06b3a6c`](https://github.com/Effect-TS/language-service/commit/06b3a6ce41c24459120c6a396804dadaf420786a) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Fix `effectFnOpportunity` inferred span naming for `Layer.*(this, ...)` patterns in class static members.
When the inferred layer target is `this`, the diagnostic now uses the nearest enclosing class name (for example `MyService`) instead of the literal `this` token.
- [#​665](https://github.com/Effect-TS/language-service/pull/665) [`a95a679`](https://github.com/Effect-TS/language-service/commit/a95a6792e313ac920f6621858439b18d52c9c0d9) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Improve yield-based diagnostics and hover behavior by introducing `effectYieldableType` in `TypeParser` and using it in `missingReturnYieldStar`.
- In Effect v4, yieldable values are recognized through `asEffect()` and mapped to Effect `A/E/R`.
- In Effect v3, `effectYieldableType` falls back to standard `effectType` behavior.
- `missingReturnYieldStar` now correctly handles yieldable values such as `Option.none()`.
- Hover support for `yield*` was updated to use yieldable parsing paths.
- [#​664](https://github.com/Effect-TS/language-service/pull/664) [`934ef7e`](https://github.com/Effect-TS/language-service/commit/934ef7e0b58bc5260425b47a9efe1f4d0ccc26f0) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Improve `missingReturnYieldStar` safety by targeting only expression statements with top-level `yield*` expressions and validating the enclosing `Effect.gen` scope via `findEnclosingScopes`.
This avoids edge cases where nested or wrapped `yield*` expressions could be matched incorrectly.
- [#​661](https://github.com/Effect-TS/language-service/pull/661) [`0f92686`](https://github.com/Effect-TS/language-service/commit/0f92686ac86b4f90eea436c542914ce59c39afb6) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Update effect dependency to v4.0.0-beta.19 and fix compatibility issues:
- Fix `layerMagic` refactor producing `any` types in Layer channels by replacing `Array.partition` (which now uses the v4 `Filter.Filter` API) with a native loop for boolean partition logic
- Add v4 Layer type detection shortcut using `"~effect/Layer"` TypeId property, matching the pattern already used for Effect type detection
- Mark `Effect.filterMap` as unchanged in the outdated API migration database since it was re-added in v4
### [`v0.77.0`](https://github.com/Effect-TS/language-service/releases/tag/%40effect/language-service%400.77.0)
[Compare Source](https://github.com/Effect-TS/language-service/compare/@effect/language-service@0.76.0...@effect/language-service@0.77.0)
##### Minor Changes
- [#​655](https://github.com/Effect-TS/language-service/pull/655) [`c875de2`](https://github.com/Effect-TS/language-service/commit/c875de2c2334f740155f5a1e8a1a44636506d157) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add `outdatedApi` diagnostic that warns when using outdated Effect APIs in a project targeting a newer version of Effect.
##### Patch Changes
- [#​660](https://github.com/Effect-TS/language-service/pull/660) [`99a97a6`](https://github.com/Effect-TS/language-service/commit/99a97a6a4e275d03562de7ede2a2510f1c06f230) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Dispose TypeScript language services in tests to prevent resource leaks
Added `languageService.dispose()` calls via `try/finally` patterns to all test files that create language services through `createServicesWithMockedVFS()`. This ensures proper cleanup of TypeScript compiler resources after each test completes, preventing memory leaks during test runs.
- [#​658](https://github.com/Effect-TS/language-service/pull/658) [`0154667`](https://github.com/Effect-TS/language-service/commit/0154667a23c95a8133751b3454b9233ddc39d8e3) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Fix outdated API diagnostic for Effect v4 compatibility
- Fixed `TaggedError` completion to use `TaggedErrorClass` matching the v4 API
- Removed `Schema.RequestClass` examples that no longer exist in v4
- Updated Effect v4 harness to latest version
- [#​659](https://github.com/Effect-TS/language-service/pull/659) [`2699a80`](https://github.com/Effect-TS/language-service/commit/2699a80e3ecbce91db269cd34689752950d8d278) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add support for `Model.Class` from `effect/unstable/schema` in completions and diagnostics.
The `classSelfMismatch` diagnostic now detects mismatched Self type parameters in `Model.Class` declarations, and the autocomplete for Self type in classes now suggests `Model.Class` when typing after `Model.`.
```ts
import { Model } from "effect/unstable/schema";
// autocomplete triggers after `Model.`
export class MyDataModel extends Model.Class<MyDataModel>("MyDataModel")({
id: Schema.String,
}) {}
```
### [`v0.76.0`](https://github.com/Effect-TS/language-service/releases/tag/%40effect/language-service%400.76.0)
[Compare Source](https://github.com/Effect-TS/language-service/compare/@effect/language-service@0.75.1...@effect/language-service@0.76.0)
##### Minor Changes
- [#​651](https://github.com/Effect-TS/language-service/pull/651) [`aeab349`](https://github.com/Effect-TS/language-service/commit/aeab349b498c5bea4d050409a57f8f1900190c39) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Add refactor to convert `Effect.Service` to `Context.Tag` with a static `Layer` property.
Supports all combinator kinds (`effect`, `scoped`, `sync`, `succeed`) and `dependencies`. The refactor replaces the `Effect.Service` class declaration with a `Context.Tag` class that has a `static layer` property using the corresponding `Layer` combinator.
Before:
```ts
export class MyService extends Effect.Service<MyService>()("MyService", {
effect: Effect.gen(function* () {
return { value: "hello" };
}),
}) {}
```
After:
```ts
export class MyService extends Context.Tag("MyService")<
MyService,
{ value: string }
>() {
static layer = Layer.effect(
this,
Effect.gen(function* () {
return { value: "hello" };
})
);
}
```
- [#​654](https://github.com/Effect-TS/language-service/pull/654) [`2c93eab`](https://github.com/Effect-TS/language-service/commit/2c93eabfd7b799543832dc84304f20c90382c7eb) Thanks [@​mattiamanzati](https://github.com/mattiamanzati)! - Migrate internal Effect dependency from v3 to v4. This updates all CLI and core modules to use the Effect v4 API while maintaining full backward compatibility with existing functionality.
</details>
<details>
<summary>microsoft/TypeScript (typescript)</summary>
### [`v5.9.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.9.3): TypeScript 5.9.3
[Compare Source](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3)
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/)
- [fixed issues query for Typescript 5.9.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.9.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+).
- *No specific changes for TypeScript 5.9.2 (Stable)*
- [fixed issues query for Typescript 5.9.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.3%22+is%3Aclosed+).
Downloads are available on:
- [npm](https://www.npmjs.com/package/typescript)
### [`v5.9.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.9.2): TypeScript 5.9
[Compare Source](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2)
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/)
- [fixed issues query for Typescript 5.9.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.9.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+).
- *No specific changes for TypeScript 5.9.2 (Stable)*
Downloads are available on:
- [npm](https://www.npmjs.com/package/typescript)
### [`v5.8.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.8.3): TypeScript 5.8.3
[Compare Source](https://github.com/microsoft/TypeScript/compare/v5.8.2...v5.8.3)
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/).
- [fixed issues query for Typescript 5.8.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.8.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.8.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.8.1%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.8.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.8.2%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.8.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.8.3%22+is%3Aclosed+).
Downloads are available on:
- [npm](https://www.npmjs.com/package/typescript)
### [`v5.8.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.8.2): TypeScript 5.8
[Compare Source](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.2)
For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/).
- [fixed issues query for Typescript 5.8.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.8.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.8.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.8.1%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.8.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.8.2%22+is%3Aclosed+).
Downloads are available on:
- [npm](https://www.npmjs.com/package/typescript)
### [`v5.7.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.7.3): TypeScript 5.7.3
[Compare Source](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3)
For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/).
- [fixed issues query for Typescript 5.7.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.7.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.1%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.7.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.2%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.7.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.2%22+is%3Aclosed+).
Downloads are available on [npm](https://www.npmjs.com/package/typescript)
### [`v5.7.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.7.2): TypeScript 5.7
[Compare Source](https://github.com/microsoft/TypeScript/compare/v5.6.3...v5.7.2)
For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/).
- [fixed issues query for Typescript 5.7.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.7.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.1%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.7.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.2%22+is%3Aclosed+).
Downloads are available on:
- [npm](https://www.npmjs.com/package/typescript)
</details>
---
### Configuration
📅 **Schedule**: 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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zNi4yIiwidXBkYXRlZEluVmVyIjoiNDMuNzYuMiIsInRhcmdldEJyYW5jaCI6Im5leHQiLCJsYWJlbHMiOltdfQ==-->
renovate-bot
changed title from Update dependency @effect/language-service to ^0.76.0 to Update dependency @effect/language-service to ^0.77.02026-02-27 13:01:53 +01:00
renovate-bot
changed title from Update dependency @effect/language-service to ^0.77.0 to Update dependency @effect/language-service to ^0.78.02026-03-06 13:02:00 +01:00
renovate-bot
changed title from Update dependency @effect/language-service to ^0.78.0 to Update dependency @effect/language-service to ^0.79.02026-03-08 13:01:54 +01:00
renovate-bot
changed title from Update dependency @effect/language-service to ^0.79.0 to Update dependency @effect/language-service to ^0.80.02026-03-13 13:01:14 +01:00
Thilawyn
changed target branch from next to master2026-03-16 00:30:18 +01:00
renovate-bot
changed title from Update dependency @effect/language-service to ^0.80.0 to Update bun minor+patch updates2026-03-16 00:47:50 +01:00
renovate-bot
changed target branch from master to next2026-03-16 00:47:51 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
^0.75.0→^0.80.0~5.6.2→~5.9.0Release Notes
Effect-TS/language-service (@effect/language-service)
v0.80.0Compare Source
Minor Changes
#681
1017a54Thanks @mattiamanzati! - Generate a rootschema.jsonfortsconfig.jsonplugin configuration, add typed Effect Language Service plugin options to that schema, and haveeffect-language-service setupadd or remove the matching$schemaentry automatically.#679
3664197Thanks @mattiamanzati! - Add inline--lspconfigsupport to theeffect-language-service diagnosticsCLI command so diagnostics runs can override the project plugin configuration without editingtsconfig.json.v0.79.0Compare Source
Minor Changes
#671
6b9c378Thanks @mattiamanzati! - Add theextendsNativeErrordiagnostic to warn when classes directly extend the nativeErrorconstructor, including common local aliases such asconst E = Error.This helps steer users toward tagged errors that preserve stronger typing in the Effect failure channel.
#678
0e9c11bThanks @mattiamanzati! - Generate the README diagnostics table from the diagnostic registry.Each diagnostic now declares:
The generated table is checked in CI, and diagnostics tests verify that
fixablematches the presence of non-suppression quick fixes.#676
2f982d6Thanks @mattiamanzati! - Add thenodeBuiltinImportdiagnostic to warn when importing Node.js built-in modules (fs,path,child_process) that have Effect-native counterparts in@effect/platform.This diagnostic covers ES module imports and top-level
require()calls, matching both bare andnode:-prefixed specifiers as well as subpath variants likefs/promises,path/posix, andpath/win32. It defaults to severityoffand provides no code fixes.#673
f9e24dfThanks @mattiamanzati! - Add plugin options to better control patchedtscbehavior.ignoreEffectErrorsInTscExitCodeallows Effect diagnostics reported as errors to be ignored for exit-code purposes, andskipDisabledOptimiziationkeeps disabled diagnostics eligible for comment-based overrides when patch mode is active.#674
54e8c16Thanks @mattiamanzati! - Add theserviceNotAsClassdiagnostic to warn whenServiceMap.Serviceis used as a variable assignment instead of in a class declaration.Includes an auto-fix that converts
const Config = ServiceMap.Service<Shape>("Config")toclass Config extends ServiceMap.Service<Config, Shape>()("Config") {}.Patch Changes
#675
d1f09c3Thanks @mattiamanzati! - Rename theskipDisabledOptimiziationplugin option toskipDisabledOptimization.Example:
v0.78.0Compare Source
Minor Changes
#663
0e82d43Thanks @mattiamanzati! - ImproveeffectFnOpportunityinferred span naming for service-layer methods and align examples for Effect v4.The inferred span can now include service + method names (for example
MyService.log) when the convertible function is a method inside a layer service object for strict supported patterns like:Layer.succeed(Service)(...)Layer.sync(Service)(...)Layer.effect(Service)(Effect.gen(...))Layer.effect(Service, Effect.gen(...))Also add Effect v4 diagnostics fixtures for:
effectFnOpportunity_inferred.tseffectFnOpportunity_inferredLayer.ts#669
a010a29Thanks @mattiamanzati! - Add a neweffectInFailurediagnostic that warns when anEffectcomputation appears in the failure channel (E) of anotherEffect.The rule traverses Effect-typed expressions, unrolls union members of
E, and reports when any member is itself a strict Effect type.It prefers innermost matches for nested cases (for example nested
Effect.tryincatch) to avoid noisy parent reports.Patch Changes
#666
06b3a6cThanks @mattiamanzati! - FixeffectFnOpportunityinferred span naming forLayer.*(this, ...)patterns in class static members.When the inferred layer target is
this, the diagnostic now uses the nearest enclosing class name (for exampleMyService) instead of the literalthistoken.#665
a95a679Thanks @mattiamanzati! - Improve yield-based diagnostics and hover behavior by introducingeffectYieldableTypeinTypeParserand using it inmissingReturnYieldStar.asEffect()and mapped to EffectA/E/R.effectYieldableTypefalls back to standardeffectTypebehavior.missingReturnYieldStarnow correctly handles yieldable values such asOption.none().yield*was updated to use yieldable parsing paths.#664
934ef7eThanks @mattiamanzati! - ImprovemissingReturnYieldStarsafety by targeting only expression statements with top-levelyield*expressions and validating the enclosingEffect.genscope viafindEnclosingScopes.This avoids edge cases where nested or wrapped
yield*expressions could be matched incorrectly.#661
0f92686Thanks @mattiamanzati! - Update effect dependency to v4.0.0-beta.19 and fix compatibility issues:layerMagicrefactor producinganytypes in Layer channels by replacingArray.partition(which now uses the v4Filter.FilterAPI) with a native loop for boolean partition logic"~effect/Layer"TypeId property, matching the pattern already used for Effect type detectionEffect.filterMapas unchanged in the outdated API migration database since it was re-added in v4v0.77.0Compare Source
Minor Changes
c875de2Thanks @mattiamanzati! - AddoutdatedApidiagnostic that warns when using outdated Effect APIs in a project targeting a newer version of Effect.Patch Changes
#660
99a97a6Thanks @mattiamanzati! - Dispose TypeScript language services in tests to prevent resource leaksAdded
languageService.dispose()calls viatry/finallypatterns to all test files that create language services throughcreateServicesWithMockedVFS(). This ensures proper cleanup of TypeScript compiler resources after each test completes, preventing memory leaks during test runs.#658
0154667Thanks @mattiamanzati! - Fix outdated API diagnostic for Effect v4 compatibilityTaggedErrorcompletion to useTaggedErrorClassmatching the v4 APISchema.RequestClassexamples that no longer exist in v4#659
2699a80Thanks @mattiamanzati! - Add support forModel.Classfromeffect/unstable/schemain completions and diagnostics.The
classSelfMismatchdiagnostic now detects mismatched Self type parameters inModel.Classdeclarations, and the autocomplete for Self type in classes now suggestsModel.Classwhen typing afterModel..v0.76.0Compare Source
Minor Changes
#651
aeab349Thanks @mattiamanzati! - Add refactor to convertEffect.ServicetoContext.Tagwith a staticLayerproperty.Supports all combinator kinds (
effect,scoped,sync,succeed) anddependencies. The refactor replaces theEffect.Serviceclass declaration with aContext.Tagclass that has astatic layerproperty using the correspondingLayercombinator.Before:
After:
#654
2c93eabThanks @mattiamanzati! - Migrate internal Effect dependency from v3 to v4. This updates all CLI and core modules to use the Effect v4 API while maintaining full backward compatibility with existing functionality.microsoft/TypeScript (typescript)
v5.9.3: TypeScript 5.9.3Compare Source
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the release announcement
Downloads are available on:
v5.9.2: TypeScript 5.9Compare Source
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the release announcement
Downloads are available on:
v5.8.3: TypeScript 5.8.3Compare Source
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the release announcement.
Downloads are available on:
v5.8.2: TypeScript 5.8Compare Source
For release notes, check out the release announcement.
Downloads are available on:
v5.7.3: TypeScript 5.7.3Compare Source
For release notes, check out the release announcement.
Downloads are available on npm
v5.7.2: TypeScript 5.7Compare Source
For release notes, check out the release announcement.
Downloads are available on:
Configuration
📅 Schedule: 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.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
Update dependency @effect/language-service to ^0.76.0to Update dependency @effect/language-service to ^0.77.0Update dependency @effect/language-service to ^0.77.0to Update dependency @effect/language-service to ^0.78.0Update dependency @effect/language-service to ^0.78.0to Update dependency @effect/language-service to ^0.79.0Update dependency @effect/language-service to ^0.79.0to Update dependency @effect/language-service to ^0.80.0Update dependency @effect/language-service to ^0.80.0to Update bun minor+patch updates6c4c788b48to0e74d09480