eslint-plugin-formatjs: 6.7.0-rc.0
6.7.0-rc.0 (2026-09-13)
intl-messageformat: 12.0.0-rc.0
12.0.0-rc.0 (2026-09-13)
- intl-messageformat: intl-messageformat, @formatjs/intl, and react-intl now require TypeScript 5.4 or newer, including projects that do not enable typed messages.
vue-intl: 7.2.20-rc.0
7.2.20-rc.0 (2026-09-13)
- The following workspace dependencies were updated
- dependencies
- @formatjs/intl bumped to 5.0.0-rc.0
- dependencies
@formatjs/svelte-intl: 1.1.20-rc.0
1.1.20-rc.0 (2026-09-13)
- The following workspace dependencies were updated
- dependencies
- @formatjs/intl bumped to 5.0.0-rc.0
- dependencies
@formatjs/intl: 5.0.0-rc.0
5.0.0-rc.0 (2026-09-13)
- @formatjs/intl: @formatjs/intl and react-intl formatter generics now use <Values, RichOutput>. Migrate explicit rich-output calls to formatMessage<Values, RichOutput> or $t<Values, RichOutput>.
- intl-messageformat: intl-messageformat, @formatjs/intl, and react-intl now require TypeScript 5.4 or newer, including projects that do not enable typed messages.
- @formatjs/intl: put ICU contracts before rich output types (#7372) (c388333)
- intl-messageformat: require TS 5.4 and add typed ICU contracts (#7370) (e8620f8)
- The following workspace dependencies were updated
- dependencies
- intl-messageformat bumped to 12.0.0-rc.0
- dependencies
react-intl: 11.0.0-rc.0
11.0.0-rc.0 (2026-09-13)
- @formatjs/intl: @formatjs/intl and react-intl formatter generics now use <Values, RichOutput>. Migrate explicit rich-output calls to formatMessage<Values, RichOutput> or $t<Values, RichOutput>.
- intl-messageformat: intl-messageformat, @formatjs/intl, and react-intl now require TypeScript 5.4 or newer, including projects that do not enable typed messages.
- @formatjs/intl: put ICU contracts before rich output types (#7372) (c388333)
- intl-messageformat: require TS 5.4 and add typed ICU contracts (#7370) (e8620f8)
- The following workspace dependencies were updated
- dependencies
- @formatjs/intl bumped to 5.0.0-rc.0
- intl-messageformat bumped to 12.0.0-rc.0
- dependencies
v0.6.1
Astryx 0.6.1 — all @astryxdesign/* packages ship at this version.
npx astryx upgrade --apply
- Remove the prefix requirement from theme-local tokens (#6285)
- Add ScrollableArea and useScrollableArea for accessible, logical-axis native scrolling with explicit overscroll policy. (#6262) Scrollable viewports now become keyboard reachable only while content effectively overflows, preserve logical edge state across writing modes, apply contained overscroll only on active axes, avoid capturing Sticky while fitting unless explicitly requested, expose standard container sizing props, and integrate optional content padding plus opt-in full bleed with the shared container geometry system.
- BaseTypeahead: preserve input props and keep results accessible in narrow layouts (#6179) BaseTypeahead now forwards its inherited DOM and styling props to the combobox input, preserves native input attributes unless a defined legacy alias overrides them, keeps empty result lists valid for assistive technology, counts visible characters for
minQueryLength, and keeps both the popup and long result content within viewport gutters. - BottomSheetSwitcher: let the topmost nested layer handle Escape before a non-modal flow. (#6184)
- BreadcrumbItem preserves valid outside focus on menu light dismiss and labels menus from rich trigger content (#6206)
- Center: preserve component-owned axis reflection and correct the horizontal-centering example. (#6207)
- Localize Chart accessibility text and complete its consumer guidance. (#6247)
- defer clear focus restoration for pointer/touch taps to prevent page scroll jumps while preserving synchronous focus restoration on keyboard activation and properly composing
onPointerDowninInputClearButton(#5440) - Prefer canonical component target names in maintained themes and new examples while preserving deprecated runtime aliases and released bare prop/state selector classes through the 0.7.0 removal window. Theme discovery labels deprecated targets, theme build warns with each exact canonical replacement, and
astryx upgrade --applyprovides the forward-compatible bare-selector migration. (#6126) - Field inputs no longer paint above the sticky AppShell header while scrolling (#5689). Field now contains its local stacking layers (the input surface's z-index and the attached status layer) behind an
isolation: isolateboundary on the field surface, so they cannot compete with page-level stacking; the AppShell header keeps its normal stacking level. - TextInput's
onEnterno longer fires for the Enter that commits an IME conversion (Japanese/Chinese/Korean input);onKeyDownstill receives the raw event. (#6082)
- AspectRatio: show the
ratioprop in its JSX form (#6093) The best-practice line told readers to express the ratio as a fraction like16/9without showing it in JSX, and nothing else in the CLI output givesratioan example. Rewrites it toratio={16 / 9}and names the string form as a type error.
-
Load an installed integration even when no
astryx.confignames it (#6202) A package the project declares as a dependency, and that ships a rootastryx.integration.*manifest, is now loaded on sight — no config entry required. A scaffold that adds the dependency and writes no config used to leave the integration invisible: its components, templates, docs and codemods all reported as missing, which is indistinguishable from not having installed it at all.Only DECLARED dependencies are probed —
dependencies,devDependenciesandoptionalDependencies— and only by key.node_modulesis never walked, so a transitive dependency of a dependency cannot contribute; and because the value is never parsed, a dependency that is not a semver range (npm:aliases,workspace:,file:,link:,catalog:) resolves like any other. Identity comes from the resolved package's ownname, so an aliased dependency reports the package it actually is, and two dependency keys naming one package load it once.An explicit
astryx.configentry keeps its precedence and its position, and a dependency whose manifest fails to load is dropped quietly rather than reported as the consuming project's problem.astryx doctorgains animplicit-integrationsline naming each integration linked this way, the package.json field that declared it, and what it contributes — so an author can answer "why can the CLI see this?" without reading the CLI's source, and an unused-dependency check has something to read that says the dependency is load-bearing. The line is always informational, so the doctor CI gate is unaffected. -
Replace executable gap-report writers with composable handlers. (#6200) Gap reports now fan out to every configured handler — project config first, then each loaded integration in config order — instead of selecting one writer. Each handler gets its own report copy and an abort signal under a 30 s budget. A failed handler cannot stop later handlers, and the aggregate receipt shows every outcome.
Public types:
GapReportHandlerreplacesGapReportWriter; the handler receives a normalizedGapReportevent and returns a strictGapReportHandlerReceipt. Project config gains agapReportfield; the integration named export uses the same type. -
Add integration authoring and packed-package verification.
astryx integration add <kind> <name>and the per-kindintegrationAddComponent,integrationAddDoc,integrationAddTemplate,integrationAddCodemod,integrationAddAgentDoc, andintegrationAddThemeAPIs write complete contributions. Existing component, docs, template, and theme commands see the package being authored without publishing it first.astryx integration pack --checkproves the same contributions survive the npm tarball and that packed components remain available through their public imports. Doctor now names source-only components, unreachable metadata, codemods outside a version folder, and invalid version folders. (#6245) -
Remove the prefix requirement from theme-local tokens (#6285)
-
Add upgrade receipts and safe three-way reconciliation for ShadCN-copied compositions. (#6228)
-
Let integration packages contribute source themes (#6245) An integration can declare a themes root using the same bundle shape as Astryx's built-in themes. Installed themes now appear in
theme list, andtheme addcan copy one by owner.
- build: recommend
template <name> --skeletonin the kit payload when the top page is not a direct match, matching what the renderer already tells a human (#6255) - Center: preserve component-owned axis reflection and correct the horizontal-centering example. (#6207)
astryx component <Name>'s plain-text output always showedimport {Name} from '@astryxdesign/core/...', even for a component owned by an integration package. The JSON response already resolved the import against the correct owner, but the command's text formatter recomputed its own hint via the core-only resolver and ignored that value. (#5294) The command now uses the already-resolvedimportfield from the component's detail response, so the plain-text output matches the JSON output and shows the integration's own package.- Prefer canonical component target names in maintained themes and new examples while preserving deprecated runtime aliases and released bare prop/state selector classes through the 0.7.0 removal window. Theme discovery labels deprecated targets, theme build warns with each exact canonical replacement, and
astryx upgrade --applyprovides the forward-compatible bare-selector migration. (#6126) componentandsearchnow report the same import specifier for an integration component, resolved once infoundation/discovery/component-discovery.mjs.searchpreviously returned the bare package name, which does not resolve for a package whose components are exported behind subpaths. (#6203)- Keep ShadCN composition upgrades safe in JavaScript projects and publish precompiled JSX with strict TypeScript declarations. (#6246)
- Make generated ShadCN compositions match the exact bytes written by the stock client, include package peer dependencies, and require full-catalog install/build coverage in CI. (#6231)
- Keep copied integration theme files inside the target project. (#6270)
- Show all seven dashboard page templates in the templates gallery and playground. (#6264)
- Prefer canonical component target names in maintained themes and new examples while preserving deprecated runtime aliases and released bare prop/state selector classes through the 0.7.0 removal window. Theme discovery labels deprecated targets, theme build warns with each exact canonical replacement, and
astryx upgrade --applyprovides the forward-compatible bare-selector migration. (#6126)
- Prefer canonical component target names in maintained themes and new examples while preserving deprecated runtime aliases and released bare prop/state selector classes through the 0.7.0 removal window. Theme discovery labels deprecated targets, theme build warns with each exact canonical replacement, and
astryx upgrade --applyprovides the forward-compatible bare-selector migration. (#6126)
- Prefer canonical component target names in maintained themes and new examples while preserving deprecated runtime aliases and released bare prop/state selector classes through the 0.7.0 removal window. Theme discovery labels deprecated targets, theme build warns with each exact canonical replacement, and
astryx upgrade --applyprovides the forward-compatible bare-selector migration. (#6126)
Thanks to everyone who contributed to this release:
@andrskr @cixzhang @Cypher-Aura-19 @ernestt @Geervan @josephfarina @kentonquatman @Kyujenius @ManoharPaturi
Full Changelog: https://github.com/facebook/astryx/compare/v0.6.0...v0.6.1
v0.34.0
This release hardens request configuration and proxy handling, adds caller diagnostics and cancellation context, and tightens TypeScript header types.
- Header Types: TypeScript now rejects header values that are Promises, functions, or objects with custom toString() methods. Resolve promises, call functions, or explicitly convert objects before assigning header values. Supported scalar, array, and grouped headers remain available. (#11209)
- Proxy Routing: NO_PROXY / no_proxy entries now support IPv4 and IPv6 CIDR ranges. Previously ineffective ranges now cause matching IP destinations to bypass the proxy; review existing ranges when upgrading. (#11172)
- Request Configuration: Prevent inherited properties from influencing form serializer options, default request methods, headers on interceptor-returned configs, and HTTP redirect hooks. Applications relying on inherited options must define those values as own properties. (#11172)
- Hostname Processing: Replace quadratic regular-expression backtracking in proxy bypass hostname normalization with a linear scan, preventing excessive processing of crafted redirect hostnames. (#11172)
- Caller Diagnostics: Enable captureCallerStack: true on a request or instance to append original caller frames to asynchronous error stacks. Disabled by default. (#11209)
- Cancellation Context: Preserve AbortSignal.reason as CanceledError.reason, including objects and falsy values. Native and structural signals retain their identity and live getters through config merging. (#11209)
- Proxy Protocols: Accept HTTP(S) proxy schemes with or without a trailing colon, including casing and surrounding whitespace variations. Invalid nonempty strings now fail before connecting with ERR_BAD_OPTION_VALUE; redirect failures retain ERR_FR_REDIRECTION_FAILURE wrapping. Omitted protocols continue to inherit the target protocol. (#11182)
- Request Interceptors: Route synchronous interceptor and dispatch failures through response interceptors. Await recovery promises before dispatch; rejected recovery prevents sending the request, while successful recovery retains the last request config and ignores recovery return values. (#11209)
- Error Compatibility: Allow Axios to load alongside a read-only Error.prototype.toJSON, while preserving supplied own property descriptors and setters. (#11209)
- Publishing and Tests: Use npm bundled with Node in the v0 publishing workflow and replace the FormData browser test’s external HTTP request with a Jasmine-Ajax stub. (#11084)
- Repository Cleanup: Add .codex/ to .gitignore. (#11033)
- Release Preparation: Update package and runtime version metadata to 0.34.0. (#11217)
Full Changelog: https://github.com/axios/axios/compare/v0.33.0...v0.34.0
Release 2026-09-13 13:19
Release 2026-09-13 13:19
- router-core: review follow-ups for Link stack (#8410) (bc57fa3f12) by @schiller-manuel
- react-router: treat Link params and search as immutable inputs (#8380) (465c85a734) by @schiller-manuel
- history: normalize memory history hrefs (#8359) (8fff7fa1f2) by @Sheraff
- router-core: match the current location lazily in buildLocation (#8406) (1e6d9c8062) by @schiller-manuel
- react-router: memoize Link and forward refs without an effect (#8405) (92719bd586) by @schiller-manuel
- react-router: fewer hooks per Link (#8404) (d740d8bf2d) by @schiller-manuel
- router: keep the location cache client-only and slim Link SSR (#8390) (b747fb8891) by @schiller-manuel
- router-core: keep search middleware collection optimized (#8385) (9448caa03a) by @schiller-manuel
- router-core: stop structurally sharing search and state in buildLocation (#8382) (6cfb1e8b56) by @schiller-manuel
- router: reuse location-independent Link destinations (#8370) (e9396c9289) by @schiller-manuel
- router-core: streamline route initialization (#8327) (634da9176e) by @schiller-manuel
- vue-router: remove redundant match fragment (#8326) (cb8749e9fc) by @schiller-manuel
- router-core: reduce navigation allocations (#8325) (700a714c5f) by @schiller-manuel
- react-router: reduce Link runtime allocations (#8324) (6387d581ea) by @schiller-manuel
- router-core: consolidate interpolation caches (#8321) (d76a33284b) by @schiller-manuel
- router-core: compact navigation parameter resolution (#8328) (f151ab018e) by @schiller-manuel
- router: optimize Link state props across frameworks (#8318) (9b2adaf8c3) by @schiller-manuel
- router: share Link pathname interpolation (#8252) (7e349c3071) by @schiller-manuel
- history: avoid generating unused location keys (#8349) (ae68535929) by @LadyBluenotes
- history: avoid temporary arrays in memory history (#8352) (f021f6d1c6) by @LadyBluenotes
- history: use lightweight history for server rendering (#8354) (9872d2ac39) by @Sheraff
- react-router: one key set and one assembly path for Link props (#8401) (f2ff324b7a) by @schiller-manuel
- router-core: clarify segment interpolation (#8319) (873c830ccb) by @schiller-manuel
- @tanstack/history@1.162.4
- @tanstack/react-router@1.170.36
- @tanstack/react-router-devtools@1.167.2
- @tanstack/react-start@1.168.53
- @tanstack/react-start-client@1.168.34
- @tanstack/react-start-rsc@0.1.52
- @tanstack/react-start-server@1.167.41
- @tanstack/router-cli@1.167.36
- @tanstack/router-core@1.171.30
- @tanstack/router-devtools@1.167.2
- @tanstack/router-devtools-core@1.168.2
- @tanstack/router-generator@1.167.36
- @tanstack/router-plugin@1.168.38
- @tanstack/router-vite-plugin@1.167.38
- @tanstack/solid-router@1.170.34
- @tanstack/solid-router-devtools@1.167.2
- @tanstack/solid-start@1.168.51
- @tanstack/solid-start-client@1.168.33
- @tanstack/solid-start-server@1.167.40
- @tanstack/start-client-core@1.170.30
- @tanstack/start-plugin-core@1.171.43
- @tanstack/start-server-core@1.169.35
- @tanstack/start-static-server-functions@1.167.35
- @tanstack/start-storage-context@1.167.32
- @tanstack/vue-router@1.170.33
- @tanstack/vue-router-devtools@1.167.2
- @tanstack/vue-start@1.168.50
- @tanstack/vue-start-client@1.167.36
- @tanstack/vue-start-server@1.167.40