NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3376 most downloaded on npm
JavaScript parser written in OCaml. Produces ESTree AST
Last release 2 days ago
02 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
435 releases · first in 2015
No changes from 0.240.0
No changes from 0.240.0
Likely to cause new Flow errors:
Likely to cause new Flow errors:
obj.type === 'foo'. exampleFunction.prototype.apply and Function.prototype.call are now typed using userland types instead of hardcoded builtin support. You might see slight inference differences, error message and code changing as a result..constructor property of object types. (D58538540 pvekris)void, not empty.New Features:
StringPrefix utility type. This is the type of the remainder of the string after the prefix is removed. For example, "$1", "$2" are subtypes of StringPrefix<'$', '1' | '2'>, but "$999" is not. StringPrefix<X> is equivalent to StringPrefix<X, string>$Values utility type to get the type of the elements of an array type or tuple type....args as a union of tuples). [example]Notable bug fixes:
Library Definitions:
String.codePointAt now returns number | voidOne column per quarter.
Fixed a bug where IDE services doesn't respect files.implicitly_include_root=false config.
Notable bug fixes:
files.implicitly_include_root=false config.Likely to cause new Flow errors:
Likely to cause new Flow errors:
Array.push, Set.add, Map.set, etc). These values are expected to be read-only, and we previously errored on directly setting their props; this release extends this enforcement to method calls as well.implies before the type guard (example try-Flow)New Features:
StringPrefix type represents strings which being with the specified prefix. E.g. StringPrefix<'data-'> allows for 'data-floo' and 'data-bar'. The type argument for this type must be a string literal. [example]globalThis.Notable bug fixes:
new C() will jump to definition of C instead of the constructor definition. Hovering on C will still show the jsdoc on the constructor.as const casts and as casts in flow-remove-typesIDE:
Library Definitions:
shift() and pop() on an Array<T> will now return T | undefined.cause property on Error instance; Support error cause in error constructor optionsFinalizationRegistryCSSSupportsRulecloseAllConnections, closeIdleConnections to https$ServerIn v0.238.1 and v0.238.2, we have bumped the required GLIBC version to v2.35 on Linux. We have now reduced the requirement to v2.31 for x86_64 build o
Misc:
Fixed a bug where a recheck triggered by flow force-recheck doesn't respect files.implicitly_include_root=false config.
Notable bug fixes:
flow force-recheck doesn't respect files.implicitly_include_root=false config.This release is used to test the release automation powered by GitHub Actions. No changes are expected.
This release is used to test the release automation powered by GitHub Actions. No changes are expected.
Likely to cause new Flow errors:
Likely to cause new Flow errors:
react.disable_function_components_default_props that will make Flow ignore defaultProps on function components for React component typing purposes. This flag is now on by default. If this is too disruptive for your codebase, you can turn this off for now. Note that we do not intend to keep this flag forever, so you should try to turn this flag on as soon as possible.React.createElement have an opaque type, which means calling this function directly will be an error. This will be helpful to prepare for React 19 changes. Note that JSX typing is unaffected. If you are not ready for this change, you can override your library definition like this to approximate the previous behavior as much as possible.invalid-component-prop error, Flow will no longer make the entire props to be any type. Instead, Flow will create a Props type as if these invalid props do not exist. exampleObject.freeze({ A: "a", B: "b" }) as {+A: "a", +B: "b"}, ie we use readonly properties and singleton types for literal initializers. Casts like this example will now be an error.untyped-import errors are now on the import source rather than imported names.New Features:
files.implictly_include_root=false (default is true, which is the current behavior), Flow will no longer include everything under the directory where the flowconfig is in by default.Notable bug fixes:
Array.reduce and returning a union type (e.g. try-Flow)[...[]] as [] now works.nested-component errors can now be suppressed.IDE:
({ foo: { | } } as ?{ foo: { x: number }}) it will populate x, when calling autocomplete at the point of the cursor |. (try-Flow)React type-only namespace.<Foo.Bar />.export {Foo} from 'bar' statements will now appear in autoimport results.autoimports_ranked_by_usage is now enabled by default.new C(e)Library Definitions:
useOptimistic and useActionState API definitionsTextDecoderStreamWe added a flag to help prepare your codebase for React 19's defaultProps change. defaultProps on function components will no longer work in React 19.
New Features:
react.disable_function_components_default_props=true, Flow will ignore defaultProps on function components for React typing purposes. Note that we do not intend to keep this flag forever, so you should try to turn this flag on as soon as possible.Fixed an issue that might cause connecting to flow server to fail with out of retries.
Notable bug fixes:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
New Features:
jest_integration=true, Flow will now error on some jest mocking APIs (e.g. jest.mock('./my-module')) if the module doesn't exist.Notable bug fixes:
[...[]] as [] now works.React.ElementConfig/Props when passed in a component syntax component (e.g. try-Flow)React.createFactory libdef is removed. This API is already deprecated and will be removed in React 19.
Likely to cause new Flow errors:
super with a props object. exampleReact.cloneElement. You might see errors being shifted around, and some advanced patterns no longer supported. The API is not encouraged by React, so migrating away from it is recommended.react.runtime=classic, we now type check the JSX unconditionally using the right React.createElement typing, and check whether the locally defined React has the right React.createElement definition. If you have some JSX that's already invalid, you might see different errors. exampleReact$CreateClass type, aliased to any since v0.176, is removed.isValid Flow Enums method, reverting back to behavior from before v0.232.$CharSet, an undocumented feature, has been removed. RegExp$flags, which depends on $CharSet, is also removed. In most cases, you should replace these types with string.--traces and the corresponding flowconfig option has been removed.React.createFactory libdef is removed. This API is already deprecated and will be removed in React 19.Notable bug fixes:
mixed (such as $NonMaybeType<mixed>). (try-Flow examples)Misc:
export type * (ExportAllDeclaration) nodes with flow-remove-types (thanks @jbroma!)Parser:
bigint property to match ESTree spec. Numeric separators are removed (_), and should contain only decimal digits.IDE:
component_syntax=true, autocomplete will provide component and hook keyword in appropriate places.Library Definitions:
$asyncIterator, which is never a real global, is removed from global libdef.$await in the libdef. If you are depending on it like typeof $await, you can replace it with <T>(Promise<T> | T) => T.Likely to cause new Flow errors (copied from 0.235.0 release notes):
Likely to cause new Flow errors (copied from 0.235.0 release notes):
Misc:
flow ast will now parse component syntax rather than reject it. You can pass --no-component-syntax to get the old behavior (D56501290 samzhou19815)Likely to cause new Flow errors:
Likely to cause new Flow errors:
type T = T or type Foo = typeof foo; const foo: Foo = .... In addition to this, you might see some errors being moved around.any.New Features:
EnumValue<>, which represents all Flow Enum values. You can constrain the enum values to those with a particular representation type by supplying the type argument, e.g. EnumValue<string>.Enum<>, which represents all Flow Enums (this is a complement to the new EnumValue type). You can constrain the enums to ones which have a particular enum value, e.g. Enum<> is the same as Enum<EnumValue<>>, and the type of all enums with string representation types is Enum<EnumValue<string>>. These "abstract enums" have no know members, so you can't access members or exhaustively check them, but you can use methods such as .members(), .cast(), etc.=== comparison of abstract Flow Enums as well as Enums themselves with the same ID..valueOf(), e.g. enum E {A, B}; const s: string = E.A.valueOf().Notable bug fixes:
Enum and EnumValue to $NotNullOrVoid - previously there was no supertype for all enum values or enums.IDE:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
Notable bug fixes:
of bigint during parsing. We were previously not correctly inferring that this was a bigint enum.Parser:
ReadOnlyTypeAnnotation in parser output for annotations like readonly string[]. Now we output it as TypeOperator with "operator": "readonly"IDE:
as or as const has low precedenceLibrary Definitions:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
$Compose and $ComposeReverse types are removed. We recommend to use overloads to approximate their behavior instead. e.g.declare export function compose(): <T>(a: T) => T;
declare export function compose<F: (...$ReadOnlyArray<empty>) => mixed>(
f: F,
): F;
declare export function compose<A, T: $ReadOnlyArray<any>, R>(
f1: (a: A) => R,
f2: (...T) => A,
): (...T) => R;
declare export function compose<A, B, T: $ReadOnlyArray<any>, R>(
f1: (b: B) => R,
f2: (a: A) => B,
f3: (...T) => A,
): (...T) => R;
declare export function compose<A, B, C, T: $ReadOnlyArray<any>, R>(
f1: (c: C) => R,
f2: (b: B) => C,
f3: (a: A) => B,
f4: (...T) => A,
): (...T) => R;
declare export function compose<R>(
f1: (b: any) => R,
...funcs: $ReadOnlyArray<(...$ReadOnlyArray<empty>) => mixed>
): (...$ReadOnlyArray<any>) => R;
declare export function compose<R>(
...funcs: $ReadOnlyArray<(...$ReadOnlyArray<empty>) => mixed>
): (...$ReadOnlyArray<any>) => R;
New Features:
isValid Flow Enums method to use a type guard, allowing it to refine its input to the enum type in a conditional context.
E.g.enum Status {Active, Off}
const s = "Active";
if (Status.isValid(s)) {
s as Status; // Should work
}
export type Foo = ... and export interface Bar {...} statements are now allowed in declare module and declare namespace bodies.flow codemod remove-unnecessary-react-import which can help remove unnecessary react imports under react.runtime=automaticNotable bug fixes:
as or as const has low precedenceLibrary Definitions:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
New Features:
method-unbinding errors with indexed access types.relay_integration.esmodules option. When this option, along with relay_integration, is enabled, Flow will treat graphql fragments/queries/etc. as import default rather than require. Use this when you ouput ESM from Relay's codegen (e.g. eagerEsModules).Notable bug fixes:
AsyncGenerator<T, void, void> type is expected (e.g. try-Flow)IDE:
AUTO332 appeared in the result of string literal type completion.Library Definitions:
FileSystem APIs (thanks @ZelJin).StorageManager class (thanks @ZelJin).checkPropTypes, DOM, createClass, ConcurrentMode from react module.import React from 'react', they can also be used without imports, e.g. type N = React.Node.Likely to cause new Flow errors:
Likely to cause new Flow errors:
// a.js
export type Foo = string;
// b.js
const A = require('./a');
module.exports = {...A};
// c.js
// previously allowed, no longer allowed
import type {Foo} from './b';
// a.js
// we incorrectly resolve x to refer to
// be external to the function params,
// which is a global in this case
export function foo(x: string, y: typeof x) {}
// b.js
import {foo} from './a';
foo("", 3); // no error before, errors now
Array = 3; $ReadOnlyArray = 2; Now the latter is banned.value-as-type or recursive-definition errors will no longer affect which branch to take in overload resolution.New Features:
type T = typeof foo<string>. This syntax is supported in prettier since v3.1. If you previously enabled the flag typeof_with_type_arguments=true, you need to remove it.<Foo<string, _, number >propA='d' />. Note that some type arguments can be inferred using the _ syntax.NoInfer intrinsic that will be available in TypeScript 5.4.experimental.ts_syntax=true, Flow will
$ReadOnly<[...]> and $ReadOnlyArray<...> without error.$Keys without error. Note that there are behavior differences between $Keys<> and keyof right now (flow, TS), so use it with caution.unknown never and undefined into Flow equivalent mixed empty and void without error.readonly in out, in out without error.Misc:
experimental.ts_syntax is now always on in https://flow.org/try.Fixed a potential crash under the experimental flag experimental.blocking_worker_communication=false.
Misc:
experimental.blocking_worker_communication=false.Likely to cause new Flow errors:
Likely to cause new Flow errors:
invalid-recursive-exported-annotation will now have error code of recursive-definition.value-as-type errors. (example).declare module will no longer cause parse errors. Instead, they will be errored on during type checking.declare export type and declare export interface statements in toplevel are no longer parser errors. Instead, they will now be errored during type checking.toplevel-library-import errors and unsupported-statement-in-lib errors will all have unsupported-syntax error code now.New Features:
experimental.ts_syntax flag that you can set to true. When this flag is on, Flow will no longer complain about certain TypeScript syntax, and will automatically turn them into the closest Flow equivalent types. Initially, we support the following: Readonly, ReadonlyArray, ReadonlyMap, ReadonlySet, NonNullable, and using extends to specify type parameter bounds. In the future, more kinds of types that we currently parse but error on might be added. (e.g. keyof). Please note that the support here is best effort. We make no guarantee that these types have the same semantics as those in TypeScript 100% of the time, but for common cases, it might be good enough for you.Notable bug fixes:
declare module, all the values will be auto-exported if we cannot decide whether the module is in CJS or ESM. However, support for declare const and declare let was missing. This has now been fixed.Misc:
both the default value for the .flowconfig casting_syntax option, if not supplied.Some new errors might be raised when using React.cloneElement with polymorphic components. Eg. try-Flow. Note that React.cloneElement is deprecated
Likely to cause new Flow errors:
React.cloneElement with polymorphic components. Eg. try-Flow. Note that React.cloneElement is deprecateddeclare module is no longer a parser error, but a type checking errordeclare module is now explicitly banned in nested scope and outside of library definition files. It already does nothing under those contexts.New Features:
prop = (foo: string): number => 3.Notable bug fixes:
flow check to always return 0 errors, when some parts of temporary directory is a symlink.React$Element. (e.g. try-Flow)export function f(a) {}, we now say "Missing type annotation at identifier" instead of "Missing type annotation at array pattern".Parser:
declare namespace Foo {...} statements. The body of the declare namespace statement shares the same restrictions of declare module.declare module are no longer parse errors. They are now type checker errors.Likely to cause new Flow errors:
Likely to cause new Flow errors:
type T = T as empty, instead of any. (e.g. try-Flow)..call() on polymorphic functions where the return type is under-constrained (e.g. try-Flow). To fix add an annotation to the return result.Parser:
Library Definitions:
Array.from overloads. It might cause some error locations and codes to change.window.navigator.storage (thanks @ZelJin).Likely to cause new Flow errors:
Likely to cause new Flow errors:
IDE:
Notable bug fixes:
DOMStringList as iterable, so that it works with Array.from(...) (thanks @bobrovnikov)[fix] disable aggressive behavior of linkedEditingRange requests when there are parse errors
Notable bug fixes:
We improved the inference support for function rest parameters in a generic function. This example can now type check. You can also extract the parame
Notable bug fixes:
%checks is now deprecated. It will still work as before (for now), but if you enable the deprecated-type Flow lint, you will see additional errors. In…
Likely to cause new Flow errors:
%checks is now deprecated. It will still work as before (for now), but if you enable the deprecated-type Flow lint, you will see additional errors. Instead, use type guards.$Call, $ObjMap, $ObjMapi, $ObjMapConst are now deprecated. They will still work as before (for now), but if you enable the deprecated-type Flow lint, you will see additional errors. Since Flow 0.209, you can now use builtin types like Parameters, ReturnType, Pick, Omit to easily extract and transform types. For more advanced use cases, you can read the docs of conditional type and mapped type to understand how to write it in equivalent ways.number keysnumber keysNew Features:
const obj = {1: true, 2: false}Notable bug fixes:
Array.from with string input and also mapping function, e.g. Array.from('str', x => x.length)IDE:
Library Definitions:
crypto object, crypto.getRandomValues, and crypto.randomUUIDStatelessFunctionalComponent type from the 'react' module and the React$StatelessFunctionalComponent type. The name might give an incorrect assumption that Flow can actually check that a function component doesn't use stateful hooks or can be called directly. If you have code that still uses this type, we recommend you use the React.AbstractComponent type, since it forces you to not make any assumption of what kind of React component you are dealing with.Before Flow 0.223, the autoimport system uses the filename as a hint of the name for default export. e.g. if the filename is foo.react.js or foo.js, r
Before Flow 0.223, the autoimport system uses the filename as a hint of the name for default export. e.g. if the filename is foo.react.js or foo.js, regardless of whether the default export in that file has a name or not, or even the default name is bar, autoimport will always import it as import foo from 'foo'.
However, in the new system starting from Flow 0.223, we will use the name of the default export as a stronger hint. In a lot of files that just give a default export a random generic name, they are relying on the old system to get reasonable auto imports.
It's not practical to update every Flow codebase to avoid the UX regression, so now auto-import will provide both options.
Fixed issue with saved state generation used to power auto imports.
Notable bug fixes:
flow status command.Mitigates a bug in Linked Editing Range where typing characters quickly on one side would throw off sync on the other side. With this fix, even if som
Notable bug fixes:
any. (Example: Issue #9107)IDE:
Misc:
incremental_error_collation flowconfig option is not recognized anymore.Library Definitions:
status global from dom.jsReact module. You should always import react with lowercase like require('react') or import React from 'react'Go-to-definition now works for private names
New Features:
Notable bug fixes:
declare export statements in hover and autocomplete. This means that jsdoc for exports in declare module will finally show up in IDE services.Library Definitions:
USBConnectionEventSecurityPolicyViolationEventcrypto.randomUUID, http$Server.closeAllConnections, http$Server.closeIdleConnectionsLikely to cause new Flow errors:
Likely to cause new Flow errors:
React.Fragment to only accept children and the key prop.React.useRef to return an opaque type.any without error.Notable bug fixes:
Performance:
Library Definitions:
IntersectionObserver types.IndexedDB transaction now allows consuming storeNames as DOMStringList.options to IndexedDB transaction.durability to IDBTransaction.We will now provide auto type import for default-exported classes.
Notable bug fixes:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
| voidNotable bug fixes:
Bug fixes in preparation of new feature rollout
Misc:
Bug fixes in preparation of new feature rollout
Misc:
Bug fixes in preparation of new feature rollout
Misc:
Bug fixes in preparation of new feature rollout
Misc:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
React.Element to be an inexact empty object, effectively making it opaque.
React doesn't recommend inspecting children and React.Element, so we make the change to increase friction. See https://react.dev/reference/react/Children#alternatives for alternatives.
To keep existing code type safe, you can add a function like the following to explicitly expose the internal of React.Element:export default function DangerouslyAccessReactElementInternals_DO_NOT_USE_IN_NEW_CODE<
E: React$ElementType,
P,
>(e: React$Element<E, P>): {
+key: React$Key | null,
+props: P,
+ref: any,
+type: C,
} {
return e;
}
A in A extends B ? C : D is a generic type. This is a behavior change that might cause new errors (example). Previously, we distribute over unions in more cases, which contradicts what we said in the docs, and caused some weird behavior that's fixed in this version.propTypes, Flow will now emit signature-verification-failure.New Features:
casting_syntax option which can be colon (current), as, or both. If setting is both, both (x: T) and x as T are allowed. If set to colon or as, only (x: T) and x as T are allowed respectively.Notable bug fixes:
Misc:
React.Element types. Instead, it will insert general types like React.MixedElement.Library Definitions:
CanvasRenderingContext2D.roundRect.tagName to DOM element declarations (thanks @aselbie).Error collation during rechecks should become faster thanks to incremental computation. (Available with the flag --incremental-error-collation.)
New Features:
--incremental-error-collation.)Likely to cause new Flow errors:
Likely to cause new Flow errors:
$ReadOnly, which is previously completely unchecked. It also results in Flow complaining about some incorrect bounds. exampleNew Features:
Notable bug fixes:
obj[m](arg).Misc:
Library Definitions:
Array.prototype.findLastIndex(), String.prototype.at(), TypedArray.prototype.at() and Object.hasOwn() (thanks @pascalduez).URL defintions (thanks @pascalduez).This is same as 0.217.1, but we have some issue publishing 0.217.1 to npm, so we will publish this new version instead.
This is same as 0.217.1, but we have some issue publishing 0.217.1 to npm, so we will publish this new version instead.
Previously, while global find ref/rename (experimental.global_find_ref=true/experimental.global_rename=true) is ongoing, all other IDE services will b
Notable bug fixes:
experimental.global_find_ref=true/experimental.global_rename=true) is ongoing, all other IDE services will be blocked. We fixed it so that other IDE requests can still be served.Likely to cause new Flow errors:
Likely to cause new Flow errors:
React.Element is now opaque, but we still expose some of its internal structure via the bound on the opaque type. You should not depend on the internal structure. In a future release, we plan to make React.Element truly opaque.forwardRef and useImperativeHandle to be write-only. Patterns that rely on refining these params to an object and reading the ref field are misusing these APIs. exampleReact.ElementProps is now more precise when applied to AbstractComponents, resulting in the config type of the component rather than mixed. This will cause errors when elements of components with different props are passed into React.Element<> types.Parser:
typeof annotations. e.g. typeof MyGenericClass<string, number>. Type checking for this syntax is still not supported.Library Definitions:
URLSearchParams definitions (thanks @pascalduez).AbortSignal definitions (thanks @pascalduez).Array copying methods (toReversed, toSorted, toSpliced and with) the $ReadOnlyArray class definitions (thanks @pascalduez).We fixed local find references for namespace imported variables. It will no longer error or return empty results.
Notable bug fixes:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
module.system.haste.use_name_reducers=false is removed. For now this option defaults to true and can only be set to true. The option to set the only possible value will be removed in a future release.Notable bug fixes:
Library Definitions:
USB web API definitions.We fixed a bug that causes us to insert extra quote in autocomplete string literal in indexed access types.
Notable bug fixes:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
New features:
IDE:
Library Definitions:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
$Call, $ObjMap, $ObjMapi, $ObjMapConst, $TupleMap. Previously hidden type errors might be revealed now.tuple_ehancements, conditional_type, mapped_type, type_guards in flowconfig, since these options have been removed. They were enabled by default since v0.212.0.IDE:
Notable bug fixes:
React$AbstractComponent to match the React.AbstractComponent type alias in our libdefs. [try-flow]Library Definitions:
parseArgs to the Node.js util module library definitionFixed a bug where local find references do not return references in jsx props.
Notable bug fixes:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
module.system=haste, it will now be an error if a .js.flow file shadows a .js file with a different path prefix.Notable bug fixes:
Parser:
as/satisfies casts in a row.Library Definitions:
Intl.Locale classLikely to cause new Flow errors:
Likely to cause new Flow errors:
$NonMaybeType, and $ReadOnly. You might see new errors revealed as a result.$Pred and $Refine have been deleted. These are replaced by type guards.New Features:
Pick and Omit to work on interfaces and instances.Notable bug fixes:
IDE:
require, go-to-definition will now jump to the location of the original definition's name.Improve fuzzy matching of autoimports
Notable bug fixes:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
Notable bug fixes:
Parser:
Library Definitions:
Omit type implementation. Now it will preserve the optionality and the variance of the input object. exampleFix a bug where autocompleting a keyword deleted the next 7 characters on the same line
Notable bug fixes:
autoimports_ranked_by_usage=true) to sort autoimports by how often they are imported was influencing the sorting even when the option was not enabled. This was likely an improvement, but it was a bug to not obey the option.Improvements in preparation of new feature rollout
Misc:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
New Features:
Notable bug fixes:
void would appear in autocomplete suggestions more than onceMisc:
Parser:
Library Definitions:
replace and replaceSyncarrayBuffers to Node libdefs for process.memoryUsage()'s return typeBug fixes in preparation of new feature rollout
Misc:
We removed support for React PropTypes. All related Flow builtin types like React$PropType$Primitive are deleted. React has deprecated PropTypes since…
Likely to cause new Flow errors:
React$PropType$Primitive are deleted. React has deprecated PropTypes since v15.5.const x: typeof x = ...). An exception is when the name of the variable appears under an object type constructor. For example, the annotation const o: { f: typeof o } = ... is allowed.Notable bug fixes:
Library Definitions:
e.g. [1, [1,2]].flat() will now correctly have inferred type of Array<number>.Fixed a crash when we are trying to produce a quick fix for missing imports. The autofix for missing imports broken in the previous release would be w
Notable bug fixes:
Likely to cause new Flow errors:
Likely to cause new Flow errors:
IDE:
Notable bug fixes:
function f(x: number, y: typeof x) {})Misc:
Library Definitions:
Your coding agent can read these notes before it upgrades. Set up the MCP server →