Skip to content

implement onSubChange for FID-based registration#9996

Merged
Doris-Ge merged 4 commits into
mainfrom
my-fix-fcm-on-sub
May 23, 2026
Merged

implement onSubChange for FID-based registration#9996
Doris-Ge merged 4 commits into
mainfrom
my-fix-fcm-on-sub

Conversation

@Doris-Ge

@Doris-Ge Doris-Ge commented May 22, 2026

Copy link
Copy Markdown
Contributor

@Doris-Ge Doris-Ge requested review from a team and zwu52 as code owners May 22, 2026 21:03
@changeset-bot

changeset-bot Bot commented May 22, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 3ab80ac

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the FCM registration revocation and refresh logic, renaming deleteTokenInternal to revokeRegistrationInternal and introducing refreshFidRegistrationIfStored to handle push subscription changes for FID-based registrations. Feedback highlights a high-severity issue where VAPID keys are not persisted for FID-only registrations, potentially causing refreshes to use default keys. It is also recommended to explicitly clear legacy tokens during FID refreshes and to ensure that both legacy and FID registrations are independently revoked on the server to maintain consistent state.

Comment thread packages/messaging/src/helpers/fid-change-registration.ts Outdated
Comment thread packages/messaging/src/helpers/fid-change-registration.ts
Comment thread packages/messaging/src/internals/token-manager.ts
@Doris-Ge Doris-Ge force-pushed the my-fix-fcm-on-sub branch from f1f4f0e to a46f59a Compare May 22, 2026 21:35
- Update onSubChange to notify window clients when FID registration is refreshed. Previously it did not notify clients.
- Update refreshFidRegistrationIfStored to return the current FID.
- Update onSubChange to use the returned FID and only notify if the refresh was successful.
- Add unit tests to verify client notification on success, failure, and when not registered.
- Fix a lint error in window-listener.ts by adding the FidRegisteredPayload interface.
@Doris-Ge Doris-Ge force-pushed the my-fix-fcm-on-sub branch from 801c3b2 to 3ab80ac Compare May 23, 2026 19:44
@Doris-Ge

Copy link
Copy Markdown
Contributor Author

Manual testing on a test app were done to verify that changes in this PR do not break existing functionalities. Also verified that onSubChange change works by simulating a pushsubscription change and verifying that the onRegistered callback is invoked.

@Doris-Ge Doris-Ge merged commit cbb1953 into main May 23, 2026
49 of 50 checks passed
@Doris-Ge Doris-Ge deleted the my-fix-fcm-on-sub branch May 23, 2026 21:45
rebehe added a commit that referenced this pull request Jun 16, 2026
* feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

* feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

* Create four-bottles-marry.md

* docgen

* PR feedback

* Update packages/firestore/src/lite-api/stage_options.ts

Co-authored-by: Daniel La Rocque <dlarocque@google.com>

* Improve ref doc

* More search refDoc improvements

* Consistent capitalization of search within ref docs

* remove deleted rut file

* docs devsite

---------

Co-authored-by: Daniel La Rocque <dlarocque@google.com>

* chore: Update picomatch and rollup-plugin-typescript2 (#9892)

* build(deps): bump picomatch from 2.3.1 to 2.3.2

Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Upgrade picomatch and rollup-plugin-typescript2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat(ai): ImageConfig and FinishReasons (#9819)

* fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

* implement remote store target mapping

* Add spec test for removeTarget race condition

* cleanup

* Update packages/firestore/src/remote/remote_store.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* cleanup

* Create loud-camels-cross.md

* Fix PR concerns and new tests

* Cleanup possible leak in watchChangeAggregator

* fix build issue with spec tests

* Fix integration test failure when running against public api

* another build fix

* Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

* lint

* add Remote and SDK TargetID types

* Fix tests for SDK and Remote TargetId types

* refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

* Remove unnecessary  values passed to watchRemoves

* Removed unused helpers

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.13.5...v1.15.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: migrate test functions to v2 (#9910)

* feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

* chore(data-connect): update documentation and names in stream transport (#9846)

* rename in preparation for future changes

* finish renaming + updating comments

* minor typo fix

* feat(data-connect): add query de-duplication to stream transport (#9850)

* rename in preparation for future changes

* finish renaming + updating comments

* minor typo fix

* add de-duping - now for tests

* add de-duplication tests for invokeQuery

* finish invoke operation dedupe tests

* add subscribe de-duping as well

* add more query dedupe tests

* chore(data-connect): clean up streaming tests a bit (#9851)

* rename in preparation for future changes

* finish renaming + updating comments

* minor typo fix

* add de-duping - now for tests

* add de-duplication tests for invokeQuery

* finish invoke operation dedupe tests

* add subscribe de-duping as well

* add more query dedupe tests

* clean up stream tests

* clean up promise types in streaming tests

* Pasta/bucatini resume refactor (#9885)

* add test changes

* add transportchanges

* finalize changes, run yarn format

* finalize changes based on reviewer feedback

* feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

* initial implementation - now for testing

* finish tests

* merge pasta/bucatini-resume-refactor

* address reviewer comments

* remove old comments

* address reviewer comments

* feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

* WIP

* first pass

* fixing names

* tidying up, fixing tests

* fixed tests

* address reviewer comments

* address reviewer comments and harden close/cleanup lifecycle

* address reviewer comments

* make listener registering and unregistering more robust

* merge main, add changeset

* chore: fix e2e tests for functions and AI (#9924)

* Version Packages (#9923)

Release v12.13.0

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

* fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

* reduce idle cooldown to instant

* run yarn format and add changeset

* update changelog

* fix(ai): Fix sendMessageStream bug that sends duplicate user turns (#9956)

* build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /e2e/smoke-tests (#9958)

Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v7.5.5...protobufjs-v7.5.8)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.5.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(firestore): skip database source test that is timing out (#9966)

* test(firestore): skip database source test that is timing out

The test database keeps growing, causing this tests executionn time to
keep growing, repeatedly exceeding new timeouts we set. For now, let's
just skip this test.

* add eslint disable

* fix(auth): retry IndexedDB availability check on startup failure (#9845)

* fix(auth): retry IndexedDB availability check on startup failure

In environments like Chrome Extension Manifest V3 Service Workers, the initial IndexedDB transaction upon a cold start can sometimes drop or timeout. Previously, `_isAvailable()` would immediately catch the error, assume IndexedDB is broken, and silently fall back to `inMemoryPersistence`.

This updates `_isAvailable()` to use the `_withRetries()` helper, ensuring it benefits from the same retry logic as actual storage operations. This prevents the SDK from incorrectly abandoning existing IndexedDB auth state.

Fixes #9732

* style(auth): run yarn format

* chore: add changeset for IndexedDB availability check retry

* fix(auth): robust IndexedDB connection handling and test stability

* build(deps-dev): bump protobufjs in /packages/firestore (#9960)

Merge rules bypassed due to errant format diff.

Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's releases</a>.</em></p>
<blockquote>
<h2>protobufjs: v7.5.6</h2>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.6/CHANGELOG.md">protobufjs's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
</ul>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a> (2025-08-15)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>invalid syntax in descriptor.proto (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
</ul>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a> (2025-05-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>descriptor extensions handling post-editions (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
</ul>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a> (2025-05-14)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>ensure that types are always resolved (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2068">#2068</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/4b51cb2b8450b77f9f5de1c562e7fae93b19d040">4b51cb2</a>)</li>
</ul>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.0...protobufjs-v7.5.1">7.5.1</a> (2025-05-08)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>optimize regressions from editions implementations (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2066">#2066</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6406d4c18afae309fc7b5f4a24d9674d85da180b">6406d4c</a>)</li>
<li>reserved field inside group blocks fail parsing (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2058">#2058</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/56782bff0c4b5132806eb1a6bc4d08f930c4aaad">56782bf</a>)</li>
</ul>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.0">7.5.0</a> (2025-04-15)</h2>
<h3>Features</h3>
<ul>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/f04ded3a03a3ddd383f0228e2fe2627a51f31aa3">f04ded3</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/ac9a3b9fe3134d48187e41b08d54ffaceddc6c1b">ac9a3b9</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/e5ca5c84e326699e10258367883a54934e0bfe14">e5ca5c8</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a84409b47f9ba0dba56da1af8054fb54f85d85a1">a84409b</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/9c5a178c4b59e0aa65ecac0bd7420171213b2ff9">9c5a178</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/b2c686721e3b63d092419fa1cbe58e1deb89534e">b2c6867</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/60f3e51087ca2c247473410f39331e1c766aefef">60f3e51</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a6563617de04d510d6e8865eb6c5067f10247f64">a656361</a>)</li>
<li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/869a95b1e5f553c76243aac45619061407a41084">869a95b</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/2189e5beeca6a70e4c104dfdb9fb8200bc5f81fe"><code>2189e5b</code></a> chore: release protobufjs-v7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2174">#2174</a>)</li>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454"><code>75392ea</code></a> fix: Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)</li>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/8af8d7c0e9800879625f7d0d4a7fb51beb4410cd"><code>8af8d7c</code></a> chore(ci): Fix 7.x release please configuration (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2169">#2169</a>)</li>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/e92ca42244ad67203b48d836290062dae037ead6"><code>e92ca42</code></a> chore(ci): Enable release-please for 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2166">#2166</a>)</li>
<li>See full diff in <a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for protobufjs since your current version.</p>
</details>
<br />

* build(deps): bump @protobufjs/utf8 (#9952)

Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dcodeIO/protobuf.js/releases">@​protobufjs/utf8's releases</a>.</em></p>
<blockquote>
<h2>protobufjs-cli: v1.1.1</h2>
<h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">1.1.1</a> (2023-02-02)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>cli:</strong> fix relative path to Google pb files (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/1859">#1859</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2">e42eea4</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/644d588c0495da6a570344248e1b5af901bc3b0c"><code>644d588</code></a> chore: release master (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1865">#1865</a>)</li>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2"><code>e42eea4</code></a> fix(cli): fix relative path to Google pb files (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1859">#1859</a>)</li>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/dce9a2ef92d363752e40b295b0da9bd178f82e83"><code>dce9a2e</code></a> fix: use bundled filename to fix common pb includes (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1860">#1860</a>)</li>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/64e8936ad9f73c68b3fa1e57857dd38323b5a745"><code>64e8936</code></a> fix: use ES5 style function syntax (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1830">#1830</a>)</li>
<li><a href="https://github.com/protobufjs/protobuf.js/commit/4489fa771464bcb49b57149760e9cc4131e8077e"><code>4489fa7</code></a> Revert &quot;fix: error should be thrown (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1817">#1817</a>)&quot; (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1864">#1864</a>)</li>
<li>See full diff in <a href="https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">compare view</a></li>
</ul>
</details>
<br />

* build(deps): bump @protobufjs/utf8 (#9949)

Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

---
updated-dependencies:
- dependency-name: "@protobufjs/utf8"
  dependency-version: 1.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump protobufjs from 7.5.5 to 7.5.8 (#9973)

Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v7.5.5...protobufjs-v7.5.8)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.5.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump protobufjs-cli from 1.1.3 to 1.2.1 (#9955)

Bumps [protobufjs-cli](https://github.com/protobufjs/protobuf.js) from 1.1.3 to 1.2.1.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-cli-v1.1.3...protobufjs-cli-v1.2.1)

---
updated-dependencies:
- dependency-name: protobufjs-cli
  dependency-version: 1.2.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump protobufjs from 7.4.0 to 7.5.9 in /e2e/data-connect (#9977)

Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.4.0 to 7.5.9.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.9/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v7.4.0...protobufjs-v7.5.9)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.5.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feature(firestore): added minimum and maximum FieldValue operations (#9913)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(changelog-generator): fix postinstall build failure (#9948)

The fix has two parts:

1. Add `"types": ["node"]` to tsconfig.

2. Fix an incorrect type cast in `index.ts`. The parsed GitHub API response
   was being cast to the DOM `Response` type to access its `.body` property,
   which is wrong — `Response.body` is a `ReadableStream`, not a string. The
   actual value is the parsed JSON from the GitHub PR API, whose `body` field
   is `string | null` per the API schema. Updated the cast accordingly.

Resolves #9947

* Feat/messaging api series (#9917)

* fix(app-check): Fix getLimitedUseToken() (#9987)

* fix(remoteconfig): Stopping last running experiment must call updateActiveExperiments (#9981)

Context: Currently, experiments are updated at activation only if the fetch response explicitly contains an experiments payload.

Problem: When the last running experiment is stopped, the fetch response returns experiments as undefined. This causes the client to skip the update call entirely, meaning the local state never registers that the experiment was stopped.

Fix: If fetch response does not contain experiments, pass an empty list to update

* fix(firestore): improved robustness and logging in query listen stream creation and re-creation (#9985)

* implement onSubChange for FID-based registration (#9996)

* implement onSubChange for FID-based registration

* Persist VAPID key in FID registration metadata to fix re-registration issue

* Enforce mutual exclusivity of token and FID registrations in DB layer

* Notify clients in onSubChange on successful FID refresh

- Update onSubChange to notify window clients when FID registration is refreshed. Previously it did not notify clients.
- Update refreshFidRegistrationIfStored to return the current FID.
- Update onSubChange to use the returned FID and only notify if the refresh was successful.
- Add unit tests to verify client notification on success, failure, and when not registered.
- Fix a lint error in window-listener.ts by adding the FidRegisteredPayload interface.

---------

Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>

* feat(ai)!: Add explicit `initializeDeviceModel()` method when using hybrid (#9800)

* feat(ai): Update tags to mark hybrid inference features as GA (#9926)

* Version Packages (#10004)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(auth,app-check): Fix Auth/AppCheck ReCAPTCHA Enterprise conflict (#9991)

* fix(remoteconfig) Support ABT realtime when variant value matches default value of parameter

When an experiment is added whose variant value matches default value, the parameter key is not listed as updated. This becomes a problem when the client app calls activate only on config change as the experiment will not get started

Before fix - https://screencast.googleplex.com/cast/NDgxNTYwNjU0NDA3MjcwNHxiOWY1MmIyNy1iMQ
After fix - https://screencast.googleplex.com/cast/NDcxODUwODQ0MDAyNzEzNnwzODc2YTRlMC01MA

* chore: Add explicit types to tsconfig (#10015)

* Update CODEOWNERS for auth packages (#10001)

* feat(app-check,app): Add ability for App Check to initialize with a default provider (#10023)

* chore(ci): make all firestore integration tests optional (#10028)

* merge off pipeline into main (#9929)

* chore(ci): make all firestore integration tests optional

* fix: align expressions and pipelines, address review comments, update yarn.lock, and fix package versions

* chore: update yarn.lock after merge

* fix: restore firestore package version and devDependencies to 4.15.0

* fix(ai): format systemInstruction string in ChatSession constructor (#10026)

* fix(ai): format systemInstruction string in ChatSession constructor

* adding a changeset file

* test(ai): verify systemInstruction in sendMessage and sendMessageStream

* remove extra folder in changeset

* remove extra changeset file

* restore deleted file

* adding check if systemInstruction is not null/undefined

* simplify systemInstruction assignment

* fix lint error

* revert to original structure

* docs(firestore): fix formatting for pipelines docs (#9908)

* docs(firestore): fix formatting for docs code snippets

- Fixes `findNearest` example doc formatting, which was causing
  formatting to be lost for all subsequent APIs in the TOC in devsite.
- Removes `Example:` and `<p>Example:` from before all code examples,
  since we use `@example` for this.

* add changeset firebase

* Update packages/firestore/src/lite-api/pipeline.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* update docs

* docs(firestore): fix ref doc issues for piplines (#9912)

* docs(firestore): fix ref doc issues for piplines

* Update packages/firestore/src/lite-api/pipeline.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update packages/firestore/src/lite-api/pipeline.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* docs-devsite

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* docs(firestore): add missing `typescript` formatting to docs (#9909)

Adds `typescript` code formatting to the code examples in docs, where
they're missing.

* cleanup

* remove changeset

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>

* Support API key referrer restrictions by changing the Auth SDK referrer policy (#10049)

* feat(auth): Update referrer policy to strict-origin-when-cross-origin

* chore: Add changeset tame-yaks-yawn.md

* Fix querystring to always use apiKey even if a key is specified in the request (#10048)

* Fix querystring to always use apiKey even if a key is specified in the request

* Update packages/auth/src/api/index.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix test helper URL generation to match new querystring order

* Run yarn format

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
Co-authored-by: Daniel La Rocque <dlarocque@google.com>
Co-authored-by: Christina Holland <chholland@google.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: DellaBitta <drsanta@google.com>
Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>
Co-authored-by: macastelaz <34776182+macastelaz@users.noreply.github.com>
Co-authored-by: swseverance <swseverance@gmail.com>
Co-authored-by: Athira M <athiramanu9400@gmail.com>
Co-authored-by: Doris-Ge <dorisge@google.com>
Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
Co-authored-by: sedanah-m <mashhour@google.com>
rebehe added a commit that referenced this pull request Jun 16, 2026
* Squashed commit of the following:

commit 4ec18b527104beb312222e2e35f82d8c3ea3cda4
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Tue Jun 16 09:38:20 2026 -0400

    Merge main into crashlytics2 (#10082)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    * fix(ai): Fix sendMessageStream bug that sends duplicate user turns (#9956)

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /e2e/smoke-tests (#9958)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * test(firestore): skip database source test that is timing out (#9966)

    * test(firestore): skip database source test that is timing out

    The test database keeps growing, causing this tests executionn time to
    keep growing, repeatedly exceeding new timeouts we set. For now, let's
    just skip this test.

    * add eslint disable

    * fix(auth): retry IndexedDB availability check on startup failure (#9845)

    * fix(auth): retry IndexedDB availability check on startup failure

    In environments like Chrome Extension Manifest V3 Service Workers, the initial IndexedDB transaction upon a cold start can sometimes drop or timeout. Previously, `_isAvailable()` would immediately catch the error, assume IndexedDB is broken, and silently fall back to `inMemoryPersistence`.

    This updates `_isAvailable()` to use the `_withRetries()` helper, ensuring it benefits from the same retry logic as actual storage operations. This prevents the SDK from incorrectly abandoning existing IndexedDB auth state.

    Fixes #9732

    * style(auth): run yarn format

    * chore: add changeset for IndexedDB availability check retry

    * fix(auth): robust IndexedDB connection handling and test stability

    * build(deps-dev): bump protobufjs in /packages/firestore (#9960)

    Merge rules bypassed due to errant format diff.

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.6.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs: v7.5.6</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.6/CHANGELOG.md">protobufjs's changelog</a>.</em></p>
    <blockquote>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a> (2025-08-15)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>invalid syntax in descriptor.proto (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a> (2025-05-28)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>descriptor extensions handling post-editions (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a> (2025-05-14)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>ensure that types are always resolved (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2068">#2068</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/4b51cb2b8450b77f9f5de1c562e7fae93b19d040">4b51cb2</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.0...protobufjs-v7.5.1">7.5.1</a> (2025-05-08)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>optimize regressions from editions implementations (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2066">#2066</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6406d4c18afae309fc7b5f4a24d9674d85da180b">6406d4c</a>)</li>
    <li>reserved field inside group blocks fail parsing (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2058">#2058</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/56782bff0c4b5132806eb1a6bc4d08f930c4aaad">56782bf</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.0">7.5.0</a> (2025-04-15)</h2>
    <h3>Features</h3>
    <ul>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/f04ded3a03a3ddd383f0228e2fe2627a51f31aa3">f04ded3</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/ac9a3b9fe3134d48187e41b08d54ffaceddc6c1b">ac9a3b9</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/e5ca5c84e326699e10258367883a54934e0bfe14">e5ca5c8</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a84409b47f9ba0dba56da1af8054fb54f85d85a1">a84409b</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/9c5a178c4b59e0aa65ecac0bd7420171213b2ff9">9c5a178</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/b2c686721e3b63d092419fa1cbe58e1deb89534e">b2c6867</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/60f3e51087ca2c247473410f39331e1c766aefef">60f3e51</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a6563617de04d510d6e8865eb6c5067f10247f64">a656361</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/869a95b1e5f553c76243aac45619061407a41084">869a95b</a>)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/2189e5beeca6a70e4c104dfdb9fb8200bc5f81fe"><code>2189e5b</code></a> chore: release protobufjs-v7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2174">#2174</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454"><code>75392ea</code></a> fix: Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/8af8d7c0e9800879625f7d0d4a7fb51beb4410cd"><code>8af8d7c</code></a> chore(ci): Fix 7.x release please configuration (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2169">#2169</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e92ca42244ad67203b48d836290062dae037ead6"><code>e92ca42</code></a> chore(ci): Enable release-please for 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2166">#2166</a>)</li>
    <li>See full diff in <a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">compare view</a></li>
    </ul>
    </details>
    <details>
    <summary>Maintainer changes</summary>
    <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for protobufjs since your current version.</p>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9952)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/dcodeIO/protobuf.js/releases">@​protobufjs/utf8's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs-cli: v1.1.1</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">1.1.1</a> (2023-02-02)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><strong>cli:</strong> fix relative path to Google pb files (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/1859">#1859</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2">e42eea4</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/644d588c0495da6a570344248e1b5af901bc3b0c"><code>644d588</code></a> chore: release master (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1865">#1865</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2"><code>e42eea4</code></a> fix(cli): fix relative path to Google pb files (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1859">#1859</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/dce9a2ef92d363752e40b295b0da9bd178f82e83"><code>dce9a2e</code></a> fix: use bundled filename to fix common pb includes (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1860">#1860</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/64e8936ad9f73c68b3fa1e57857dd38323b5a745"><code>64e8936</code></a> fix: use ES5 style function syntax (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1830">#1830</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/4489fa771464bcb49b57149760e9cc4131e8077e"><code>4489fa7</code></a> Revert &quot;fix: error should be thrown (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1817">#1817</a>)&quot; (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1864">#1864</a>)</li>
    <li>See full diff in <a href="https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">compare view</a></li>
    </ul>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9949)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    - [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

    ---
    updated-dependencies:
    - dependency-name: "@protobufjs/utf8"
      dependency-version: 1.1.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 (#9973)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps-dev): bump protobufjs-cli from 1.1.3 to 1.2.1 (#9955)

    Bumps [protobufjs-cli](https://github.com/protobufjs/protobuf.js) from 1.1.3 to 1.2.1.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.3...protobufjs-cli-v1.2.1)

    ---
    updated-dependencies:
    - dependency-name: protobufjs-cli
      dependency-version: 1.2.1
      dependency-type: direct:development
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.4.0 to 7.5.9 in /e2e/data-connect (#9977)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.4.0 to 7.5.9.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.9/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.9)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.9
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feature(firestore): added minimum and maximum FieldValue operations (#9913)

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * fix(changelog-generator): fix postinstall build failure (#9948)

    The fix has two parts:

    1. Add `"types": ["node"]` to tsconfig.

    2. Fix an incorrect type cast in `index.ts`. The parsed GitHub API response
       was being cast to the DOM `Response` type to access its `.body` property,
       which is wrong — `Response.body` is a `ReadableStream`, not a string. The
       actual value is the parsed JSON from the GitHub PR API, whose `body` field
       is `string | null` per the API schema. Updated the cast accordingly.

    Resolves #9947

    * Feat/messaging api series (#9917)

    * fix(app-check): Fix getLimitedUseToken() (#9987)

    * fix(remoteconfig): Stopping last running experiment must call updateActiveExperiments (#9981)

    Context: Currently, experiments are updated at activation only if the fetch response explicitly contains an experiments payload.

    Problem: When the last running experiment is stopped, the fetch response returns experiments as undefined. This causes the client to skip the update call entirely, meaning the local state never registers that the experiment was stopped.

    Fix: If fetch response does not contain experiments, pass an empty list to update

    * fix(firestore): improved robustness and logging in query listen stream creation and re-creation (#9985)

    * implement onSubChange for FID-based registration (#9996)

    * implement onSubChange for FID-based registration

    * Persist VAPID key in FID registration metadata to fix re-registration issue

    * Enforce mutual exclusivity of token and FID registrations in DB layer

    * Notify clients in onSubChange on successful FID refresh

    - Update onSubChange to notify window clients when FID registration is refreshed. Previously it did not notify clients.
    - Update refreshFidRegistrationIfStored to return the current FID.
    - Update onSubChange to use the returned FID and only notify if the refresh was successful.
    - Add unit tests to verify client notification on success, failure, and when not registered.
    - Fix a lint error in window-listener.ts by adding the FidRegisteredPayload interface.

    ---------

    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>

    * feat(ai)!: Add explicit `initializeDeviceModel()` method when using hybrid (#9800)

    * feat(ai): Update tags to mark hybrid inference features as GA (#9926)

    * Version Packages (#10004)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(auth,app-check): Fix Auth/AppCheck ReCAPTCHA Enterprise conflict (#9991)

    * fix(remoteconfig) Support ABT realtime when variant value matches default value of parameter

    When an experiment is added whose variant value matches default value, the parameter key is not listed as updated. This becomes a problem when the client app calls activate only on config change as the experiment will not get started

    Before fix - https://screencast.googleplex.com/cast/NDgxNTYwNjU0NDA3MjcwNHxiOWY1MmIyNy1iMQ
    After fix - https://screencast.googleplex.com/cast/NDcxODUwODQ0MDAyNzEzNnwzODc2YTRlMC01MA

    * chore: Add explicit types to tsconfig (#10015)

    * Update CODEOWNERS for auth packages (#10001)

    * feat(app-check,app): Add ability for App Check to initialize with a default provider (#10023)

    * chore(ci): make all firestore integration tests optional (#10028)

    * merge off pipeline into main (#9929)

    * chore(ci): make all firestore integration tests optional

    * fix: align expressions and pipelines, address review comments, update yarn.lock, and fix package versions

    * chore: update yarn.lock after merge

    * fix: restore firestore package version and devDependencies to 4.15.0

    * fix(ai): format systemInstruction string in ChatSession constructor (#10026)

    * fix(ai): format systemInstruction string in ChatSession constructor

    * adding a changeset file

    * test(ai): verify systemInstruction in sendMessage and sendMessageStream

    * remove extra folder in changeset

    * remove extra changeset file

    * restore deleted file

    * adding check if systemInstruction is not null/undefined

    * simplify systemInstruction assignment

    * fix lint error

    * revert to original structure

    * docs(firestore): fix formatting for pipelines docs (#9908)

    * docs(firestore): fix formatting for docs code snippets

    - Fixes `findNearest` example doc formatting, which was causing
      formatting to be lost for all subsequent APIs in the TOC in devsite.
    - Removes `Example:` and `<p>Example:` from before all code examples,
      since we use `@example` for this.

    * add changeset firebase

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * update docs

    * docs(firestore): fix ref doc issues for piplines (#9912)

    * docs(firestore): fix ref doc issues for piplines

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * docs-devsite

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * docs(firestore): add missing `typescript` formatting to docs (#9909)

    Adds `typescript` code formatting to the code examples in docs, where
    they're missing.

    * cleanup

    * remove changeset

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>

    * Support API key referrer restrictions by changing the Auth SDK referrer policy (#10049)

    * feat(auth): Update referrer policy to strict-origin-when-cross-origin

    * chore: Add changeset tame-yaks-yawn.md

    * Fix querystring to always use apiKey even if a key is specified in the request (#10048)

    * Fix querystring to always use apiKey even if a key is specified in the request

    * Update packages/auth/src/api/index.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * Fix test helper URL generation to match new querystring order

    * Run yarn format

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>
    Co-authored-by: macastelaz <34776182+macastelaz@users.noreply.github.com>
    Co-authored-by: swseverance <swseverance@gmail.com>
    Co-authored-by: Athira M <athiramanu9400@gmail.com>
    Co-authored-by: Doris-Ge <dorisge@google.com>
    Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
    Co-authored-by: sedanah-m <mashhour@google.com>

commit 6868f5fdcb95dcc3cb55bad6f03e86cfeeaf97db
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Mon Jun 15 14:48:15 2026 -0400

    Prefactor `AttributesStore` to more cleanly support span attributes (#10079)

commit 558ee841dbd889dd0d7812613a7e553687b80517
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Mon Jun 15 08:49:18 2026 -0400

    Update crashlytics otel log attributes (#10062)

commit e6637173bc7e24630987b88ea9614a744509e9ae
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 14:16:50 2026 -0400

    Migrate route path provider into `AttributesStore` (#10060)

commit 1e203bcb02c248567320b7efc28dabd9b4f81928
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 11:31:32 2026 -0400

    Migrate all common/log attributes and logic into `AttributesStore` (#10053)

commit 5421eb9331f1fa8f9a188a3c3a6f3c577f069b50
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 09:34:45 2026 -0400

    Migrate installation id provider logic into new `AttributeStore` (#10054)

commit 48f2deb81f97e51de31aacf9700a53e0af132ca7
Author: MaesterChestnut <40321652+MaesterChestnut@users.noreply.github.com>
Date:   Thu Jun 4 11:26:46 2026 -0400

    Crashlytics merge main (#10034)

commit 06423a1af4ff4017f76a8cd0d0f381f3c0bf1660
Author: Christina Holland <chholland@google.com>
Date:   Tue May 26 17:44:58 2026 -0700

    Update release workflows to use NPM publish token from Github secrets (#10006)

commit c9f1064327463e7a16e03fd0c420336fd99cee9b
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 26 20:42:09 2026 -0400

    Add crashlytics as export in packages/firebase package.json (#10005)

commit 3dd4e65d9746cadbd7e846149f393883a602fcb9
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 26 18:26:20 2026 -0400

    Add default telemetry endpoint for crashlytics (#10003)

commit 751dd8120f95ad1b6be215ff126eec5dfb6fd7df
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 21 08:43:42 2026 -0400

    Merge branch "main" into crashlytics2 (#9989)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    * fix(ai): Fix sendMessageStream bug that sends duplicate user turns (#9956)

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /e2e/smoke-tests (#9958)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * test(firestore): skip database source test that is timing out (#9966)

    * test(firestore): skip database source test that is timing out

    The test database keeps growing, causing this tests executionn time to
    keep growing, repeatedly exceeding new timeouts we set. For now, let's
    just skip this test.

    * add eslint disable

    * fix(auth): retry IndexedDB availability check on startup failure (#9845)

    * fix(auth): retry IndexedDB availability check on startup failure

    In environments like Chrome Extension Manifest V3 Service Workers, the initial IndexedDB transaction upon a cold start can sometimes drop or timeout. Previously, `_isAvailable()` would immediately catch the error, assume IndexedDB is broken, and silently fall back to `inMemoryPersistence`.

    This updates `_isAvailable()` to use the `_withRetries()` helper, ensuring it benefits from the same retry logic as actual storage operations. This prevents the SDK from incorrectly abandoning existing IndexedDB auth state.

    Fixes #9732

    * style(auth): run yarn format

    * chore: add changeset for IndexedDB availability check retry

    * fix(auth): robust IndexedDB connection handling and test stability

    * build(deps-dev): bump protobufjs in /packages/firestore (#9960)

    Merge rules bypassed due to errant format diff.

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.6.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs: v7.5.6</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.6/CHANGELOG.md">protobufjs's changelog</a>.</em></p>
    <blockquote>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a> (2025-08-15)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>invalid syntax in descriptor.proto (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a> (2025-05-28)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>descriptor extensions handling post-editions (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a> (2025-05-14)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>ensure that types are always resolved (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2068">#2068</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/4b51cb2b8450b77f9f5de1c562e7fae93b19d040">4b51cb2</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.0...protobufjs-v7.5.1">7.5.1</a> (2025-05-08)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>optimize regressions from editions implementations (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2066">#2066</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6406d4c18afae309fc7b5f4a24d9674d85da180b">6406d4c</a>)</li>
    <li>reserved field inside group blocks fail parsing (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2058">#2058</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/56782bff0c4b5132806eb1a6bc4d08f930c4aaad">56782bf</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.0">7.5.0</a> (2025-04-15)</h2>
    <h3>Features</h3>
    <ul>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/f04ded3a03a3ddd383f0228e2fe2627a51f31aa3">f04ded3</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/ac9a3b9fe3134d48187e41b08d54ffaceddc6c1b">ac9a3b9</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/e5ca5c84e326699e10258367883a54934e0bfe14">e5ca5c8</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a84409b47f9ba0dba56da1af8054fb54f85d85a1">a84409b</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/9c5a178c4b59e0aa65ecac0bd7420171213b2ff9">9c5a178</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/b2c686721e3b63d092419fa1cbe58e1deb89534e">b2c6867</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/60f3e51087ca2c247473410f39331e1c766aefef">60f3e51</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a6563617de04d510d6e8865eb6c5067f10247f64">a656361</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/869a95b1e5f553c76243aac45619061407a41084">869a95b</a>)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/2189e5beeca6a70e4c104dfdb9fb8200bc5f81fe"><code>2189e5b</code></a> chore: release protobufjs-v7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2174">#2174</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454"><code>75392ea</code></a> fix: Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/8af8d7c0e9800879625f7d0d4a7fb51beb4410cd"><code>8af8d7c</code></a> chore(ci): Fix 7.x release please configuration (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2169">#2169</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e92ca42244ad67203b48d836290062dae037ead6"><code>e92ca42</code></a> chore(ci): Enable release-please for 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2166">#2166</a>)</li>
    <li>See full diff in <a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">compare view</a></li>
    </ul>
    </details>
    <details>
    <summary>Maintainer changes</summary>
    <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for protobufjs since your current version.</p>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9952)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/dcodeIO/protobuf.js/releases">@​protobufjs/utf8's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs-cli: v1.1.1</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">1.1.1</a> (2023-02-02)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><strong>cli:</strong> fix relative path to Google pb files (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/1859">#1859</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2">e42eea4</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/644d588c0495da6a570344248e1b5af901bc3b0c"><code>644d588</code></a> chore: release master (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1865">#1865</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2"><code>e42eea4</code></a> fix(cli): fix relative path to Google pb files (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1859">#1859</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/dce9a2ef92d363752e40b295b0da9bd178f82e83"><code>dce9a2e</code></a> fix: use bundled filename to fix common pb includes (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1860">#1860</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/64e8936ad9f73c68b3fa1e57857dd38323b5a745"><code>64e8936</code></a> fix: use ES5 style function syntax (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1830">#1830</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/4489fa771464bcb49b57149760e9cc4131e8077e"><code>4489fa7</code></a> Revert &quot;fix: error should be thrown (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1817">#1817</a>)&quot; (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1864">#1864</a>)</li>
    <li>See full diff in <a href="https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">compare view</a></li>
    </ul>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9949)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    - [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

    ---
    updated-dependencies:
    - dependency-name: "@protobufjs/utf8"
      dependency-version: 1.1.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 (#9973)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps-dev): bump protobufjs-cli from 1.1.3 to 1.2.1 (#9955)

    Bumps [protobufjs-cli](https://github.com/protobufjs/protobuf.js) from 1.1.3 to 1.2.1.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.3...protobufjs-cli-v1.2.1)

    ---
    updated-dependencies:
    - dependency-name: protobufjs-cli
      dependency-version: 1.2.1
      dependency-type: direct:development
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.4.0 to 7.5.9 in /e2e/data-connect (#9977)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.4.0 to 7.5.9.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.9/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.9)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.9
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feature(firestore): added minimum and maximum FieldValue operations (#9913)

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * fix(changelog-generator): fix postinstall build failure (#9948)

    The fix has two parts:

    1. Add `"types": ["node"]` to tsconfig.

    2. Fix an incorrect type cast in `index.ts`. The parsed GitHub API response
       was being cast to the DOM `Response` type to access its `.body` property,
       which is wrong — `Response.body` is a `ReadableStream`, not a string. The
       actual value is the parsed JSON from the GitHub PR API, whose `body` field
       is `string | null` per the API schema. Updated the cast accordingly.

    Resolves #9947

    * Feat/messaging api series (#9917)

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>
    Co-authored-by: macastelaz <34776182+macastelaz@users.noreply.github.com>
    Co-authored-by: swseverance <swseverance@gmail.com>

commit c71db890acf551cbd843ae8d148b0b3952f6c39f
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Wed May 20 22:57:01 2026 -0400

    Unify react router error boundaries and prevent duplicate logs (#9975)

    * Unify react router error boundaries and prevent duplicate logs

    * Fix tests

commit d3c3e0e768f0170c0af615e568367b445f9e7352
Author: Sai Sakhamuri <ssakhamu@google.com>
Date:   Fri May 15 13:29:14 2026 -0400

    refactoring common log attributes retrieval (#9967)

    * refactoring common log attributes retrieval

    * adding trace info as common attributes, refactoring options variable and startNewSession

    * yarn format

commit 98a08233c6cc3c4597453cdcb1e07ad06724ca2a
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 14:39:06 2026 -0400

    Update custom log attributes to align with OTel (#9953)

commit 6d3aed80851ef56facd46b2824b66bbfd95d89ae
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 11:22:14 2026 -0400

    Merge branch "main" into crashlytics2 (#9941)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>

commit f1ce91f6fd815e0a81e21648afd1797f21aef2b6
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 10:25:18 2026 -0400

    Add crashlytics to packages/firebase/package.json (#9946)

commit 95e5307dd57ab56465a915b0c7dd4760cb087d29
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 7 16:57:12 2026 -0400

    Add crashlytics option for specifying cloud region (#9933)

commit f6902a26c18cbec5c0f1eb1ba216180f91cee98a
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 7 16:35:04 2026 -0400

    Merge branch "main" into crashlytics2 (#9932)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tes…
rebehe added a commit that referenced this pull request Jun 16, 2026
commit 4ec18b527104beb312222e2e35f82d8c3ea3cda4
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Tue Jun 16 09:38:20 2026 -0400

    Merge main into crashlytics2 (#10082)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    * fix(ai): Fix sendMessageStream bug that sends duplicate user turns (#9956)

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /e2e/smoke-tests (#9958)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * test(firestore): skip database source test that is timing out (#9966)

    * test(firestore): skip database source test that is timing out

    The test database keeps growing, causing this tests executionn time to
    keep growing, repeatedly exceeding new timeouts we set. For now, let's
    just skip this test.

    * add eslint disable

    * fix(auth): retry IndexedDB availability check on startup failure (#9845)

    * fix(auth): retry IndexedDB availability check on startup failure

    In environments like Chrome Extension Manifest V3 Service Workers, the initial IndexedDB transaction upon a cold start can sometimes drop or timeout. Previously, `_isAvailable()` would immediately catch the error, assume IndexedDB is broken, and silently fall back to `inMemoryPersistence`.

    This updates `_isAvailable()` to use the `_withRetries()` helper, ensuring it benefits from the same retry logic as actual storage operations. This prevents the SDK from incorrectly abandoning existing IndexedDB auth state.

    Fixes #9732

    * style(auth): run yarn format

    * chore: add changeset for IndexedDB availability check retry

    * fix(auth): robust IndexedDB connection handling and test stability

    * build(deps-dev): bump protobufjs in /packages/firestore (#9960)

    Merge rules bypassed due to errant format diff.

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.6.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs: v7.5.6</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.6/CHANGELOG.md">protobufjs's changelog</a>.</em></p>
    <blockquote>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a> (2025-08-15)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>invalid syntax in descriptor.proto (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a> (2025-05-28)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>descriptor extensions handling post-editions (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a> (2025-05-14)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>ensure that types are always resolved (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2068">#2068</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/4b51cb2b8450b77f9f5de1c562e7fae93b19d040">4b51cb2</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.0...protobufjs-v7.5.1">7.5.1</a> (2025-05-08)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>optimize regressions from editions implementations (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2066">#2066</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6406d4c18afae309fc7b5f4a24d9674d85da180b">6406d4c</a>)</li>
    <li>reserved field inside group blocks fail parsing (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2058">#2058</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/56782bff0c4b5132806eb1a6bc4d08f930c4aaad">56782bf</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.0">7.5.0</a> (2025-04-15)</h2>
    <h3>Features</h3>
    <ul>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/f04ded3a03a3ddd383f0228e2fe2627a51f31aa3">f04ded3</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/ac9a3b9fe3134d48187e41b08d54ffaceddc6c1b">ac9a3b9</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/e5ca5c84e326699e10258367883a54934e0bfe14">e5ca5c8</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a84409b47f9ba0dba56da1af8054fb54f85d85a1">a84409b</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/9c5a178c4b59e0aa65ecac0bd7420171213b2ff9">9c5a178</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/b2c686721e3b63d092419fa1cbe58e1deb89534e">b2c6867</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/60f3e51087ca2c247473410f39331e1c766aefef">60f3e51</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a6563617de04d510d6e8865eb6c5067f10247f64">a656361</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/869a95b1e5f553c76243aac45619061407a41084">869a95b</a>)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/2189e5beeca6a70e4c104dfdb9fb8200bc5f81fe"><code>2189e5b</code></a> chore: release protobufjs-v7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2174">#2174</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454"><code>75392ea</code></a> fix: Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/8af8d7c0e9800879625f7d0d4a7fb51beb4410cd"><code>8af8d7c</code></a> chore(ci): Fix 7.x release please configuration (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2169">#2169</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e92ca42244ad67203b48d836290062dae037ead6"><code>e92ca42</code></a> chore(ci): Enable release-please for 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2166">#2166</a>)</li>
    <li>See full diff in <a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">compare view</a></li>
    </ul>
    </details>
    <details>
    <summary>Maintainer changes</summary>
    <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for protobufjs since your current version.</p>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9952)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/dcodeIO/protobuf.js/releases">@​protobufjs/utf8's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs-cli: v1.1.1</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">1.1.1</a> (2023-02-02)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><strong>cli:</strong> fix relative path to Google pb files (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/1859">#1859</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2">e42eea4</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/644d588c0495da6a570344248e1b5af901bc3b0c"><code>644d588</code></a> chore: release master (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1865">#1865</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2"><code>e42eea4</code></a> fix(cli): fix relative path to Google pb files (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1859">#1859</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/dce9a2ef92d363752e40b295b0da9bd178f82e83"><code>dce9a2e</code></a> fix: use bundled filename to fix common pb includes (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1860">#1860</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/64e8936ad9f73c68b3fa1e57857dd38323b5a745"><code>64e8936</code></a> fix: use ES5 style function syntax (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1830">#1830</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/4489fa771464bcb49b57149760e9cc4131e8077e"><code>4489fa7</code></a> Revert &quot;fix: error should be thrown (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1817">#1817</a>)&quot; (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1864">#1864</a>)</li>
    <li>See full diff in <a href="https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">compare view</a></li>
    </ul>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9949)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    - [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

    ---
    updated-dependencies:
    - dependency-name: "@protobufjs/utf8"
      dependency-version: 1.1.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 (#9973)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps-dev): bump protobufjs-cli from 1.1.3 to 1.2.1 (#9955)

    Bumps [protobufjs-cli](https://github.com/protobufjs/protobuf.js) from 1.1.3 to 1.2.1.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.3...protobufjs-cli-v1.2.1)

    ---
    updated-dependencies:
    - dependency-name: protobufjs-cli
      dependency-version: 1.2.1
      dependency-type: direct:development
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.4.0 to 7.5.9 in /e2e/data-connect (#9977)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.4.0 to 7.5.9.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.9/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.9)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.9
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feature(firestore): added minimum and maximum FieldValue operations (#9913)

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * fix(changelog-generator): fix postinstall build failure (#9948)

    The fix has two parts:

    1. Add `"types": ["node"]` to tsconfig.

    2. Fix an incorrect type cast in `index.ts`. The parsed GitHub API response
       was being cast to the DOM `Response` type to access its `.body` property,
       which is wrong — `Response.body` is a `ReadableStream`, not a string. The
       actual value is the parsed JSON from the GitHub PR API, whose `body` field
       is `string | null` per the API schema. Updated the cast accordingly.

    Resolves #9947

    * Feat/messaging api series (#9917)

    * fix(app-check): Fix getLimitedUseToken() (#9987)

    * fix(remoteconfig): Stopping last running experiment must call updateActiveExperiments (#9981)

    Context: Currently, experiments are updated at activation only if the fetch response explicitly contains an experiments payload.

    Problem: When the last running experiment is stopped, the fetch response returns experiments as undefined. This causes the client to skip the update call entirely, meaning the local state never registers that the experiment was stopped.

    Fix: If fetch response does not contain experiments, pass an empty list to update

    * fix(firestore): improved robustness and logging in query listen stream creation and re-creation (#9985)

    * implement onSubChange for FID-based registration (#9996)

    * implement onSubChange for FID-based registration

    * Persist VAPID key in FID registration metadata to fix re-registration issue

    * Enforce mutual exclusivity of token and FID registrations in DB layer

    * Notify clients in onSubChange on successful FID refresh

    - Update onSubChange to notify window clients when FID registration is refreshed. Previously it did not notify clients.
    - Update refreshFidRegistrationIfStored to return the current FID.
    - Update onSubChange to use the returned FID and only notify if the refresh was successful.
    - Add unit tests to verify client notification on success, failure, and when not registered.
    - Fix a lint error in window-listener.ts by adding the FidRegisteredPayload interface.

    ---------

    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>

    * feat(ai)!: Add explicit `initializeDeviceModel()` method when using hybrid (#9800)

    * feat(ai): Update tags to mark hybrid inference features as GA (#9926)

    * Version Packages (#10004)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(auth,app-check): Fix Auth/AppCheck ReCAPTCHA Enterprise conflict (#9991)

    * fix(remoteconfig) Support ABT realtime when variant value matches default value of parameter

    When an experiment is added whose variant value matches default value, the parameter key is not listed as updated. This becomes a problem when the client app calls activate only on config change as the experiment will not get started

    Before fix - https://screencast.googleplex.com/cast/NDgxNTYwNjU0NDA3MjcwNHxiOWY1MmIyNy1iMQ
    After fix - https://screencast.googleplex.com/cast/NDcxODUwODQ0MDAyNzEzNnwzODc2YTRlMC01MA

    * chore: Add explicit types to tsconfig (#10015)

    * Update CODEOWNERS for auth packages (#10001)

    * feat(app-check,app): Add ability for App Check to initialize with a default provider (#10023)

    * chore(ci): make all firestore integration tests optional (#10028)

    * merge off pipeline into main (#9929)

    * chore(ci): make all firestore integration tests optional

    * fix: align expressions and pipelines, address review comments, update yarn.lock, and fix package versions

    * chore: update yarn.lock after merge

    * fix: restore firestore package version and devDependencies to 4.15.0

    * fix(ai): format systemInstruction string in ChatSession constructor (#10026)

    * fix(ai): format systemInstruction string in ChatSession constructor

    * adding a changeset file

    * test(ai): verify systemInstruction in sendMessage and sendMessageStream

    * remove extra folder in changeset

    * remove extra changeset file

    * restore deleted file

    * adding check if systemInstruction is not null/undefined

    * simplify systemInstruction assignment

    * fix lint error

    * revert to original structure

    * docs(firestore): fix formatting for pipelines docs (#9908)

    * docs(firestore): fix formatting for docs code snippets

    - Fixes `findNearest` example doc formatting, which was causing
      formatting to be lost for all subsequent APIs in the TOC in devsite.
    - Removes `Example:` and `<p>Example:` from before all code examples,
      since we use `@example` for this.

    * add changeset firebase

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * update docs

    * docs(firestore): fix ref doc issues for piplines (#9912)

    * docs(firestore): fix ref doc issues for piplines

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * docs-devsite

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * docs(firestore): add missing `typescript` formatting to docs (#9909)

    Adds `typescript` code formatting to the code examples in docs, where
    they're missing.

    * cleanup

    * remove changeset

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>

    * Support API key referrer restrictions by changing the Auth SDK referrer policy (#10049)

    * feat(auth): Update referrer policy to strict-origin-when-cross-origin

    * chore: Add changeset tame-yaks-yawn.md

    * Fix querystring to always use apiKey even if a key is specified in the request (#10048)

    * Fix querystring to always use apiKey even if a key is specified in the request

    * Update packages/auth/src/api/index.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * Fix test helper URL generation to match new querystring order

    * Run yarn format

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>
    Co-authored-by: macastelaz <34776182+macastelaz@users.noreply.github.com>
    Co-authored-by: swseverance <swseverance@gmail.com>
    Co-authored-by: Athira M <athiramanu9400@gmail.com>
    Co-authored-by: Doris-Ge <dorisge@google.com>
    Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
    Co-authored-by: sedanah-m <mashhour@google.com>

commit 6868f5fdcb95dcc3cb55bad6f03e86cfeeaf97db
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Mon Jun 15 14:48:15 2026 -0400

    Prefactor `AttributesStore` to more cleanly support span attributes (#10079)

commit 558ee841dbd889dd0d7812613a7e553687b80517
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Mon Jun 15 08:49:18 2026 -0400

    Update crashlytics otel log attributes (#10062)

commit e6637173bc7e24630987b88ea9614a744509e9ae
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 14:16:50 2026 -0400

    Migrate route path provider into `AttributesStore` (#10060)

commit 1e203bcb02c248567320b7efc28dabd9b4f81928
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 11:31:32 2026 -0400

    Migrate all common/log attributes and logic into `AttributesStore` (#10053)

commit 5421eb9331f1fa8f9a188a3c3a6f3c577f069b50
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 09:34:45 2026 -0400

    Migrate installation id provider logic into new `AttributeStore` (#10054)

commit 48f2deb81f97e51de31aacf9700a53e0af132ca7
Author: MaesterChestnut <40321652+MaesterChestnut@users.noreply.github.com>
Date:   Thu Jun 4 11:26:46 2026 -0400

    Crashlytics merge main (#10034)

commit 06423a1af4ff4017f76a8cd0d0f381f3c0bf1660
Author: Christina Holland <chholland@google.com>
Date:   Tue May 26 17:44:58 2026 -0700

    Update release workflows to use NPM publish token from Github secrets (#10006)

commit c9f1064327463e7a16e03fd0c420336fd99cee9b
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 26 20:42:09 2026 -0400

    Add crashlytics as export in packages/firebase package.json (#10005)

commit 3dd4e65d9746cadbd7e846149f393883a602fcb9
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 26 18:26:20 2026 -0400

    Add default telemetry endpoint for crashlytics (#10003)

commit 751dd8120f95ad1b6be215ff126eec5dfb6fd7df
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 21 08:43:42 2026 -0400

    Merge branch "main" into crashlytics2 (#9989)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    * fix(ai): Fix sendMessageStream bug that sends duplicate user turns (#9956)

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /e2e/smoke-tests (#9958)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * test(firestore): skip database source test that is timing out (#9966)

    * test(firestore): skip database source test that is timing out

    The test database keeps growing, causing this tests executionn time to
    keep growing, repeatedly exceeding new timeouts we set. For now, let's
    just skip this test.

    * add eslint disable

    * fix(auth): retry IndexedDB availability check on startup failure (#9845)

    * fix(auth): retry IndexedDB availability check on startup failure

    In environments like Chrome Extension Manifest V3 Service Workers, the initial IndexedDB transaction upon a cold start can sometimes drop or timeout. Previously, `_isAvailable()` would immediately catch the error, assume IndexedDB is broken, and silently fall back to `inMemoryPersistence`.

    This updates `_isAvailable()` to use the `_withRetries()` helper, ensuring it benefits from the same retry logic as actual storage operations. This prevents the SDK from incorrectly abandoning existing IndexedDB auth state.

    Fixes #9732

    * style(auth): run yarn format

    * chore: add changeset for IndexedDB availability check retry

    * fix(auth): robust IndexedDB connection handling and test stability

    * build(deps-dev): bump protobufjs in /packages/firestore (#9960)

    Merge rules bypassed due to errant format diff.

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.6.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs: v7.5.6</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.6/CHANGELOG.md">protobufjs's changelog</a>.</em></p>
    <blockquote>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a> (2025-08-15)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>invalid syntax in descriptor.proto (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a> (2025-05-28)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>descriptor extensions handling post-editions (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a> (2025-05-14)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>ensure that types are always resolved (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2068">#2068</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/4b51cb2b8450b77f9f5de1c562e7fae93b19d040">4b51cb2</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.0...protobufjs-v7.5.1">7.5.1</a> (2025-05-08)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>optimize regressions from editions implementations (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2066">#2066</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6406d4c18afae309fc7b5f4a24d9674d85da180b">6406d4c</a>)</li>
    <li>reserved field inside group blocks fail parsing (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2058">#2058</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/56782bff0c4b5132806eb1a6bc4d08f930c4aaad">56782bf</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.0">7.5.0</a> (2025-04-15)</h2>
    <h3>Features</h3>
    <ul>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/f04ded3a03a3ddd383f0228e2fe2627a51f31aa3">f04ded3</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/ac9a3b9fe3134d48187e41b08d54ffaceddc6c1b">ac9a3b9</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/e5ca5c84e326699e10258367883a54934e0bfe14">e5ca5c8</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a84409b47f9ba0dba56da1af8054fb54f85d85a1">a84409b</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/9c5a178c4b59e0aa65ecac0bd7420171213b2ff9">9c5a178</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/b2c686721e3b63d092419fa1cbe58e1deb89534e">b2c6867</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/60f3e51087ca2c247473410f39331e1c766aefef">60f3e51</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a6563617de04d510d6e8865eb6c5067f10247f64">a656361</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/869a95b1e5f553c76243aac45619061407a41084">869a95b</a>)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/2189e5beeca6a70e4c104dfdb9fb8200bc5f81fe"><code>2189e5b</code></a> chore: release protobufjs-v7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2174">#2174</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454"><code>75392ea</code></a> fix: Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/8af8d7c0e9800879625f7d0d4a7fb51beb4410cd"><code>8af8d7c</code></a> chore(ci): Fix 7.x release please configuration (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2169">#2169</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e92ca42244ad67203b48d836290062dae037ead6"><code>e92ca42</code></a> chore(ci): Enable release-please for 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2166">#2166</a>)</li>
    <li>See full diff in <a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">compare view</a></li>
    </ul>
    </details>
    <details>
    <summary>Maintainer changes</summary>
    <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for protobufjs since your current version.</p>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9952)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/dcodeIO/protobuf.js/releases">@​protobufjs/utf8's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs-cli: v1.1.1</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">1.1.1</a> (2023-02-02)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><strong>cli:</strong> fix relative path to Google pb files (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/1859">#1859</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2">e42eea4</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/644d588c0495da6a570344248e1b5af901bc3b0c"><code>644d588</code></a> chore: release master (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1865">#1865</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2"><code>e42eea4</code></a> fix(cli): fix relative path to Google pb files (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1859">#1859</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/dce9a2ef92d363752e40b295b0da9bd178f82e83"><code>dce9a2e</code></a> fix: use bundled filename to fix common pb includes (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1860">#1860</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/64e8936ad9f73c68b3fa1e57857dd38323b5a745"><code>64e8936</code></a> fix: use ES5 style function syntax (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1830">#1830</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/4489fa771464bcb49b57149760e9cc4131e8077e"><code>4489fa7</code></a> Revert &quot;fix: error should be thrown (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1817">#1817</a>)&quot; (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1864">#1864</a>)</li>
    <li>See full diff in <a href="https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">compare view</a></li>
    </ul>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9949)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    - [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

    ---
    updated-dependencies:
    - dependency-name: "@protobufjs/utf8"
      dependency-version: 1.1.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 (#9973)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps-dev): bump protobufjs-cli from 1.1.3 to 1.2.1 (#9955)

    Bumps [protobufjs-cli](https://github.com/protobufjs/protobuf.js) from 1.1.3 to 1.2.1.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.3...protobufjs-cli-v1.2.1)

    ---
    updated-dependencies:
    - dependency-name: protobufjs-cli
      dependency-version: 1.2.1
      dependency-type: direct:development
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.4.0 to 7.5.9 in /e2e/data-connect (#9977)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.4.0 to 7.5.9.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.9/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.9)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.9
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feature(firestore): added minimum and maximum FieldValue operations (#9913)

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * fix(changelog-generator): fix postinstall build failure (#9948)

    The fix has two parts:

    1. Add `"types": ["node"]` to tsconfig.

    2. Fix an incorrect type cast in `index.ts`. The parsed GitHub API response
       was being cast to the DOM `Response` type to access its `.body` property,
       which is wrong — `Response.body` is a `ReadableStream`, not a string. The
       actual value is the parsed JSON from the GitHub PR API, whose `body` field
       is `string | null` per the API schema. Updated the cast accordingly.

    Resolves #9947

    * Feat/messaging api series (#9917)

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>
    Co-authored-by: macastelaz <34776182+macastelaz@users.noreply.github.com>
    Co-authored-by: swseverance <swseverance@gmail.com>

commit c71db890acf551cbd843ae8d148b0b3952f6c39f
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Wed May 20 22:57:01 2026 -0400

    Unify react router error boundaries and prevent duplicate logs (#9975)

    * Unify react router error boundaries and prevent duplicate logs

    * Fix tests

commit d3c3e0e768f0170c0af615e568367b445f9e7352
Author: Sai Sakhamuri <ssakhamu@google.com>
Date:   Fri May 15 13:29:14 2026 -0400

    refactoring common log attributes retrieval (#9967)

    * refactoring common log attributes retrieval

    * adding trace info as common attributes, refactoring options variable and startNewSession

    * yarn format

commit 98a08233c6cc3c4597453cdcb1e07ad06724ca2a
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 14:39:06 2026 -0400

    Update custom log attributes to align with OTel (#9953)

commit 6d3aed80851ef56facd46b2824b66bbfd95d89ae
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 11:22:14 2026 -0400

    Merge branch "main" into crashlytics2 (#9941)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>

commit f1ce91f6fd815e0a81e21648afd1797f21aef2b6
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 10:25:18 2026 -0400

    Add crashlytics to packages/firebase/package.json (#9946)

commit 95e5307dd57ab56465a915b0c7dd4760cb087d29
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 7 16:57:12 2026 -0400

    Add crashlytics option for specifying cloud region (#9933)

commit f6902a26c18cbec5c0f1eb1ba216180f91cee98a
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 7 16:35:04 2026 -0400

    Merge branch "main" into crashlytics2 (#9932)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add mor…
rebehe added a commit that referenced this pull request Jun 16, 2026
commit 9ab4a97ca92c038471853ddab1af09c4c6eb03e5
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Tue Jun 16 15:17:16 2026 -0400

    Fix fetch transport appending headers bug (#10092)

    There's a bug with the dynamic headers in fetch transport where the app check token get continuously appended on subsequent requests.

commit 4ec18b527104beb312222e2e35f82d8c3ea3cda4
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Tue Jun 16 09:38:20 2026 -0400

    Merge main into crashlytics2 (#10082)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    * fix(ai): Fix sendMessageStream bug that sends duplicate user turns (#9956)

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /e2e/smoke-tests (#9958)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * test(firestore): skip database source test that is timing out (#9966)

    * test(firestore): skip database source test that is timing out

    The test database keeps growing, causing this tests executionn time to
    keep growing, repeatedly exceeding new timeouts we set. For now, let's
    just skip this test.

    * add eslint disable

    * fix(auth): retry IndexedDB availability check on startup failure (#9845)

    * fix(auth): retry IndexedDB availability check on startup failure

    In environments like Chrome Extension Manifest V3 Service Workers, the initial IndexedDB transaction upon a cold start can sometimes drop or timeout. Previously, `_isAvailable()` would immediately catch the error, assume IndexedDB is broken, and silently fall back to `inMemoryPersistence`.

    This updates `_isAvailable()` to use the `_withRetries()` helper, ensuring it benefits from the same retry logic as actual storage operations. This prevents the SDK from incorrectly abandoning existing IndexedDB auth state.

    Fixes #9732

    * style(auth): run yarn format

    * chore: add changeset for IndexedDB availability check retry

    * fix(auth): robust IndexedDB connection handling and test stability

    * build(deps-dev): bump protobufjs in /packages/firestore (#9960)

    Merge rules bypassed due to errant format diff.

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.6.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs: v7.5.6</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.6/CHANGELOG.md">protobufjs's changelog</a>.</em></p>
    <blockquote>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a> (2025-08-15)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>invalid syntax in descriptor.proto (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a> (2025-05-28)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>descriptor extensions handling post-editions (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a> (2025-05-14)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>ensure that types are always resolved (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2068">#2068</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/4b51cb2b8450b77f9f5de1c562e7fae93b19d040">4b51cb2</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.0...protobufjs-v7.5.1">7.5.1</a> (2025-05-08)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>optimize regressions from editions implementations (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2066">#2066</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6406d4c18afae309fc7b5f4a24d9674d85da180b">6406d4c</a>)</li>
    <li>reserved field inside group blocks fail parsing (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2058">#2058</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/56782bff0c4b5132806eb1a6bc4d08f930c4aaad">56782bf</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.0">7.5.0</a> (2025-04-15)</h2>
    <h3>Features</h3>
    <ul>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/f04ded3a03a3ddd383f0228e2fe2627a51f31aa3">f04ded3</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/ac9a3b9fe3134d48187e41b08d54ffaceddc6c1b">ac9a3b9</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/e5ca5c84e326699e10258367883a54934e0bfe14">e5ca5c8</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a84409b47f9ba0dba56da1af8054fb54f85d85a1">a84409b</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/9c5a178c4b59e0aa65ecac0bd7420171213b2ff9">9c5a178</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/b2c686721e3b63d092419fa1cbe58e1deb89534e">b2c6867</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/60f3e51087ca2c247473410f39331e1c766aefef">60f3e51</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a6563617de04d510d6e8865eb6c5067f10247f64">a656361</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/869a95b1e5f553c76243aac45619061407a41084">869a95b</a>)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/2189e5beeca6a70e4c104dfdb9fb8200bc5f81fe"><code>2189e5b</code></a> chore: release protobufjs-v7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2174">#2174</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454"><code>75392ea</code></a> fix: Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/8af8d7c0e9800879625f7d0d4a7fb51beb4410cd"><code>8af8d7c</code></a> chore(ci): Fix 7.x release please configuration (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2169">#2169</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e92ca42244ad67203b48d836290062dae037ead6"><code>e92ca42</code></a> chore(ci): Enable release-please for 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2166">#2166</a>)</li>
    <li>See full diff in <a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">compare view</a></li>
    </ul>
    </details>
    <details>
    <summary>Maintainer changes</summary>
    <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for protobufjs since your current version.</p>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9952)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/dcodeIO/protobuf.js/releases">@​protobufjs/utf8's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs-cli: v1.1.1</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">1.1.1</a> (2023-02-02)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><strong>cli:</strong> fix relative path to Google pb files (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/1859">#1859</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2">e42eea4</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/644d588c0495da6a570344248e1b5af901bc3b0c"><code>644d588</code></a> chore: release master (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1865">#1865</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2"><code>e42eea4</code></a> fix(cli): fix relative path to Google pb files (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1859">#1859</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/dce9a2ef92d363752e40b295b0da9bd178f82e83"><code>dce9a2e</code></a> fix: use bundled filename to fix common pb includes (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1860">#1860</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/64e8936ad9f73c68b3fa1e57857dd38323b5a745"><code>64e8936</code></a> fix: use ES5 style function syntax (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1830">#1830</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/4489fa771464bcb49b57149760e9cc4131e8077e"><code>4489fa7</code></a> Revert &quot;fix: error should be thrown (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1817">#1817</a>)&quot; (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1864">#1864</a>)</li>
    <li>See full diff in <a href="https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">compare view</a></li>
    </ul>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9949)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    - [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

    ---
    updated-dependencies:
    - dependency-name: "@protobufjs/utf8"
      dependency-version: 1.1.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 (#9973)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps-dev): bump protobufjs-cli from 1.1.3 to 1.2.1 (#9955)

    Bumps [protobufjs-cli](https://github.com/protobufjs/protobuf.js) from 1.1.3 to 1.2.1.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.3...protobufjs-cli-v1.2.1)

    ---
    updated-dependencies:
    - dependency-name: protobufjs-cli
      dependency-version: 1.2.1
      dependency-type: direct:development
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.4.0 to 7.5.9 in /e2e/data-connect (#9977)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.4.0 to 7.5.9.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.9/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.9)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.9
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feature(firestore): added minimum and maximum FieldValue operations (#9913)

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * fix(changelog-generator): fix postinstall build failure (#9948)

    The fix has two parts:

    1. Add `"types": ["node"]` to tsconfig.

    2. Fix an incorrect type cast in `index.ts`. The parsed GitHub API response
       was being cast to the DOM `Response` type to access its `.body` property,
       which is wrong — `Response.body` is a `ReadableStream`, not a string. The
       actual value is the parsed JSON from the GitHub PR API, whose `body` field
       is `string | null` per the API schema. Updated the cast accordingly.

    Resolves #9947

    * Feat/messaging api series (#9917)

    * fix(app-check): Fix getLimitedUseToken() (#9987)

    * fix(remoteconfig): Stopping last running experiment must call updateActiveExperiments (#9981)

    Context: Currently, experiments are updated at activation only if the fetch response explicitly contains an experiments payload.

    Problem: When the last running experiment is stopped, the fetch response returns experiments as undefined. This causes the client to skip the update call entirely, meaning the local state never registers that the experiment was stopped.

    Fix: If fetch response does not contain experiments, pass an empty list to update

    * fix(firestore): improved robustness and logging in query listen stream creation and re-creation (#9985)

    * implement onSubChange for FID-based registration (#9996)

    * implement onSubChange for FID-based registration

    * Persist VAPID key in FID registration metadata to fix re-registration issue

    * Enforce mutual exclusivity of token and FID registrations in DB layer

    * Notify clients in onSubChange on successful FID refresh

    - Update onSubChange to notify window clients when FID registration is refreshed. Previously it did not notify clients.
    - Update refreshFidRegistrationIfStored to return the current FID.
    - Update onSubChange to use the returned FID and only notify if the refresh was successful.
    - Add unit tests to verify client notification on success, failure, and when not registered.
    - Fix a lint error in window-listener.ts by adding the FidRegisteredPayload interface.

    ---------

    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>

    * feat(ai)!: Add explicit `initializeDeviceModel()` method when using hybrid (#9800)

    * feat(ai): Update tags to mark hybrid inference features as GA (#9926)

    * Version Packages (#10004)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(auth,app-check): Fix Auth/AppCheck ReCAPTCHA Enterprise conflict (#9991)

    * fix(remoteconfig) Support ABT realtime when variant value matches default value of parameter

    When an experiment is added whose variant value matches default value, the parameter key is not listed as updated. This becomes a problem when the client app calls activate only on config change as the experiment will not get started

    Before fix - https://screencast.googleplex.com/cast/NDgxNTYwNjU0NDA3MjcwNHxiOWY1MmIyNy1iMQ
    After fix - https://screencast.googleplex.com/cast/NDcxODUwODQ0MDAyNzEzNnwzODc2YTRlMC01MA

    * chore: Add explicit types to tsconfig (#10015)

    * Update CODEOWNERS for auth packages (#10001)

    * feat(app-check,app): Add ability for App Check to initialize with a default provider (#10023)

    * chore(ci): make all firestore integration tests optional (#10028)

    * merge off pipeline into main (#9929)

    * chore(ci): make all firestore integration tests optional

    * fix: align expressions and pipelines, address review comments, update yarn.lock, and fix package versions

    * chore: update yarn.lock after merge

    * fix: restore firestore package version and devDependencies to 4.15.0

    * fix(ai): format systemInstruction string in ChatSession constructor (#10026)

    * fix(ai): format systemInstruction string in ChatSession constructor

    * adding a changeset file

    * test(ai): verify systemInstruction in sendMessage and sendMessageStream

    * remove extra folder in changeset

    * remove extra changeset file

    * restore deleted file

    * adding check if systemInstruction is not null/undefined

    * simplify systemInstruction assignment

    * fix lint error

    * revert to original structure

    * docs(firestore): fix formatting for pipelines docs (#9908)

    * docs(firestore): fix formatting for docs code snippets

    - Fixes `findNearest` example doc formatting, which was causing
      formatting to be lost for all subsequent APIs in the TOC in devsite.
    - Removes `Example:` and `<p>Example:` from before all code examples,
      since we use `@example` for this.

    * add changeset firebase

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * update docs

    * docs(firestore): fix ref doc issues for piplines (#9912)

    * docs(firestore): fix ref doc issues for piplines

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * Update packages/firestore/src/lite-api/pipeline.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * docs-devsite

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * docs(firestore): add missing `typescript` formatting to docs (#9909)

    Adds `typescript` code formatting to the code examples in docs, where
    they're missing.

    * cleanup

    * remove changeset

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>

    * Support API key referrer restrictions by changing the Auth SDK referrer policy (#10049)

    * feat(auth): Update referrer policy to strict-origin-when-cross-origin

    * chore: Add changeset tame-yaks-yawn.md

    * Fix querystring to always use apiKey even if a key is specified in the request (#10048)

    * Fix querystring to always use apiKey even if a key is specified in the request

    * Update packages/auth/src/api/index.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * Fix test helper URL generation to match new querystring order

    * Run yarn format

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>
    Co-authored-by: macastelaz <34776182+macastelaz@users.noreply.github.com>
    Co-authored-by: swseverance <swseverance@gmail.com>
    Co-authored-by: Athira M <athiramanu9400@gmail.com>
    Co-authored-by: Doris-Ge <dorisge@google.com>
    Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
    Co-authored-by: sedanah-m <mashhour@google.com>

commit 6868f5fdcb95dcc3cb55bad6f03e86cfeeaf97db
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Mon Jun 15 14:48:15 2026 -0400

    Prefactor `AttributesStore` to more cleanly support span attributes (#10079)

commit 558ee841dbd889dd0d7812613a7e553687b80517
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Mon Jun 15 08:49:18 2026 -0400

    Update crashlytics otel log attributes (#10062)

commit e6637173bc7e24630987b88ea9614a744509e9ae
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 14:16:50 2026 -0400

    Migrate route path provider into `AttributesStore` (#10060)

commit 1e203bcb02c248567320b7efc28dabd9b4f81928
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 11:31:32 2026 -0400

    Migrate all common/log attributes and logic into `AttributesStore` (#10053)

commit 5421eb9331f1fa8f9a188a3c3a6f3c577f069b50
Author: Rebecca He <31138589+rebehe@users.noreply.github.com>
Date:   Fri Jun 12 09:34:45 2026 -0400

    Migrate installation id provider logic into new `AttributeStore` (#10054)

commit 48f2deb81f97e51de31aacf9700a53e0af132ca7
Author: MaesterChestnut <40321652+MaesterChestnut@users.noreply.github.com>
Date:   Thu Jun 4 11:26:46 2026 -0400

    Crashlytics merge main (#10034)

commit 06423a1af4ff4017f76a8cd0d0f381f3c0bf1660
Author: Christina Holland <chholland@google.com>
Date:   Tue May 26 17:44:58 2026 -0700

    Update release workflows to use NPM publish token from Github secrets (#10006)

commit c9f1064327463e7a16e03fd0c420336fd99cee9b
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 26 20:42:09 2026 -0400

    Add crashlytics as export in packages/firebase package.json (#10005)

commit 3dd4e65d9746cadbd7e846149f393883a602fcb9
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 26 18:26:20 2026 -0400

    Add default telemetry endpoint for crashlytics (#10003)

commit 751dd8120f95ad1b6be215ff126eec5dfb6fd7df
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 21 08:43:42 2026 -0400

    Merge branch "main" into crashlytics2 (#9989)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    * fix(ai): Fix sendMessageStream bug that sends duplicate user turns (#9956)

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /e2e/smoke-tests (#9958)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * test(firestore): skip database source test that is timing out (#9966)

    * test(firestore): skip database source test that is timing out

    The test database keeps growing, causing this tests executionn time to
    keep growing, repeatedly exceeding new timeouts we set. For now, let's
    just skip this test.

    * add eslint disable

    * fix(auth): retry IndexedDB availability check on startup failure (#9845)

    * fix(auth): retry IndexedDB availability check on startup failure

    In environments like Chrome Extension Manifest V3 Service Workers, the initial IndexedDB transaction upon a cold start can sometimes drop or timeout. Previously, `_isAvailable()` would immediately catch the error, assume IndexedDB is broken, and silently fall back to `inMemoryPersistence`.

    This updates `_isAvailable()` to use the `_withRetries()` helper, ensuring it benefits from the same retry logic as actual storage operations. This prevents the SDK from incorrectly abandoning existing IndexedDB auth state.

    Fixes #9732

    * style(auth): run yarn format

    * chore: add changeset for IndexedDB availability check retry

    * fix(auth): robust IndexedDB connection handling and test stability

    * build(deps-dev): bump protobufjs in /packages/firestore (#9960)

    Merge rules bypassed due to errant format diff.

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.6.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs: v7.5.6</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.6/CHANGELOG.md">protobufjs's changelog</a>.</em></p>
    <blockquote>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a> (2026-04-27)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a> (2025-08-15)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>invalid syntax in descriptor.proto (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a> (2025-05-28)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>descriptor extensions handling post-editions (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a> (2025-05-14)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>ensure that types are always resolved (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2068">#2068</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/4b51cb2b8450b77f9f5de1c562e7fae93b19d040">4b51cb2</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.0...protobufjs-v7.5.1">7.5.1</a> (2025-05-08)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li>optimize regressions from editions implementations (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2066">#2066</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/6406d4c18afae309fc7b5f4a24d9674d85da180b">6406d4c</a>)</li>
    <li>reserved field inside group blocks fail parsing (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2058">#2058</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/56782bff0c4b5132806eb1a6bc4d08f930c4aaad">56782bf</a>)</li>
    </ul>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.0">7.5.0</a> (2025-04-15)</h2>
    <h3>Features</h3>
    <ul>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/f04ded3a03a3ddd383f0228e2fe2627a51f31aa3">f04ded3</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/ac9a3b9fe3134d48187e41b08d54ffaceddc6c1b">ac9a3b9</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/e5ca5c84e326699e10258367883a54934e0bfe14">e5ca5c8</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a84409b47f9ba0dba56da1af8054fb54f85d85a1">a84409b</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/9c5a178c4b59e0aa65ecac0bd7420171213b2ff9">9c5a178</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/b2c686721e3b63d092419fa1cbe58e1deb89534e">b2c6867</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/60f3e51087ca2c247473410f39331e1c766aefef">60f3e51</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/a6563617de04d510d6e8865eb6c5067f10247f64">a656361</a>)</li>
    <li>add Edition 2023 Support (<a href="https://github.com/protobufjs/protobuf.js/commit/869a95b1e5f553c76243aac45619061407a41084">869a95b</a>)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/2189e5beeca6a70e4c104dfdb9fb8200bc5f81fe"><code>2189e5b</code></a> chore: release protobufjs-v7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2174">#2174</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454"><code>75392ea</code></a> fix: Backport input hardening and CLI fixes to 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/8af8d7c0e9800879625f7d0d4a7fb51beb4410cd"><code>8af8d7c</code></a> chore(ci): Fix 7.x release please configuration (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2169">#2169</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e92ca42244ad67203b48d836290062dae037ead6"><code>e92ca42</code></a> chore(ci): Enable release-please for 7.x (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/2166">#2166</a>)</li>
    <li>See full diff in <a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">compare view</a></li>
    </ul>
    </details>
    <details>
    <summary>Maintainer changes</summary>
    <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for protobufjs since your current version.</p>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9952)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/dcodeIO/protobuf.js/releases">@​protobufjs/utf8's releases</a>.</em></p>
    <blockquote>
    <h2>protobufjs-cli: v1.1.1</h2>
    <h2><a href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">1.1.1</a> (2023-02-02)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><strong>cli:</strong> fix relative path to Google pb files (<a href="https://redirect.github.com/protobufjs/protobuf.js/issues/1859">#1859</a>) (<a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2">e42eea4</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/644d588c0495da6a570344248e1b5af901bc3b0c"><code>644d588</code></a> chore: release master (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1865">#1865</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/e42eea4868b11f4a07934804a56683321ed191e2"><code>e42eea4</code></a> fix(cli): fix relative path to Google pb files (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1859">#1859</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/dce9a2ef92d363752e40b295b0da9bd178f82e83"><code>dce9a2e</code></a> fix: use bundled filename to fix common pb includes (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1860">#1860</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/64e8936ad9f73c68b3fa1e57857dd38323b5a745"><code>64e8936</code></a> fix: use ES5 style function syntax (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1830">#1830</a>)</li>
    <li><a href="https://github.com/protobufjs/protobuf.js/commit/4489fa771464bcb49b57149760e9cc4131e8077e"><code>4489fa7</code></a> Revert &quot;fix: error should be thrown (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1817">#1817</a>)&quot; (<a href="https://redirect.github.com/dcodeIO/protobuf.js/issues/1864">#1864</a>)</li>
    <li>See full diff in <a href="https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1">compare view</a></li>
    </ul>
    </details>
    <br />

    * build(deps): bump @protobufjs/utf8 (#9949)

    Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
    - [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/dcodeIO/protobuf.js/compare/protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

    ---
    updated-dependencies:
    - dependency-name: "@protobufjs/utf8"
      dependency-version: 1.1.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.5.5 to 7.5.8 (#9973)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.8)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.8
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps-dev): bump protobufjs-cli from 1.1.3 to 1.2.1 (#9955)

    Bumps [protobufjs-cli](https://github.com/protobufjs/protobuf.js) from 1.1.3 to 1.2.1.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-cli-v1.1.3...protobufjs-cli-v1.2.1)

    ---
    updated-dependencies:
    - dependency-name: protobufjs-cli
      dependency-version: 1.2.1
      dependency-type: direct:development
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * build(deps): bump protobufjs from 7.4.0 to 7.5.9 in /e2e/data-connect (#9977)

    Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.4.0 to 7.5.9.
    - [Release notes](https://github.com/protobufjs/protobuf.js/releases)
    - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.9/CHANGELOG.md)
    - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.4.0...protobufjs-v7.5.9)

    ---
    updated-dependencies:
    - dependency-name: protobufjs
      dependency-version: 7.5.9
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feature(firestore): added minimum and maximum FieldValue operations (#9913)

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * fix(changelog-generator): fix postinstall build failure (#9948)

    The fix has two parts:

    1. Add `"types": ["node"]` to tsconfig.

    2. Fix an incorrect type cast in `index.ts`. The parsed GitHub API response
       was being cast to the DOM `Response` type to access its `.body` property,
       which is wrong — `Response.body` is a `ReadableStream`, not a string. The
       actual value is the parsed JSON from the GitHub PR API, whose `body` field
       is `string | null` per the API schema. Updated the cast accordingly.

    Resolves #9947

    * Feat/messaging api series (#9917)

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>
    Co-authored-by: macastelaz <34776182+macastelaz@users.noreply.github.com>
    Co-authored-by: swseverance <swseverance@gmail.com>

commit c71db890acf551cbd843ae8d148b0b3952f6c39f
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Wed May 20 22:57:01 2026 -0400

    Unify react router error boundaries and prevent duplicate logs (#9975)

    * Unify react router error boundaries and prevent duplicate logs

    * Fix tests

commit d3c3e0e768f0170c0af615e568367b445f9e7352
Author: Sai Sakhamuri <ssakhamu@google.com>
Date:   Fri May 15 13:29:14 2026 -0400

    refactoring common log attributes retrieval (#9967)

    * refactoring common log attributes retrieval

    * adding trace info as common attributes, refactoring options variable and startNewSession

    * yarn format

commit 98a08233c6cc3c4597453cdcb1e07ad06724ca2a
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 14:39:06 2026 -0400

    Update custom log attributes to align with OTel (#9953)

commit 6d3aed80851ef56facd46b2824b66bbfd95d89ae
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 11:22:14 2026 -0400

    Merge branch "main" into crashlytics2 (#9941)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-connect): add query de-duplication to stream transport (#9850)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * chore(data-connect): clean up streaming tests a bit (#9851)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * add de-duping - now for tests

    * add de-duplication tests for invokeQuery

    * finish invoke operation dedupe tests

    * add subscribe de-duping as well

    * add more query dedupe tests

    * clean up stream tests

    * clean up promise types in streaming tests

    * Pasta/bucatini resume refactor (#9885)

    * add test changes

    * add transportchanges

    * finalize changes, run yarn format

    * finalize changes based on reviewer feedback

    * feat(data-connect): add prefer resume over execute optimization to stream transport (#9879)

    * initial implementation - now for testing

    * finish tests

    * merge pasta/bucatini-resume-refactor

    * address reviewer comments

    * remove old comments

    * address reviewer comments

    * feat(data-connect): add intelligent reconnection to streaming transport and harden disconnect/cleanup functionality (#9893)

    * WIP

    * first pass

    * fixing names

    * tidying up, fixing tests

    * fixed tests

    * address reviewer comments

    * address reviewer comments and harden close/cleanup lifecycle

    * address reviewer comments

    * make listener registering and unregistering more robust

    * merge main, add changeset

    * chore: fix e2e tests for functions and AI (#9924)

    * Version Packages (#9923)

    Release v12.13.0

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix(messaging): wire Firelog delivery metrics flush (startLoggingService) (#9916)

    * fix(data-connect): Reduce Stream Transport Idle Timeout to Instant (#9936)

    * reduce idle cooldown to instant

    * run yarn format and add changeset

    * update changelog

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Mark Duckworth <1124037+MarkDuckworth@users.noreply.github.com>
    Co-authored-by: Daniel La Rocque <dlarocque@google.com>
    Co-authored-by: Christina Holland <chholland@google.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com>
    Co-authored-by: Stephen Rosa <84193009+stephenarosaj@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: DellaBitta <drsanta@google.com>
    Co-authored-by: Kai Wu <zwu52@users.noreply.github.com>

commit f1ce91f6fd815e0a81e21648afd1797f21aef2b6
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Tue May 12 10:25:18 2026 -0400

    Add crashlytics to packages/firebase/package.json (#9946)

commit 95e5307dd57ab56465a915b0c7dd4760cb087d29
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 7 16:57:12 2026 -0400

    Add crashlytics option for specifying cloud region (#9933)

commit f6902a26c18cbec5c0f1eb1ba216180f91cee98a
Author: Anthony Barone <tonybaroneee@gmail.com>
Date:   Thu May 7 16:35:04 2026 -0400

    Merge branch "main" into crashlytics2 (#9932)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth (#9884)

    * feat(firestore): Added search stage support for languageCode, offset, limit, and retrievalDepth

    * Create four-bottles-marry.md

    * docgen

    * PR feedback

    * Update packages/firestore/src/lite-api/stage_options.ts

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * Improve ref doc

    * More search refDoc improvements

    * Consistent capitalization of search within ref docs

    * remove deleted rut file

    * docs devsite

    ---------

    Co-authored-by: Daniel La Rocque <dlarocque@google.com>

    * chore: Update picomatch and rollup-plugin-typescript2 (#9892)

    * build(deps): bump picomatch from 2.3.1 to 2.3.2

    Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
    - [Release notes](https://github.com/micromatch/picomatch/releases)
    - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

    ---
    updated-dependencies:
    - dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade picomatch and rollup-plugin-typescript2

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * feat(ai): ImageConfig and FinishReasons (#9819)

    * fix(firestore): Assertion ID: ca9 (pendingResponses less than 0) caused by target creation race condition (#9842)

    * implement remote store target mapping

    * Add spec test for removeTarget race condition

    * cleanup

    * Update packages/firestore/src/remote/remote_store.ts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * cleanup

    * Create loud-camels-cross.md

    * Fix PR concerns and new tests

    * Cleanup possible leak in watchChangeAggregator

    * fix build issue with spec tests

    * Fix integration test failure when running against public api

    * another build fix

    * Update spec test builder and runner to allow the spec test to specify the index of a target ID used for a query for some watch message types

    * lint

    * add Remote and SDK TargetID types

    * Fix tests for SDK and Remote TargetId types

    * refactor spec test to add step watchUsesTargetIndex and remove steps where the target index is passed to individual steps

    * Remove unnecessary  values passed to watchRemoves

    * Removed unused helpers

    ---------

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    * build(deps): bump axios from 1.13.5 to 1.15.2 (#9860)

    Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
    - [Release notes](https://github.com/axios/axios/releases)
    - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
    - [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.2)

    ---
    updated-dependencies:
    - dependency-name: axios
      dependency-version: 1.15.1
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * chore: migrate test functions to v2 (#9910)

    * feat(data-connect): add de-duplication, resume, and intelligent reconnection with backoff (#9905)

    * chore(data-connect): update documentation and names in stream transport (#9846)

    * rename in preparation for future changes

    * finish renaming + updating comments

    * minor typo fix

    * feat(data-conn…
@firebase firebase locked and limited conversation to collaborators Jun 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants