build(deps): bump preact from 10.29.1 to 10.29.2#2707
Conversation
Bumps [preact](https://github.com/preactjs/preact) from 10.29.1 to 10.29.2. - [Release notes](https://github.com/preactjs/preact/releases) - [Commits](preactjs/preact@10.29.1...10.29.2) --- updated-dependencies: - dependency-name: preact dependency-version: 10.29.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
|
Suggested comment for Cursor review (copy and paste as a new comment): Note: GitHub Actions bot cannot trigger Cursor agent directly. Please copy the above comment to invoke the review. |
Build Branch
Static preview entry points
QR codes (mobile preview)
Integration commandsnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", branch: "pr-releases/dependabot/npm_and_yarn/main/preact-10.29.2")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/npm_and_yarn/main/preact-10.29.2
git -C submodules/content-scope-scripts checkout origin/pr-releases/dependabot/npm_and_yarn/main/preact-10.29.2Pin to exact commitnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", revision: "d0eff66c1dc52813c41c507d871a0120f07b5438")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/npm_and_yarn/main/preact-10.29.2
git -C submodules/content-scope-scripts checkout d0eff66c1dc52813c41c507d871a0120f07b5438 |
There was a problem hiding this comment.
Web Compatibility Assessment
special-pages/package.json:46,package-lock.json:8453-8461, 11363- info: This is a dependency-only bump frompreact10.29.1to10.29.2. The upstream source delta is limited to Preact diffing behavior aroundtextareadefaultValue/hydration and a clone guard for nodes with constructors. Noinjected/srccode, API wrappers, DOM prototype patches, messaging, or platform entry points are changed, so the injected-page API-surface and hostile-page compatibility risk is low.
Security Assessment
special-pages/package.json:46,package-lock.json:8453-8461, 11363- info: No new dependencies, peer dependencies, network calls, messaging paths, captured-global usage, or injected runtime code are introduced.npm viewshows no dependency/peer-dependency surface change between the two Preact versions.
Risk Level
Low Risk - the PR only updates the pinned Preact patch version used by special-pages; it does not touch injected protections, wrappers, message bridge security checks, or remote-config behavior.
Recommendations
- Wait for the remaining CI jobs to finish, especially
special-pagesintegration tests in Chromium/WebKit. - No code changes requested from this review. Local verification:
npm run test-unit -w special-pagespassed (104tests).
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Dependency review: no blocking dependency-specific concerns found.
Confirmed scope: this PR only bumps special-pages' direct preact dependency from 10.29.1 to 10.29.2 and updates the lockfile tarball/integrity.
Changelog impact reviewed:
- Runtime changes between
10.29.1...10.29.2are narrow: textareahydrate()handling fordefaultValue/valueand a deeper JSON/VNode injection guard. The remaining upstream changes are release workflow/CODEOWNERS/trusted-publishing metadata. - I found no
hydrateusage inspecial-pages, so the textarea hydration fix does not appear to affect current app paths. - The JSON/VNode injection guard is security-positive.
special-pagesdoes parse native/string JSON in a few places and renders many remote/native-provided values, so taking the hardening patch is preferable to staying on10.29.1. - The package publisher changes from
jdecroocktoGitHub Actionsbecause upstream moved to trusted publishing.preact@10.29.2includes npm provenance/attestation metadata, andnpm audit signaturesverified installed registry signatures.
Validation performed:
npm cinpm run test-unit -w special-pages(104/104 pass)npm run build -w special-pagesnpm audit signatures(verified registry signatures/attestations)npm audit --omit=dev --jsondoes not reportpreact; it reports existing unrelated transitive advisories inlodashandpicomatch.
CI note: build and Ubuntu special-pages unit checks are passing. Some PR checks are still pending. Current semver_label/asana sync failures appear to be CI/secrets issues (ANTHROPIC_API_KEY / ASANA_ACCESS_TOKEN missing), not caused by this dependency bump.
No separate fix PR drafted because I did not find a dependency-update issue that needs code changes.
Sent by Cursor Automation: Review dependabot
[Beta] Generated file diffTime updated: Fri, 22 May 2026 10:34:53 GMT AndroidFile has changed Apple
File has changed Integration
File has changed Windows
File has changed |
There was a problem hiding this comment.
Dependency risk review: no confirmed blocking concerns.
Evidence checked:
- Diff only bumps
preactfrom10.29.1to10.29.2inspecial-pages/package.jsonand updates the root lockfile tarball/integrity. No transitive dependency drift. - Upstream
10.29.2runtime changes are limited to textareahydrate()handling plus acloneNode()guard that prevents deeply nested JSON-shaped VNode objects from rendering. The rest of the upstream diff is release/workflow metadata for trusted publishing. - Local usage search found
special-pagesrenders withrender(), nothydrate(), and did not find app textarea usage, so the documented textarea hydration fix has no current runtime exposure here. - Preact remains a required direct dependency:
special-pagesimportspreact,preact/hooks, and@preact/signalsbroadly across app and shared UI code.
Validation run on a detached worktree at PR head bf41fc0af:
npm cinpm run test-unit --workspace=special-pages-> 104 passednpm run build --workspace=special-pagesnpm run test-int --workspace=special-pages -- --reporter list-> 685 passed, 45 skipped
Uncertain/residual risk:
- Dependabot notes a new npm releaser (
GitHub Actions) because Preact moved to trusted publishing. I verified npm metadata has the expected10.29.2integrity matching the lockfile and a registry signature, but I did not independently audit Preact's repository/environment controls beyond the public upstream workflow/release notes.
No fix PR drafted because I found no concrete issue needing a change. I did not push changes to this PR.
Sent by Cursor Automation: Review dependabot
There was a problem hiding this comment.
Dependency review: no blocking concerns found.
Evidence reviewed:
- PR diff only updates
special-pagesdirect production dependencypreactfrom^10.29.1to^10.29.2and the corresponding lockfile tarball/integrity entry. - Upstream
preact10.29.2 changelog/compare shows a small runtime patch: textareavalue/defaultValuehydration handling plus a defensive JSON-injection/VNode-cloning edge-case fix; other changes are upstream release workflow/CODEOWNERS/devtools metadata. - Repo usage check:
special-pagesdoes not callhydrate(; textarea usage found is client-rendered UI, mainly the New Tab omnibar/telemetry debug paths. JSON parsing exists in mocks/page bootstrap paths, but I did not find parsed JSON being rendered directly as a VNode payload. preactis still required:special-pagesimportspreact/preact/hooksbroadly, and@preact/signalspeers on it.
Validation run locally after npm ci resolved preact@10.29.2:
npm run build -w special-pagespassednpm run test-unit -w special-pagespassed: 104 testsnpm run test-int -w special-pages -- --project integration --reporter listpassed: 315 passed, 1 skipped
CI evidence: GitHub checks show special-pages unit tests on Linux/Windows and special-pages Chromium/WebKit integration checks passing. Snapshot checks were still pending when reviewed, so visual-regression coverage should still be allowed to finish.
No separate fix PR drafted because I did not identify a fix needed for this dependency bump. Note: npm audit --omit=dev still reports existing production-tree findings in lodash and picomatch, but they are not introduced by this preact update.
Sent by Cursor Automation: Review dependabot


Bumps preact from 10.29.1 to 10.29.2.
Release notes
Sourced from preact's releases.
Commits
fce6ed710.29.2 (#5091)84581d0Fix buggy edge case (#5090)5a39554Add CODEOWNERS for GitHub configuration (#5088)562e0f5Fix trusted publishing workflow (#5084)3a01255Trusted publishing (#5072)cae8d3aFix migrations when we have defaultValue or value on a textarea (#5081)Maintainer changes
This version was pushed to npm by GitHub Actions, a new releaser for preact since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Note
Low Risk
Low risk dependency patch update limited to
preact, with changes confined to version/resolution updates inspecial-pagesand the lockfile.Overview
Updates
special-pagesto usepreact10.29.2(from10.29.1) and refreshespackage-lock.jsonto the new resolved tarball and integrity hash.Reviewed by Cursor Bugbot for commit 5821854. Bugbot is set up for automated code reviews on this repo. Configure here.