astro@7.4.6
-
#18565
cd09986Thanks @praveen-kumary! - Avoids attributing client-only components or scripts to unrelated pages importingastro:i18nby bounding top-level page graph traversal at virtual page entries -
#18608
babd96dThanks @umeraamir69! - Fixes an extra page reload on the first page load after startingastro devwithout an existing.astrodirectory -
#18589
402c0faThanks @astro-factory! - Fixesastro checkexiting with code 0 when@astrojs/checkortypescriptis not installed. The command now exits with code 1 so CI fails instead of silently skipping type checking. -
#18503
54fcdd5Thanks @SwastikTripathi! - Preserves the last-modified date of cached font files and unchanged public files when copying them into the build output. Public-file timestamp preservation respects the resolved public-directory configuration, follows source symlinks, and avoids backdating files overwritten by build plugins. -
#18605
76cd239Thanks @astro-factory! - Fixes theglob()loader adding files from a folder excluded with a negation pattern such as!_docswhen they change duringastro dev -
#18432
ed60d82Thanks @alexmv! - Improves theMissingSharperror to include the reason Sharp failed to load, such as its prebuilt binaries not supporting the current CPU -
#18474
59543c3Thanks @miottid! - Fixes i18n fallback for on-demand rendered pages. A locale-prefixed request for a page that only exists in the fallback locale (for example/de/aboutwithfallback: { de: 'en' }) was answered with status302and noLocationheader. Such requests are now rewritten or redirected to the fallback locale according toi18n.routing.fallbackType, including encoded paths and sites with a configuredbase. Query strings are preserved, and explicit page statuses and redirects are left unchanged. -
#18541
cfa2d2bThanks @ump45nose! - FixesmatchAllRoutesto considerfallbackRoutes, matchingmatchRouteand the production router. Dev-server i18n fallback requests now resolve to the source route's metadata instead of the 404 route, and SSR-only fallback candidates can fall through the prerender handler. -
#18602
d856064Thanks @astro-factory! - Fixesastro checklosing the end of its output, including theResultsummary, when stdout is piped to a slow reader. When the reader closes the pipe early, for exampleastro check | head,astro checknow exits with code 1 instead of crashing with anEPIPEstack trace. -
#18574
da0f149Thanks @astro-factory! - Fixes an unnecessary full page reload inastro devwhen a content loader callsstore.clear()orstore.delete()and the content store has no asset imports -
#18570
e71c038Thanks @astro-factory! - Fixes pages using<ClientRouter />briefly showing the top of the page on reload before jumping back to the previous scroll position. Full reloads now use the browser's native scroll restoration. -
#18531
f75553bThanks @praveen-kumary! - Fixes an unhandledTypeError: Cannot convert undefined or null to objectwhen callingroute.generate()without arguments on static routes
@astrojs/react@7.1.3
- #18535
b21d724Thanks @praveen-kumary! - Preserves component-rendered resource links, including stylesheets, preloads, and modulepreloads, in React island output. Automatic React resource hints are also preserved so that authored links are not removed during server rendering.
@astrojs/cloudflare@14.4.5
- #18562
9055de2Thanks @astro-factory! - Fixes the passthrough/_imageendpoint returning a 404 instead of304 Not Modifiedwhen the browser revalidates a cached local image withIf-None-Match. Revalidation supports weak ETags, tag lists, and wildcard conditions for local and allowed remote images while preserving image-type validation. - Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4
@astrojs/vercel@11.0.19
- #18631
3106e0aThanks @florian-lefebvre! - Fixes Vercel builds that crash on unrecognized NFT dependency-resolution warnings
@astrojs/node@11.1.10
- #18563
8a92f7cThanks @astro-factory! - Fixes on-demand routes receiving an empty request body on Node.js 26 whenstaticHeadersis enabled
Release 2026-11-05
-
#10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
-
#10729: Add a request body reset action that restores the original example, falling back to schema-generated values, without refreshing the page.
Expose
ObjectDoc.documentSourceas the base URI for resolving relative references in object documents. Add translation keys for restoring a body and creating an example from its schema.Resolved request body baselines are included in workspace exports but are not persisted in IndexedDB. After an IndexedDB reload or loading an older export, the first reset reconstructs the baseline from the original document, which may refetch external references and does not reapply configured overrides.
- #10852: Show API responses for any HTTP status the server returns, including codes outside 200–599. Preserve network response statuses instead of passing them to the restricted
Responseconstructor. Keep streaming completion snapshots bodyless and cloneable so history does not consume or buffer the live stream. - #10732: Keep Paths extensions out of request-body snapshots, resets, default routing, and path parameter synchronization. Hide unselected Paths and Path Item extension sections in the classic layout.
- #10735: Reduce embedded hydration state, recover from damaged state, and preserve the client button during server rendering.
- #10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
- #10732: Render Paths Object and Path Item extensions alongside operation extensions within each operation in both layouts. Preserve arbitrary Paths Object extension values during browser loading and server preprocessing, and exclude them from operation navigation and tag/auth edits.
- #10662: Supply the plugin-aware specification extension renderer by default in API reference components while preserving custom renderer overrides. Export scrollTargetId from the helpers entry point for custom layouts.
- #10733: Render configured and plugin extensions on AsyncAPI channels, operations, messages, servers, and replies.
- #10841: Fix the "Auth Required" badge panel briefly overflowing the viewport on hover by mounting the floating panel together with its content, so Floating UI positions it at its real width on first render.
- #10755: fix: add space below section dividers and between the last untagged operation and the next section in the classic layout
- #10733: Align AsyncAPI message and server extensions with their surrounding content and reduce excess spacing.
- #10734: Select an available server when a live API description update removes the previously selected server URL.
- #10805: fix: keep the page on the newest navigation target while an earlier target is still rendering
- #10771: Wrap operation titles without spaces, such as webhook names, on narrow screens instead of pushing the page wider than the viewport.
- #10732: Keep Paths extensions out of request-body snapshots, resets, default routing, and path parameter synchronization. Hide unselected Paths and Path Item extension sections in the classic layout.
- #10735: Preserve server-rendered API content during hydration by restoring the preloaded document state before the first browser render.
- #10869: Revert selected API description uploads in full mode until the backend supports them with agent-key authorization. Full mode uses the agent key's registered documents again.
- #10818: Open search much faster for API descriptions whose models reference each other by expanding each schema only once while building the search index. Preserve property descriptions through shared reference aliases and stop reading wide compositions at the traversal budget.
- #10820: Keep search responsive for API descriptions whose models reference each other by indexing schema fields up to 6 edges deep instead of 64. Fields nested more deeply no longer match their operations in search.
- #10819: Open search faster by reading each schema once per search index build, however many operations reference it.
- #10735: Reduce embedded hydration state, recover from damaged state, and preserve the client button during server rendering.
- #10771: Place request actions below the method and path in narrow fallback cards, keeping button labels readable without clipping.
- #10845: Prevent custom CSS and themes from closing style elements in generated HTML.
- #10862: Show post-response scripts, the agent and request history the response headers the API sent, instead of the values the Scalar proxy sets to protect its origin.
- #10865: Show empty response headers under their own name, instead of the internal
X-Scalar-Original-*name the Scalar proxy uses. - #10845: Prevent custom CSS and themes from closing style elements in generated HTML.
-
#10619: Add
bundleWithDiagnosticsto report reference failures with authored source locations, retain incomplete output, and defer pruning until resolution succeeds. Add opt-in document-aware traversal for OpenAPI, AsyncAPI, and JSON Schema, including literal data boundaries and applicable reference siblings. Preserve cached sources across diagnostic bundle calls.Use consistent URI fragment decoding across bundling and the magic proxy, and index newly exposed document fragments without revisiting unrelated subtrees.
- #10786: Resolve
$refpointers with percent-encoded reserved characters, so#/paths/~1items%23listnow points at the/items#listpath instead of resolving to nothing. Preserve literal property names when resolving schema IDs and anchors, including keys containing/,~, or percent sequences.
- #10809: feat: add an
onResponsehook to observe or replace the response for each request
- #10808: fix: match concrete paths before templated ones, so
/pets/mineis answered by its own operation even when the document declares/pets/{petId}first - #10810: fix: leave an object document passed to
createMockServerunchanged instead of bundling it in place - #10812: fix(mock-server): include deprecated schemas in XML responses, so a response whose schema is deprecated no longer comes back with an empty XML body
- #10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
-
#10732: Render Paths Object and Path Item extensions alongside operation extensions within each operation in both layouts. Preserve arbitrary Paths Object extension values during browser loading and server preprocessing, and exclude them from operation navigation and tag/auth edits.
-
#10777: fix: allow
x-orderandx-scalar-ignoreon OAuth2 flows in theauthentication.securitySchemesconfiguration, so reordering or hiding flow tabs no longer causes a TypeScript error -
#10729: Add a request body reset action that restores the original example, falling back to schema-generated values, without refreshing the page.
Expose
ObjectDoc.documentSourceas the base URI for resolving relative references in object documents. Add translation keys for restoring a body and creating an example from its schema.Resolved request body baselines are included in workspace exports but are not persisted in IndexedDB. After an IndexedDB reload or loading an older export, the first reset reconstructs the baseline from the original document, which may refetch external references and does not reapply configured overrides.
-
#10729: Add a request body reset action that restores the original example, falling back to schema-generated values, without refreshing the page.
Expose
ObjectDoc.documentSourceas the base URI for resolving relative references in object documents. Add translation keys for restoring a body and creating an example from its schema.Resolved request body baselines are included in workspace exports but are not persisted in IndexedDB. After an IndexedDB reload or loading an older export, the first reset reconstructs the baseline from the original document, which may refetch external references and does not reapply configured overrides.
-
#10730: Generate valid examples for known string formats in request bodies, including dates, times, durations, addresses, URIs, pointers, regular expressions, and version-specific UUIDs. Preserve existing password, binary, and unknown-format fallbacks.
Also generate formatted query and header values in code samples and querystring parameters. Versioned UUID formats (
uuid1–uuid8) now use matching version bits instead of the generic UUID, including in mock-server and response examples. Generate date/time values at request time so reused schemas stay current in long-lived tabs. -
#10732: Render Paths Object and Path Item extensions alongside operation extensions within each operation in both layouts. Preserve arbitrary Paths Object extension values during browser loading and server preprocessing, and exclude them from operation navigation and tag/auth edits.
-
#10862: Show post-response scripts, the agent and request history the response headers the API sent, instead of the values the Scalar proxy sets to protect its origin.
-
#10732: Keep Paths extensions out of request-body snapshots, resets, default routing, and path parameter synchronization. Hide unselected Paths and Path Item extension sections in the classic layout.
-
#10787: Resolve a relative document URL against the page before bundling, so external references in that document are fetched instead of being resolved to a root path that no loader handles.
-
#10804: perf: build with the TypeScript 7 native compiler
-
#10812: Keep deprecated schemas and properties in generated JSON and XML examples by default. Remove the
includeDeprecatedoption; deprecation no longer filters example values. Read/write and optional-property filtering still apply.
- #10837: Set the
text/htmlcontent type before sending the API reference, so the page renders with@nestjs/platform-node, whosesend()treats strings as plain text.
- #10846: Explicitly type the Nuxt module export so dependency checks can trace its schema dependency before building.
- #10862: Show post-response scripts, the agent and request history the response headers the API sent, instead of the values the Scalar proxy sets to protect its origin.
- #10869: Revert selected API description uploads in full mode until the backend supports them with agent-key authorization. Full mode uses the agent key's registered documents again.
- #10733: Align AsyncAPI message and server extensions with their surrounding content and reduce excess spacing.
- #10814: fix(blocks): keep explicit badge colors above themed utility defaults
- #10771: Place request actions below the method and path in narrow fallback cards, keeping button labels readable without clipping.
- #10812: Keep deprecated schemas and properties in generated JSON and XML examples by default. Remove the
includeDeprecatedoption; deprecation no longer filters example values. Read/write and optional-property filtering still apply.
- #10845: Prevent custom CSS and themes from closing style elements in generated HTML.
- #10742: Restore the 1.4 default for highlighted code block containers after the highlighter migration, including plain text and blank lines, while allowing Markdown to retain its own spacing.
- #10849: Make code block containers own line spacing so highlighted text, plain text, blank lines, and line numbers use the same height. ScalarCodeBlock defaults to 1.4 and Markdown fenced code defaults to 1.5; override either with --scalar-code-line-height on the component or an ancestor. The shared highlighting stylesheet preserves the 1.4 default for direct consumers with a zero-specificity container rule, so existing container overrides still take precedence.
- #10735: Cancel the pending selected-option scroll when a combobox is unmounted.
- #10843: Prevent opening or navigating combobox options from scrolling the surrounding page before the picker is positioned.
- #10849: Make code block containers own line spacing so highlighted text, plain text, blank lines, and line numbers use the same height. ScalarCodeBlock defaults to 1.4 and Markdown fenced code defaults to 1.5; override either with --scalar-code-line-height on the component or an ancestor. The shared highlighting stylesheet preserves the 1.4 default for direct consumers with a zero-specificity container rule, so existing container overrides still take precedence.
-
#10792: Reuse the JSON/YAML normalizer from
@scalar/json-magicso JSON documents with a leading UTF-8 BOM parse correctly. Malformed JSON arrays no longer fall back to YAML parsing.The exported
normalizefunction now uses the shared signature(content: unknown) => unknown; callers must narrow the parsed result before accessing its properties.
- #10862: Show post-response scripts, the agent and request history the response headers the API sent, instead of the values the Scalar proxy sets to protect its origin.
- #10845: Prevent custom CSS and themes from closing style elements in generated HTML.
-
#10823: Send cookies with the Cookie request header in Node fetch, ofetch, and undici snippets, merge existing cookie headers in Node and axios snippets, and use the browser cookie store in JavaScript fetch, ofetch, and axios snippets.
Preserve both explicit Cookie headers and structured cookies across the other HTTP header-based generators, including curl, wget, Ruby, Go, Swift, Objective-C, Rust, Dart, Clojure, R, Kotlin, C#, PHP cURL, Python http.client, and C libcurl. Include structured cookies in raw HTTP examples.
Explain cookie header entries without
=in browser snippets instead of silently dropping them. -
#10838: Generate valid Python literals for boolean JSON request bodies in Requests, HTTPX, and aiohttp snippets.
-
#10838: Preserve root JSON scalars in browser Fetch, Node Fetch, Undici, clj-http, and Objective-C NSURLSession code examples instead of converting booleans to objects, omitting false bodies, or rejecting JSON fragments.
- #10824: Maintain the CSS color picker locally and declare its Lezer dependency so imports work with strict package-manager layouts.
- #10734: Refresh color swatches when background parsing updates the syntax tree.
- @scalar/api-reference@1.77.0
- #10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
- @scalar/api-reference@1.77.0
- #10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
- @scalar/api-reference@1.77.0
- #10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
- @scalar/api-reference@1.77.0
- #10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
- #10728: Add per-document authentication overrides merged with global defaults and an optional security scheme allowlist for the authentication UI.
- @scalar/api-reference@1.77.0
-
#10825: Expose additional UI, code sample, OAuth redirect, and service URL configuration in the Java integrations.
-
#10825: Support inline API descriptions, document titles and slugs, and grouped authentication preferences in the Java integrations.
Escape HTML page titles and preserve configured source URLs while applying inline-content precedence during rendering.
-
#10821: Add Spring Boot localization options for locale, text direction, and custom UI translations in WebMVC and WebFlux.
-
#10827: Support path-based API Reference navigation and deep-link reloads in Spring WebMVC and WebFlux.
- #10811: feat(mock-server): allow disabling request validation in the Docker image with the
--no-validate-requestflag or theVALIDATE_REQUEST=falseenvironment variable, so requests that violate the API description get a mock response instead of a422
- @scalar/api-reference@1.77.0
- @scalar/api-reference@1.77.0
@docx-editor.dev/vue@2.35.0
- 6c10913: File > Print now asks which markup to print and whether comments print, and passes the choice to the PDF handler as
view.displayModeandview.comments. SetprintSettings: falseon the menu to print the current view without asking.
- 1aa7918: When the toolbar collapses an image's controls into the "⋯" panel, Wrap text, Alt text, Image properties, and Insert image now show as full-width rows that open their menu, popover, or dialog on a click. Before, each showed a plain-text label beside a small icon, and only the icon took a click.
- Updated dependencies: @docx-editor.dev/core@2.35.0, @docx-editor.dev/i18n@2.35.0
@docx-editor.dev/react@2.35.0
- 6c10913: File > Print now asks which markup to print and whether comments print, and passes the choice to the PDF handler as
view.displayModeandview.comments. SetprintSettings: falseon the menu to print the current view without asking.
- 1aa7918: When the toolbar collapses an image's controls into the "⋯" panel, Wrap text, Alt text, Image properties, and Insert image now show as full-width rows that open their menu, popover, or dialog on a click. Before, each showed a plain-text label beside a small icon, and only the icon took a click.
- Updated dependencies: @docx-editor.dev/core@2.35.0, @docx-editor.dev/i18n@2.35.0
@docx-editor.dev/pro@2.35.0
- 68ad495: Add Compare documents, which records the differences between two documents as tracked changes, in the editor, through
Document.compareFromBase64, or withcompareDocuments. The dialog compares in a worker by default, with progress and cancel. - 5ab8978: A new link in a collaboration session now adds the hyperlink style when the document has a styles part without one, as it does outside a session. Undo of that link keeps the style for links that other participants made, and participants who add the style while apart end with one copy.
- 5993bd2: Stop the browser from suggesting saved form entries in the comment and reply fields.
- 29535a6: Correct the
customNodesOfreference documentation, which now states that it reads every story, including headers, footers, and notes. - e61aaec: Formatting a paragraph that has many differently formatted runs, and opening such a paragraph, now takes time in proportion to its length. Fixes #1796.
- Updated dependencies: @docx-editor.dev/core@2.35.0, @docx-editor.dev/react@2.35.0, @docx-editor.dev/vue@2.35.0