Skip to content

Release 0.77.5 - #3775

Merged
odlbot merged 6 commits into
releasefrom
release-candidate
Aug 17, 2026
Merged

odlbot merged 6 commits into
releasefrom
release-candidate

Conversation

@odlbot

@odlbot odlbot commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

Shankar Ambady

Tobias Macey

renovate[bot]

renovate Bot and others added 6 commits August 13, 2026 12:49
* adding toggle setting for retrieving resources results from payload

* add constants for excluding items from payload

* fetch directly from payload

* ensure vector search does not prefetch opensearch results

* make sure nested content file is retrieved

* remove irrelevant field
…3772)

* perf(metadata): skip the jsdom sanitize for markup-free descriptions

standardizeMetadata calls htmlToPlainText on every server-rendered page, and on
the server isomorphic-dompurify is jsdom, so every render allocated a real DOM
fragment -- including for descriptions containing no markup at all. The homepage
pays it for the constant "Learn with MIT".

Return early when the input has neither a tag nor an entity to decode. The guard
tests for `<` or `&` rather than `<` alone: "Tom &amp; Jerry" has no tags but
still needs decoding, and skipping that would silently leave the entity in the
meta description. collapseWhitespace still runs on the fast path, so trimming
behaviour is unchanged.

This narrows the per-render allocation, not the module-level jsdom import, which
is a one-time cost.

Refs #3771

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XBP7CuQXmxLnPNjQvk4aCz

* test(metadata): assert the fast path skips sanitize, not just its output

The previous assertions could not fail if the fast path were removed: DOMPurify
round-trips markup-free input unchanged, so "2 > 1" and friends produce the same
string down either branch. Verified by deleting the guard -- all 11 output-level
tests still passed.

Spy on DOMPurify.sanitize instead and assert it does not run for markup-free
input, which is the allocation this change exists to avoid. Also assert the
inverse for tags and entities, so widening the guard until entities skip
decoding fails loudly rather than silently regressing meta descriptions.

With the guard removed, exactly the 4 new negative assertions fail.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XBP7CuQXmxLnPNjQvk4aCz

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* add fix by constraining to percolate index

* paginate results
@odlbot
odlbot requested a review from a team as a code owner August 17, 2026 13:46
@github-actions

Copy link
Copy Markdown

OpenAPI Changes

No changes detected

View full changelog

Unexpected changes? Ensure your branch is up-to-date with main (consider rebasing).

@odlbot
odlbot merged commit 6aac001 into release Aug 17, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants