Update bun minor+patch updates #77
Reference in New Issue
Block a user
Delete Branch "renovate/bun-minor-patch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
^0.60.0→^0.80.0^0.59.0→^0.61.0^0.93.0→^0.94.0^0.73.0→^0.74.0^0.86.0→^0.87.0^0.103.0→^0.104.0^0.72.0→^0.73.0^0.208.0→^0.213.0^0.556.0→^0.577.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.v0.75.1Compare Source
Patch Changes
#647
489e3f0Thanks @mattiamanzati! - Expose diagnostic quick fixes as refactoring actions to work around TypeScript's limited quick fix handling in some contexts#650
6f568cfThanks @mattiamanzati! - Fix TypeParser to skip types with generic call signatures. When parsing covariant, contravariant, or invariant types, signatures with type parameters are now correctly rejected instead of being treated as concrete types.#649
5858fd1Thanks @mattiamanzati! - Performance improvements: replaceNano.genwithNano.fnnamed functions across diagnostics, refactors, and code generation modules for better performance tracking and reduced runtime overhead. Add conditionaldebugPerformanceflag to avoid unnecessary timing collection when not debugging.v0.75.0Compare Source
Minor Changes
a8a7d33Thanks @mattiamanzati! - AddServiceMap.Serviceclass completion for Effect v4, and fix Schema class completions for v4 (TaggedErrorClass,TaggedClassnow available,ErrorClassfully-qualified form fixed,RequestClassremoved)v0.74.0Compare Source
Minor Changes
#641
693e5a5Thanks @mattiamanzati! - Added Effect v4 support for diagnostics, refactors, and piping features.Diagnostics:
multipleEffectProvide: Warns when multipleEffect.providecalls are chained, suggesting consolidationstrictEffectProvide: Warns when usingEffect.providewith Layer outside of application entry pointsmissingLayerContext: Detects missing Layer context requirementsdeterministicKeys: Extended to supportServiceMap.ServicepatternsleakingRequirements: Extended to detect leaking requirements in ServiceMap servicesschemaSyncInEffect: Updated with v4-specific method mappings (e.g.,decodeSync->decodeEffect)Refactors:
layerMagic: Automatically compose and build layers based on service dependenciesstructuralTypeToSchema: Convert TypeScript interfaces and type aliases to Effect Schema classesmakeSchemaOpaque: Enhanced for v4 with support forCodec,DecodingServices, andEncodingServicestypestypeToEffectSchema: Enhanced to support Effect v4 schema patternsPiping:
Effect.fn, nested pipes, and function call conversionsPatch Changes
68f6d12Thanks @mattiamanzati! - DisableschemaUnionOfLiteralsdiagnostic for Effect v4, asSchema.Unionof multipleSchema.Literalcalls is no longer applicable in v4.v0.73.1Compare Source
Patch Changes
ff72045Thanks @mattiamanzati! - Add wildcard (*) support for@effect-diagnosticscomment directives. You can now use*as a rule name to apply a severity override to all diagnostics at once, e.g.@effect-diagnostics *:offdisables all Effect diagnostics from that point on. Rule-specific overrides still take precedence over wildcard overrides.v0.73.0Compare Source
Minor Changes
#637
616c2ccThanks @mattiamanzati! - Add Effect v4 completions supportSchema.ErrorClassandSchema.RequestClasscompletions for Effect v4Effect.Service,Effect.Tag,Schema.TaggedError,Schema.TaggedClass,Schema.TaggedRequest,Context.Tagself,Rpc.makeclasses,Schema.brand,Model.Class) when Effect v4 is detectedtaggedEnumin addition toTaggedEnumfor v4 API compatibilityv0.72.1Compare Source
Patch Changes
#635
b16fd37Thanks @mattiamanzati! - Fix effectGenToFn refactor to convertEffect<A, E, R>return types toEffect.fn.Return<A, E, R>Before this fix, the "Convert to fn" refactor would keep the original
Effect.Effect<A, E, R>return type, producing code that doesn't compile. Now it correctly transforms the return type:#630
689a012Thanks @mattiamanzati! - Restructure test harness setup by moving shared test utilities and updating package dependenciesv0.72.0Compare Source
Minor Changes
a34f997Thanks @mattiamanzati! - Refactor internal structure and harnessv0.71.2Compare Source
Patch Changes
422087dThanks @mattiamanzati! - Fix CLI patching to targetemitFilesAndReportErrorsfunction instead ofemitFilesAndReportErrorsAndGetExitStatus, updating the injection approach to replace the diagnostics property in the return statement's object literal.v0.71.1Compare Source
Patch Changes
#624
d279457Thanks @mattiamanzati! - AddignoreEffectSuggestionsInTscExitCodeoption (default:true) to control whether Effect-related suggestions affect the TSC exit code. When enabled, suggestions won't causetscto return a non-zero exit code.#622
5eab20aThanks @mattiamanzati! - AddignoreEffectWarningsInTscExitCodeoption to allow Effect-related warnings to not affect the TSC exit code. When enabled,tscwill compile successfully even if Effect warnings are emitted. This is useful for CI/CD pipelines where Effect diagnostics should be informational rather than blocking.v0.71.0Compare Source
Minor Changes
#619
f171350Thanks @mattiamanzati! - AddeffectSucceedWithVoiddiagnostic to suggest usingEffect.voidinstead ofEffect.succeed(undefined)orEffect.succeed(void 0).The diagnostic detects calls to
Effect.succeedwhere the argument is exactlyundefinedorvoid 0(including parenthesized variants) and suggests replacing them with the more idiomaticEffect.void. A quick fix is provided to automatically apply the replacement.Before:
After:
Patch Changes
#621
74ef937Thanks @mattiamanzati! - Improve diagnostic messages forglobalErrorInEffectFailureandglobalErrorInEffectCatchto be more concise and actionable.Before:
After:
v0.70.0Compare Source
Minor Changes
#618
ed689f8Thanks @mattiamanzati! - ImproveglobalErrorInEffectFailurediagnostic to detect global Error type in any Effect failure channel.The diagnostic now works by finding
new Error()expressions and checking if they end up in an Effect's failure channel, rather than only checkingEffect.failcalls. This means it will now detect global Error usage in:Effect.fail(new Error(...))Effect.genfunctions that fail with global ErrorEffect.mapErrorconverting to global ErrorEffect.flatMapchains that include global ErrorThe diagnostic now reports at the
new Error()location for better precision.Patch Changes
#616
b32da44Thanks @mattiamanzati! - ImprovemissedPipeableOpportunitydiagnostic message to show the suggested subject for.pipe(...).Before:
After:
v0.69.2Compare Source
Patch Changes
#612
2b49181Thanks @mattiamanzati! - Improve effectFnIife diagnostic message to suggest Effect.withSpan with the trace name when availableWhen
Effect.fn("traceName")is used as an IIFE, the diagnostic now suggests usingEffect.genwithEffect.withSpan("traceName")piped at the end to maintain tracing spans. ForEffect.fnUntraced, it simply suggests usingEffect.genwithout the span suggestion.#615
ae4f054Thanks @mattiamanzati! - Improve effectFnOpportunity diagnostic with more specific messages and configurable fixeseffectFnconfiguration option to control which code fix variants are offered:"untraced","span","inferred-span","no-span"(defaults to["span"])Effect.withSpanvs inferred trace from function nameBefore:
After:
v0.69.1Compare Source
Patch Changes
990ccbcThanks @mattiamanzati! - Improve effectFnOpportunity diagnostic message to mention that quickfixes are available in the editor or via the CLI quickfixes command.v0.69.0Compare Source
Minor Changes
#608
bc7da1eThanks @mattiamanzati! - AddeffectFnIifediagnostic to warn whenEffect.fnorEffect.fnUntracedis used as an IIFE (Immediately Invoked Function Expression).Effect.fnis designed to create reusable functions that can take arguments and provide tracing. When used as an IIFE,Effect.genis more appropriate.Example:
A quick fix is provided to automatically convert
Effect.fnIIFEs toEffect.gen.v0.68.0Compare Source
Minor Changes
#603
d747210Thanks @mattiamanzati! - AddedinstanceOfSchemadiagnostic that suggests usingSchema.isinstead ofinstanceoffor Effect Schema types.Example:
The diagnostic is disabled by default and can be enabled with
instanceOfSchema:suggestionorinstanceOfSchema:warning.Patch Changes
d63d5dfThanks @mattiamanzati! - ImproveleakingRequirementsdiagnostic message for clarityv0.67.0Compare Source
Minor Changes
#599
4c9f5c7Thanks @mattiamanzati! - AddquickfixesCLI command that shows diagnostics with available quick fixes and their proposed code changes.Example usage:
The command displays each diagnostic along with the available code fixes and a diff preview of the proposed changes, making it easy to see what automatic fixes are available before applying them.
Patch Changes
#601
c0a6da3Thanks @mattiamanzati! - Reduce over-suggestion of effectFnOpportunity diagnostic for regular functions.The diagnostic now only suggests
Effect.fnfor regular functions (not usingEffect.gen) when:Functions using
Effect.genare still always suggested regardless of body size.v0.66.1Compare Source
Patch Changes
#597
3833a10Thanks @mattiamanzati! - ImprovedeffectFnOpportunitydiagnostic message to mention that Effect.fn accepts piped transformations as additional arguments when pipe transformations are detected.When a function has
.pipe()calls that would be absorbed by Effect.fn, the message now includes: "Effect.fn also accepts the piped transformations as additional arguments."v0.65.0Compare Source
Minor Changes
#581
4569328Thanks @mattiamanzati! - AddeffectFnOpportunitydiagnostic that suggests converting functions returningEffect.gentoEffect.fnfor better tracing and concise syntax.The diagnostic triggers on:
Effect.gen(...)Effect.gen(...)Effect.gen(...)Effect.gen(...).pipe(...)patternsIt provides two code fixes:
Effect.fn(traced) - includes the function name as the span nameEffect.fnUntraced- without tracingThe diagnostic skips:
When the original function has a return type annotation, the converted function will use
Effect.fn.Return<A, E, R>as the return type.Example:
#575
00aeed0Thanks @mattiamanzati! - AddeffectMapVoiddiagnostic that suggests usingEffect.asVoidinstead ofEffect.map(() => void 0),Effect.map(() => undefined), orEffect.map(() => {}).Also adds two new TypeParser utilities:
lazyExpression: matches zero-argument arrow functions or function expressions that return a single expressionemptyFunction: matches arrow functions or function expressions with an empty block bodyAnd adds
isVoidExpressionutility to TypeScriptUtils for detectingvoid 0orundefinedexpressions.Example:
#582
94d4a6bThanks @mattiamanzati! - AddedlayerinfoCLI command that provides detailed information about a specific exported layer.Features:
Layer.provide,Layer.provideMerge, andLayer.mergeExample usage:
Also added a tip to both
overviewandlayerinfocommands about usingLayer.mergeAll(...)to get suggested composition order.#583
b0aa78fThanks @mattiamanzati! - AddredundantSchemaTagIdentifierdiagnostic that suggests removing redundant identifier arguments when they equal the tag value inSchema.TaggedClass,Schema.TaggedError, orSchema.TaggedRequest.Before:
After applying the fix:
Also updates the completions to not include the redundant identifier when autocompleting
Schema.TaggedClass,Schema.TaggedError, andSchema.TaggedRequest.#573
6715f91Thanks @mattiamanzati! - RenamereportSuggestionsAsWarningsInTscoption toincludeSuggestionsInTscand change default totrue.This option controls whether diagnostics with "suggestion" severity are included in TSC output when using the
effect-language-service patchfeature. When enabled, suggestions are reported as messages in TSC output, which is useful for LLM-based development tools to see all suggestions.Breaking change: The option has been renamed and the default behavior has changed:
reportSuggestionsAsWarningsInTsc: false(suggestions not included by default)includeSuggestionsInTsc: true(suggestions included by default)To restore the previous behavior, set
"includeSuggestionsInTsc": falsein your tsconfig.json plugin configuration.#586
e225b5fThanks @mattiamanzati! - Add markdown documentation support to setup commandThe setup command now automatically manages Effect Language Service documentation in AGENTS.md and CLAUDE.md files:
Example section added to markdown files:
Patch Changes
#580
a45606bThanks @mattiamanzati! - AddEffect.fnandEffect.fnUntracedsupport to the piping flows parser.The piping flows parser now recognizes pipe transformations passed as additional arguments to
Effect.fn,Effect.fn("traced"), andEffect.fnUntraced. This enables diagnostics likecatchAllToMapError,catchUnfailableEffect, andmultipleEffectProvideto work with these patterns.Example:
#587
7316859Thanks @mattiamanzati! - Mark deprecated TypeScript Signature methods and migrate to property accessorsAdded
@deprecatedannotations to TypeScript Signature interface methods (getParameters,getTypeParameters,getDeclaration,getReturnType,getTypeParameterAtPosition) with guidance to use their modern property alternatives. Updated codebase usage ofgetParameters()to use.parametersproperty instead.#584
ed12861Thanks @mattiamanzati! - Fix TypeError in setup command when updating existing diagnosticSeverity configurationThe setup command was throwing
TypeError: Cannot read properties of undefined (reading 'text')when trying to update thediagnosticSeverityoption of an existing@effect/language-serviceplugin configuration in tsconfig.json.This occurred because TypeScript's ChangeTracker formatter needed to compute indentation by traversing the AST tree, which failed when replacing a PropertyAssignment node inside a nested list context.
The fix replaces just the initializer value (ObjectLiteralExpression) instead of the entire PropertyAssignment, avoiding the problematic list indentation calculation.
#585
7ebe5dbThanks @mattiamanzati! - EnhancedlayerinfoCLI command with output type selection for layer composition.New Features:
--outputsoption to select which output types to include in the suggested composition (e.g.,--outputs 1,2,3)ROutare selectedexport const <name> = ...prefix for easy copy-pasteExample output:
This allows users to see all available outputs from a layer composition and choose which ones to include in the suggested composition order.
#577
0ed50c3Thanks @mattiamanzati! - RefactorcatchAllToMapErrordiagnostic to use the piping flows parser for detecting Effect.catchAll calls.This change also:
outTypeoptional inParsedPipingFlowSubjectto handle cases where type information is unavailable#578
cab6ce8Thanks @mattiamanzati! - refactor: use piping flows parser in catchUnfailableEffect diagnostic#579
2a82522Thanks @mattiamanzati! - refactor: use piping flows parser in multipleEffectProvide diagnostic#570
0db6e28Thanks @mattiamanzati! - Refactor CLI overview command to extract symbol collection logic into reusable utilitycollectSourceFileExportedSymbolsintosrc/cli/utils/ExportedSymbols.tsfor reuse across CLI commands--max-symbol-depthoption to overview command (default: 3) to control how deep to traverse nested symbol properties#574
9d0695eThanks @mattiamanzati! - Remove deprecated ts-patch documentation from README. The Effect LSP CLI Patch is now the only recommended approach for getting diagnostics at compile time.#576
5017d75Thanks @mattiamanzati! - Add piping flows parser for caching piping flow analysis per source file.This internal improvement introduces a
pipingFlowsfunction inTypeParserthat analyzes and caches all piping flows (bothpipe()calls and.pipe()method chains) in a source file. The parser:Effect.map(effect, fn).pipe(...))The
missedPipeableOpportunitydiagnostic has been refactored to use this new parser, improving performance when analyzing files with multiple piping patterns.v0.64.1Compare Source
Patch Changes
#568
477271dThanks @mattiamanzati! - Fix auto-import with namespace import packages generating malformed code when the identifier is at the beginning of the file.When using
namespaceImportPackagesconfiguration and auto-completing an export likeisAnyKeywordfromeffect/SchemaAST, the code was incorrectly generated as:Instead of the expected:
The fix ensures the import statement is added before the namespace prefix when both changes target position 0.
v0.64.0Compare Source
Minor Changes
#567
dcb3fe5Thanks @mattiamanzati! - Added new diagnosticcatchAllToMapErrorthat suggests usingEffect.mapErrorinstead ofEffect.catchAll+Effect.failwhen the callback only wraps the error.Before:
After:
The diagnostic includes a quick fix that automatically transforms the code.
#555
0424000Thanks @mattiamanzati! - AddglobalErrorInEffectCatchdiagnostic to detect global Error types in catch callbacksThis new diagnostic warns when catch callbacks in
Effect.tryPromise,Effect.try,Effect.tryMap, orEffect.tryMapPromisereturn the globalErrortype instead of typed errors.Using the global
Errortype in Effect failures is not recommended as they can get merged together, making it harder to distinguish between different error cases. Instead, it's better to use tagged errors (likeData.TaggedError) or custom errors with discriminator properties to enable proper type checking and error handling.Example of code that triggers the diagnostic:
Recommended approach:
This diagnostic also improves the clarity message for the
leakingRequirementsdiagnostic by adding additional guidance on how services should be collected in the layer creation body.#558
cc5feb1Thanks @mattiamanzati! - AddlayerMergeAllWithDependenciesdiagnostic to detect interdependencies inLayer.mergeAllcallsThis new diagnostic warns when
Layer.mergeAllis called with layers that have interdependencies, where one layer provides a service that another layer in the same call requires.Layer.mergeAllcreates layers in parallel, so dependencies between layers will not be satisfied. This can lead to runtime errors when trying to use the merged layer.Example of code that triggers the diagnostic:
Recommended approach:
The diagnostic correctly handles pass-through layers (layers that both provide and require the same type) and only reports on layers that actually provide dependencies needed by other layers in the same
mergeAllcall.#557
83ce411Thanks @mattiamanzati! - AddmissingLayerContextdiagnostic to detect missing service requirements in Layer definitionsThis new diagnostic provides better error readability when you're missing service requirements in your Layer type definitions. It works similarly to the existing
missingEffectContextdiagnostic but specifically checks theRIn(requirements input) parameter of Layer types.Example of code that triggers the diagnostic:
The diagnostic helps catch type mismatches early by clearly indicating which service requirements are missing when passing layers between functions or composing layers together.
#562
57d5af2Thanks @mattiamanzati! - AddoverviewCLI command that provides an overview of Effect-related exports in a project.The command analyzes TypeScript files and reports all exported yieldable errors, services (Context.Tag, Effect.Tag, Effect.Service), and layers with their types, file locations, and JSDoc descriptions. A progress spinner shows real-time file processing status.
Usage:
Example output:
Patch Changes
#561
c3b3bd3Thanks @mattiamanzati! - Add descriptions to CLI commands usingCommand.withDescriptionfor improved help output when using--helpflag.#565
2274aefThanks @mattiamanzati! - FixunnecessaryPipediagnostic and refactor not working with namespace imports fromeffect/Function(e.g.,Function.pipe()orFn.pipe())#560
75a480eThanks @mattiamanzati! - Improve diagnostic message forunsupportedServiceAccessorswhen used withEffect.TagWhen the
unsupportedServiceAccessorsdiagnostic is triggered on anEffect.Tagclass (which doesn't allow disabling accessors), the message now includes a helpful suggestion to useContext.Taginstead:#559
4c1f809Thanks @mattiamanzati! - Improve Layer Magic refactor ordering by considering both provided and required service countsThe Layer Magic refactor now uses a combined ordering heuristic that considers both:
This results in more optimal layer composition order, especially in complex dependency graphs where layers have varying numbers of dependencies.
#566
036c491Thanks @mattiamanzati! - Simplify diagnostic messages for global Error type usageThe diagnostic messages for
globalErrorInEffectCatchandglobalErrorInEffectFailurenow use the more generic term "tagged errors" instead of "tagged errors (Data.TaggedError)" to provide cleaner, more concise guidance.v0.63.2Compare Source
Patch Changes
#553
e64e3dfThanks @mattiamanzati! - fix: ensure correct path resolution in CLI setupprocess.cwd()explicitly inpath.resolve()for consistent behavioryield*forTsConfigNotFoundErrorv0.63.1Compare Source
Patch Changes
#551
9b3d807Thanks @mattiamanzati! - fix: resolve TypeScript from project's working directoryThe CLI now attempts to resolve TypeScript from the current working directory first before falling back to the package's bundled version. This ensures the CLI uses the same TypeScript version as the project being analyzed.
v0.63.0Compare Source
Minor Changes
#548
ef8c2deThanks @mattiamanzati! - AddglobalErrorInEffectFailurediagnosticThis diagnostic warns when
Effect.failis called with the globalErrortype. Using the globalErrortype in Effect failures is not recommended as they can get merged together, making it harder to distinguish between different error types.Instead, the diagnostic recommends using:
Data.TaggedError_tag)Example:
#545
c590b5aThanks @mattiamanzati! - Addeffect-language-service setupCLI commandThis new command provides an interactive wizard to guide users through the complete installation and configuration of the Effect Language Service. The setup command:
Example usage:
The wizard will walk you through each step and show you exactly what changes will be made before applying them.
#550
4912ee4Thanks @mattiamanzati! - Add support for@effect/sql'sModel.Classin completions and diagnosticseffectSqlModelSelfInClassescompletion: Auto-completes theSelftype parameter when extendingModel.Classfrom@effect/sqlclassSelfMismatchdiagnostic: Now detects when theSelftype parameter inModel.Class<Self>doesn't match the actual class nameExample:
Patch Changes
#547
9058a37Thanks @mattiamanzati! - refactor: simplifyunnecessaryFailYieldableErrordiagnostic implementationChanged the implementation to check if a type extends
Cause.YieldableErroron-demand rather than fetching all yieldable error types upfront.#549
039f4b2Thanks @mattiamanzati! - AddgetTypeAtLocationutility toTypeCheckerUtilsThis refactoring adds a new
getTypeAtLocationfunction toTypeCheckerUtilsthat safely retrieves types while filtering out JSX-specific nodes (JSX elements, opening/closing tags, and JSX attributes) that could cause issues when callingtypeChecker.getTypeAtLocation.The utility is now used across multiple diagnostics and features, reducing code duplication and ensuring consistent handling of edge cases:
anyUnknownInErrorContextcatchUnfailableEffectfloatingEffectglobalErrorInEffectFailureleakingRequirementsmissedPipeableOpportunitymissingEffectServiceDependencymissingReturnYieldStarmultipleEffectProvidenonObjectEffectServiceTypeoverriddenSchemaConstructorreturnEffectInGenscopeInLayerEffectstrictBooleanExpressionsstrictEffectProvideunnecessaryFailYieldableErrorv0.62.5Compare Source
Patch Changes
#543
0b13f3cThanks @mattiamanzati! - Fix unwanted autocompletions inside import declarationsPreviously, Effect., Option., and Either.__ completions were incorrectly suggested inside import statements. This has been fixed by detecting when the completion is requested inside an import declaration and preventing these completions from appearing.
Closes #541
v0.62.4Compare Source
Patch Changes
#539
4cc88d2Thanks @mattiamanzati! - Improve layerMagic refactor to prioritize layers with more provided servicesThe layerMagic refactor now uses a heuristic that prioritizes nodes with more provided services when generating layer composition code. This ensures that telemetry and tracing layers (which typically provide fewer services) are positioned as late as possible in the dependency graph, resulting in more intuitive and correct layer ordering.
Example: When composing layers for services that depend on HttpClient with telemetry, the refactor now correctly places the telemetry layer (which provides fewer services) later in the composition chain.
v0.62.3Compare Source
Patch Changes
e31c03bThanks @mattiamanzati! - Fix counter increment timing in structural type to schema refactor to ensure proper naming of conflicting schemas (e.g.,User_1instead ofUser_0for the first conflict)v0.62.2Compare Source
Patch Changes
#535
361fc1eThanks @mattiamanzati! - Fix duplicate schema names in "Refactor to Schema (Recursive Structural)" code generation.When the refactor encountered types with conflicting names, it was generating a unique suffix but not properly tracking the usage count, causing duplicate schema identifiers with different contents to be generated.
This fix ensures that when a name conflict is detected and a unique suffix is added (e.g.,
Tax,Tax_1,Tax_2), the usage counter is properly incremented to prevent duplicate identifiers in the generated code.Fixes #534
v0.62.1Compare Source
Patch Changes
#532
8f189aaThanks @mattiamanzati! - Fix handling of read-only arrays in "Refactor to Schema (Recursive Structural)" code generation.The refactor now correctly distinguishes between mutable arrays (
Array<T>) and read-only arrays (ReadonlyArray<T>orreadonly T[]):Array<T>is now converted toSchema.mutable(Schema.Array(...))to preserve mutabilityReadonlyArray<T>andreadonly T[]are converted toSchema.Array(...)(read-only by default)This fixes compatibility issues with external libraries (like Stripe, BetterAuth) that expect mutable arrays in their API parameters.
Fixes #531
v0.62.0Compare Source
Minor Changes
#528
7dc14cfThanks @mattiamanzati! - Add typeToSchema codegenThis adds a new
// @​effect-codegens typeToSchemacodegen that automatically generates Effect Schema classes from TypeScript types. Given a type alias with object members representing schemas to generate (e.g.,type ToGenerate = { UserSchema: User, TodoSchema: Todo }), the codegen will create the corresponding Schema class definitions.The generated schemas:
outdatedEffectCodegendiagnostic to provide automatic fix actionsExample usage:
Patch Changes
#530
5ecdc62Thanks @mattiamanzati! - FixRefactor to Schema (Recursive Structural)to supportexactOptionalPropertyTypesWhen
exactOptionalPropertyTypesis enabled in tsconfig, optional properties with types likestring | undefinedare not assignable to types defined asprop?: string. This fix generatesSchema.optionalWith(Schema.String, { exact: true })instead ofSchema.optional(Schema.Union(Schema.Undefined, Schema.String))to maintain type compatibility with external libraries that don't always includeundefinedin their optional property types.Example:
This ensures the generated schema maintains proper type compatibility with external libraries when using strict TypeScript configurations.
v0.61.0Compare Source
Minor Changes
#525
e2dbbadThanks @mattiamanzati! - Add Structural Type to Schema refactorAdds a new "Structural Type to Schema" refactor that converts TypeScript interfaces and type aliases to Effect Schema classes. This refactor analyzes the structure of types and generates appropriate Schema definitions, with intelligent detection and reuse of existing schemas.
Example:
The refactor supports:
Effect-TS/effect (@effect/opentelemetry)
v0.61.0Compare Source
Minor Changes
#5927
f4972edThanks @davidgoli! - Add protobuf protocol support for OTLP exportersThis introduces an
OtlpSerializationservice for choosing between JSON and Protobuf encoding.Breaking changes:
Otlp.layernow requires anOtlpSerializationlayer to be provided forthe desired encoding format.
JSON encoding:
Protobuf encoding:
#5952
4725a7eThanks @clayroach! - Make @opentelemetry/sdk-trace-node and @opentelemetry/sdk-trace-web required peer dependencies instead of optional. This fixes module resolution errors when importing from the main entry point.Patch Changes
#5929
abdab5cThanks @schickling! - FixSpan.addEventto correctly handle the 2-argument overload with attributes.Previously, calling
span.addEvent("name", { foo: "bar" })would throwTypeError: {} is not iterablebecause the implementation incorrectly treated the attributes object as aTimeInput. The fix adds proper runtime type discrimination to distinguish betweenTimeInput(number, Date, or HrTime tuple) andAttributes(plain object).Updated dependencies [
7e925ea,118e7a4,d7e75d6,4860d1e]:v0.60.0Compare Source
Patch Changes
77eeb86,ff7053f,287c32c]:Effect-TS/effect (@effect/platform)
v0.94.5Compare Source
Patch Changes
#6050
d67c708Thanks @tim-smart! - Backport Effect 4contentTypesupport forHttpBodyJSON / URL-encoded constructors andHttpServerResponseJSON / URL-encoded helpers.Updated dependencies [
a8c436f]:v0.94.4Compare Source
Patch Changes
22d9d27Thanks @tim-smart! - FixHttpServerError.causeResponseto prefer 499 when a client abort interrupt is present.v0.94.3Compare Source
Patch Changes
#6021
0023c19Thanks @codewithkenzo! - FixHttpClientRequest.appendUrlto properly join URL paths.Previously,
appendUrlused simple string concatenation which could produce invalid URLs:Now it ensures proper path joining:
#6019
9a96b87Thanks @codewithkenzo! - FixretryTransientto use correct transient status codesChanged
isTransientResponsefromstatus >= 429to an explicit allowlist (408, 429, 500, 502, 503, 504). This correctly excludes 501 (Not Implemented) and 505+ permanent errors, while including 408 (Request Timeout) which was previously missed.Also aligned response retry behavior with v4: the
whilepredicate now only applies to error retries, not response retries. Response retries are determined solely byisTransientResponse. This matches the semantic intent sincewhileis typed for errors, not responses.Fixes #5995
Updated dependencies [
e71889f]:v0.94.2Compare Source
Patch Changes
#5977
118e7a4Thanks @scotttrinh! - AddedrowsandisTTYproperties toTerminalUpdated dependencies [
7e925ea,d7e75d6,4860d1e]:v0.94.1Compare Source
Patch Changes
#5936
65e9e35Thanks @schickling! - Document subtle CORS middlewareallowedHeadersbehavior: when empty array (default), it reflects back the client'sAccess-Control-Request-Headers(permissive), and when non-empty array, it only allows specified headers (restrictive). Added comprehensive JSDoc with examples.#5940
ee69cd7Thanks @kitlangton! - HttpServerResponse: fixfromWebto preserve Content-Type header when response has a bodyPreviously, when converting a web
Responseto anHttpServerResponseviafromWeb, theContent-Typeheader was not passed toBody.stream(), causing it to default toapplication/octet-stream. This affected any code usingHttpApp.fromWebHandlerto wrap web handlers, as JSON responses would incorrectly have their Content-Type set toapplication/octet-streaminstead ofapplication/json.Updated dependencies [
488d6e8]:v0.94.0Compare Source
Minor Changes
ff7053fThanks @tim-smart! - support non-errors in HttpClient.retryTransientPatch Changes
77eeb86,287c32c]:Effect-TS/effect (@effect/platform-browser)
v0.74.0Compare Source
Patch Changes
77eeb86,ff7053f,287c32c]:Effect-TS/effect (@effect/platform-bun)
v0.87.1Compare Source
Patch Changes
#5977
118e7a4Thanks @scotttrinh! - AddedrowsandisTTYproperties toTerminalUpdated dependencies [
7e925ea,118e7a4,d7e75d6,4860d1e]:v0.87.0Compare Source
Patch Changes
77eeb86,ff7053f,287c32c]:Effect-TS/effect (@effect/platform-node)
v0.104.1Compare Source
Patch Changes
#5977
118e7a4Thanks @scotttrinh! - AddedrowsandisTTYproperties toTerminalUpdated dependencies [
7e925ea,118e7a4,d7e75d6,4860d1e]:v0.104.0Compare Source
Patch Changes
77eeb86,ff7053f,287c32c]:Effect-TS/effect (@effect/rpc)
v0.73.2Compare Source
Patch Changes
#6065
94b00c8Thanks @marbemac! - Add optionaldefectparameter toRpc.makefor customizing defect serialization per-RPC. Defaults toSchema.Defect, preserving existing behavior.Updated dependencies [
12b1f1e]:v0.73.1Compare Source
Patch Changes
#6055
598ff76Thanks @marbemac! - FixsendRequestDefectandsendDefectto encode defects withSchema.Defect, preventingErrorobjects from being serialized as{}due to non-enumerable properties.Updated dependencies [
d67c708,a8c436f]:v0.73.0Compare Source
Patch Changes
77eeb86,ff7053f,287c32c]:open-telemetry/opentelemetry-js (@opentelemetry/exporter-trace-otlp-http)
v0.213.0Compare Source
v0.212.0Compare Source
v0.211.0Compare Source
v0.210.0Compare Source
v0.209.0Compare Source
lucide-icons/lucide (lucide-react)
v0.577.0: Version 0.577.0Compare Source
What's Changed
ellipseicon by @KISHORE-KUMAR-S in #3749New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.576.0...0.577.0
v0.576.0: Version 0.576.0Compare Source
What's Changed
package-*icons. by @karsa-mistmere in #4074receipticon by @karsa-mistmere in #4075cuboidicon tags and categories by @karsa-mistmere in #4095cuboidicon by @jamiemlaw in #4098fishing-rodicon by @7ender in #3839Full Changelog: https://github.com/lucide-icons/lucide/compare/0.575.0...0.576.0
v0.575.0: Version 0.575.0Compare Source
What's Changed
message-square-checkicon by @karsa-mistmere in #4076metronomeicon by @edwloef in #4063file-pen-lineicon by @jguddas in #3970square-arrow-right-exitandsquare-arrow-right-entericons by @EthanHazel in #3958flip-*tosquare-centerline-dashed-*by @jguddas in #3945New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.573.0...0.575.0
v0.574.0: Version 0.574.0Compare Source
What's Changed
rocking-chairicon by @jamiemlaw in #3445coinsicon by @jguddas in #3158x-line-topicon by @jguddas in #2838mouse-lefticon by @marvfash in #2788mouse-righticon by @marvfash in #2787New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.572.0...0.574.0
v0.573.0: Version 0.573.0Compare Source
What's Changed
rocking-chairicon by @jamiemlaw in #3445coinsicon by @jguddas in #3158x-line-topicon by @jguddas in #2838mouse-lefticon by @marvfash in #2788mouse-righticon by @marvfash in #2787New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.572.0...0.573.0
v0.572.0: Version 0.572.0Compare Source
What's Changed
message-circle-checkicon by @Shrinks99 in #3770New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.571.0...0.572.0
v0.571.0: Version 0.571.0Compare Source
What's Changed
circle-icons path and circle order by @adamlindqvist in #3746shelving-uniticon by @karsa-mistmere in #3041New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.570.0...0.571.0
v0.570.0: Version 0.570.0Compare Source
What's Changed
towel-rackicon by @jguddas in #3350Full Changelog: https://github.com/lucide-icons/lucide/compare/0.569.0...0.570.0
v0.569.0: Version 0.569.0Compare Source
What's Changed
clipboard-penicon by @Spleefies in #4006mirror-roundandmirror-rectangularby @Muhammad-Aqib-Bashir in #3832Full Changelog: https://github.com/lucide-icons/lucide/compare/0.568.0...0.569.0
v0.568.0: Version 0.568.0Compare Source
What's Changed
clapperboardso slash is no longer protruding by @torfmuer in #3764git-merge-conflicticon by @timmy471 in #3008New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.567.0...0.568.0
v0.567.0: Version 0.567.0Compare Source
What's Changed
infoby @jamiemlaw in #4047gifticon by @jguddas in #3977line-dot-right-horizontalicon by @nathan-de-pachtere in #3742Full Changelog: https://github.com/lucide-icons/lucide/compare/0.566.0...0.567.0
v0.566.0: Version 0.566.0Compare Source
What's Changed
forklifticon by @jguddas in #4069rocketicon by @jguddas in #4067globe-officon by @TimNekk in #4051New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.565.0...0.566.0
v0.565.0: Version 0.565.0Compare Source
What's Changed
lens-concaveandlens-convexby @Muhammad-Aqib-Bashir in #3831Full Changelog: https://github.com/lucide-icons/lucide/compare/0.564.0...0.565.0
v0.564.0: Version 0.564.0Compare Source
What's Changed
database-searchicon by @Spleefies in #4003user-lockicon by @jguddas in #3971bug-officon by @jguddas in #3972bell-doticon by @jguddas in #3973bandageicon by @jguddas in #3967hard-driveicon by @jguddas in #3622git-branchicon by @jguddas in #3938file-cogicon by @jguddas in #3965cloud-alertandcloud-checkicon by @jguddas in #3976user-keyanduser-round-key, updates other-keyicons to match by @karsa-mistmere in #4044New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.563.1...0.564.0
v0.563.0: Version 0.563.0Compare Source
What's Changed
aria-hiddenis by default added to icons components in all packages. This was already added tolucide-reactbefore.Making icons accessible, you can add an
aria-labelor atitle. See docs about accessibility.All changes
star-officon by @jguddas in #3952tickets-planeicon by @jguddas in #3928monitor-officon by @jguddas in #3962lassoicon by @jguddas in #3961cloud-officon by @jguddas in #3942waypointsicon by @karsa-mistmere in #3990bookmarkicon by @jguddas in #2906message-square-dashedicon by @jguddas in #3959cloudyicon by @jguddas in #3966printer-xicon by @lt25106 in #3941New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.562.0...0.563.0
v0.562.0: Version 0.562.0Compare Source
What's Changed
paint-bucketicon by @jguddas in #3880toolboxicon by @karsa-mistmere in #3871New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.561.0...0.562.0
v0.561.0: Version 0.561.0Compare Source
What's Changed
stoneicon by @Alportan in #3850Full Changelog: https://github.com/lucide-icons/lucide/compare/0.560.0...0.561.0
v0.560.0: Version 0.560.0Compare Source
What's Changed
cannabis-officon by @NickVeles in #3748New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.559.0...0.560.0
v0.559.0: Version 0.559.0Compare Source
What's Changed
fishing-hookicon by @7ender in #3837New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.558.0...0.559.0
v0.558.0: Version 0.558.0Compare Source
What's Changed
hdicon by @jamiemlaw in #2958Full Changelog: https://github.com/lucide-icons/lucide/compare/0.557.0...0.558.0
v0.557.0: Version 0.557.0Compare Source
What's Changed
memory-stickicon by @karsa-mistmere in #3017microchipicon by @karsa-mistmere in #3018paint-bucketicon by @jguddas in #3865brush-cleaningicon by @jguddas in #3863thumbs-upthumbs-downpaths to fix fill issue by @theianjones in #3873ticketsicon by @karsa-mistmere in #3859layers-plusicon by @juanisidoro in #3367search-erroricon by @Veatec22 in #3292cloud-syncandcloud-backupby @ericfennis in #3466circle-pileicon by @nathan-de-pachtere in #3681balloonicon by @peteruithoven in #2519New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.556.0...0.557.0
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.62.0to Update bun minor+patch updatesc9112fff52toa36a6dceada36a6dceadtoe0fa6ddcf0e0fa6ddcf0to32dd51932d32dd51932dto1182ba64bb1182ba64bbtoc449b70d80c449b70d80to7573bb614f7573bb614fto05a0de151305a0de1513tocadb35cf78cadb35cf78toc5f82113dac5f82113dato812bc30a1a812bc30a1ato31a9e6989931a9e69899todfa6d6a632dfa6d6a632to65b33052c265b33052c2tof829eae90ef829eae90eto50cb7f6d4050cb7f6d40to4d157063cb4d157063cbto043ead7937043ead7937to95081854299508185429to7a6851f5447a6851f544to4b2e3961ab4b2e3961abto63502dcdfa63502dcdfato2e08b45961View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.