Commit Graph
888 Commits
Author SHA1 Message Date
Andrew Heard 6c5c913df8 test(ai): add GeminiLanguageModel integration test (#16621)
Add an integration test in FirebaseAITestApp verifying streaming
responses using GeminiLanguageModel and FoundationModels on supported
platforms. Update the TestApp project to link FirebaseAILogic.

Enhance scripts/repo to support array options for --filter and
--exclude so multiple test targets can be passed to xcodebuild.

Update sdk.ai.yml to introduce a dedicated integration job running
on xcode-27 with GEMINI_LANGUAGE_MODEL: 1, exclude
GeminiLanguageModelTests from standard integration runs, and provide
human-readable display names for testapp-integration matrix jobs.
2026-09-06 20:17:29 -04:00
Andrew Heard b455c643a8 test(ai): add GeminiLanguageModel SPM test scheme (#16614) 2026-09-05 13:33:58 -04:00
Andrew Heard 3796a55fdf feat(ai): add GeminiLanguageModel (#16601)
Implemented `GeminiLanguageModel`, providing an adapter for Google's
Gemini models conforming to Apple's `FoundationModels.LanguageModel`
protocol. This PR includes text to text generation capabilities; other
modalities and Gemini features will be handled in follow-up PRs.

**Note:** The `GeminiLanguageModel` implementation is guarded by the
environment variable `GEMINI_LANGUAGE_MODEL`. By default none of the
`GeminiLanguageModel` implementation is included.

Key additions:
- `GeminiLanguageModel`: Implements `LanguageModel` protocol with
  reasoning capabilities, configuring execution via `ModelResource`
  and `EndpointConfiguration`.
- `GeminiLanguageModelExecutor`: Converts prompt instructions and
  history into Gemini streaming requests, yielding responses as
  `LanguageModelSession.ResponseStream`.
- `GeminiTranscriptTranslator`: Translates Apple `Transcript` entries
  and segments into Gemini `Content` structures while preserving thought
  signatures and validating supported transcript features.
- `GeminiLanguageModel.Error` and `GeminiErrorMapper`: Translates Gemini
  API, HTTP, and network errors into standard `LanguageModelError` cases
  (`rateLimited`, `timeout`, `guardrailViolation`, `refusal`, and
  `unsupportedLanguageOrLocale`) or `GeminiLanguageModel.Error` cases
  (`serviceUnavailable`, `networkFailure`, `modelNotFound`, `apiError`).
  The `APIError` payload is designed for seamless forward compatibility
  with both GenerateContent and the upcoming Interactions API.
- Testing infrastructure: Adds `ConditionTrait.requireFoundationModels`
  to conditionally run Foundation Models tests only on supported
  platforms (macOS 27+, iOS 27+, watchOS 27+, visionOS 27+), along with
  shared test constants, mock fixtures, and comprehensive unit and
  integration test suites.
2026-09-04 18:05:45 -04:00
Andrew Heard 56c1eef4ea chore(ci): add xcode 27 to spm test matrix (#16604) 2026-09-04 11:38:33 -04:00
Daymon b5bbe060d8 fix(appcheck): build failure with unguarded provider (#16564) 2026-08-28 11:48:10 -05:00
Paul Beusterien 2a6dc1b7f5 Update to clang-format 23 (#16562) 2026-08-26 12:01:13 -07:00
Nick Cooke 956c846935 fix(ci): updates to notices and pull request generators (#16523) 2026-08-19 14:35:12 -07:00
Andrew Heard 5da916b57a ci: replace downloadPlatform with simctl create (#16494) 2026-08-11 12:01:37 -04:00
Andrew Heard 4fea6d1609 fix(ci): isolate AI Live integration test runs (#16493) 2026-08-11 11:59:22 -04:00
Paul Beusterien e5615f4180 Run codeQL for Swift code (#16436) 2026-07-23 08:53:23 -07:00
Nick Cooke 9a0bbc2695 feat(ai-infra): package core team AI skills and infrastructure (#16401) 2026-07-17 15:45:28 -04:00
Daymon 0d902c157a fix(repo): fix root help command logging in repo script (#16403) 2026-07-17 15:32:38 +00:00
Paul BeusterienandAndrew Heard 6b581ae875 [AI] Rename vertexAI to agentPlatform (#16372)
Co-authored-by: Andrew Heard <andrewheard@google.com>
2026-07-13 14:32:58 -07:00
Daniel La Rocque 6aa59b998b Support -b flag in style.sh to format all files changed on current branch (#16384) 2026-07-13 08:15:03 -04:00
Nick Cooke 35140017b6 cleanup(infra): refactor spec testing tooling (#16319) 2026-06-29 18:08:36 -04:00
Nick Cooke e95ff120c0 chore: update .github/actions/testing_report_generation gems (#16325) 2026-06-26 17:07:00 -07:00
Nick Cooke ec27af3339 chore(scripts): remove obsolete style script exclusions (#16314) 2026-06-23 16:55:24 -04:00
Ryan Wilson 228a5ff118 feat(skills): add ios-simulator-test-recording skill for UI test walkthroughs (#16005) 2026-06-22 10:51:43 -04:00
Nick CookeandPaul Beusterien 06d53a2ae0 feat(appcheck): implement RecaptchaEnterpriseProvider and tests (#16155)
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2026-06-10 12:08:31 -04:00
Daymon fb7516a9bd feat(ci): separate AI Logic live tests from the others (#16219) 2026-06-02 13:14:45 -05:00
Morgan Chen 6f843d9a81 Use the actual variable name (#16213) 2026-05-28 14:52:33 -07:00
Morgan Chen 0badf7cf14 fix missing variable name (#16212) 2026-05-28 14:29:22 -07:00
Nick Cooke e50c20a74c cleanup(infra): remove health metrics presubmit infra (#16195) 2026-05-27 13:11:23 -04:00
cherylEnkidu b9387da4ec Add xcresults upload for failed test (#16154) 2026-05-04 13:24:01 -04:00
Andrew Heard f0ec14ccf0 [CI] Remove OS=${xcode_version} from watchos_flags in build.sh (#16115) 2026-04-23 21:05:03 -04:00
cherylEnkiduandNick Cooke 638a1b094a Optimize Firestore CI and Migrate Test Retries to xcodebuild (#16024)
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2026-04-13 10:39:09 -04:00
Ryan Wilson 1ae730ef72 Implement help option in add_copyright.sh (#16063) 2026-04-10 08:50:34 -04:00
Nick Cooke 0276eea14d fix(ci): Move zip quickstart testing to Xcode 26 (#16022) 2026-04-01 18:08:32 -04:00
Nick Cooke 75efc03689 infra: move CI to use Xcode 26 and macOS 26 (#15997) 2026-03-31 17:36:13 -04:00
Peter FrieseandNick Cooke d9237bd043 feat(firestore): add AsyncSequence support for snapshots (#15363)
Introduces `AsyncSequence` support for `Query.snapshots` and `DocumentReference.snapshots`, 
enabling developers to handle Firestore real-time updates using Swift's structured 
concurrency.

- Provides a modern, async-await compatible alternative to `addSnapshotListener`.
- Supports both `Query` and `DocumentReference` snapshot streams.
- Automatically handles listener registration and cleanup on task cancellation.
- Configured with an unbounded buffering policy to ensure no snapshot events are lost.

This work follows similar patterns introduced for Firebase Auth and Remote Config, 
bringing consistency to the developer experience across the Firebase Apple SDKs.

Related Projects:
- Firebase Auth AsyncSequence (#15362)
- Remote Config AsyncSequence (#15352)

Public API:
- `DocumentReference.snapshots(includeMetadataChanges:) -> DocumentSnapshotsSequence`
- `Query.snapshots(includeMetadataChanges:) -> QuerySnapshotsSequence`

Tested on iOS, macOS, tvOS, and watchOS.

Signed-off-by: Peter Friese <peter@peterfriese.dev>
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2026-03-31 12:49:25 +02:00
Andrew Heard 1887f61ece [CI] Use iPhone 17 Simulator on Xcode > 16 (#15992) 2026-03-26 17:17:54 -04:00
cherylEnkidu 1810917a02 Fix broken tests caused by backend changes (#15930) 2026-03-23 15:53:09 -04:00
Andrew Heard 150698e98a [AI] Lower minimum required deployment targets (#15928) 2026-03-12 18:33:33 -04:00
Daymon f7b3d6a615 fix(ci): exclude Carthage dir from check script (#15919) 2026-03-10 15:49:19 +00:00
Nick Cooke 69762db632 fix: exempt GeneratedFirebaseAI from style script (#15906) 2026-03-05 11:52:12 -05:00
Paul Beusterien ec3162a132 [Infra] clang-format 22 updates (#15899) 2026-03-03 11:13:36 -08:00
Andrew Heard e00acaf778 fix(ci): Update to clang-format@22 (#15890) 2026-02-27 00:22:09 +00:00
2473e71979 [Infra] Add script to automatically add copyright to files (#15878)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: ryanwilson <1097316+ryanwilson@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2026-02-25 10:12:42 -05:00
cherylEnkiduandNick Cooke beda7f4e0e Change Firestore CI (#15685)
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2026-02-05 15:24:44 -05:00
Nick Cookeandgemini-code-assist[bot] a8fbda0ea3 feat: add new reusable workflow, _build.yml (#15762)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-30 16:46:48 -05:00
Nick Cookeandgemini-code-assist[bot] cf1840418c fix: Xcode/OS matrices in reusable SPM and CP workflows (#15732)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-23 14:13:36 -05:00
Nick Cooke 30cae5bf5a fix: fail prerelease workflow if prerelease tagging fails (#15747) 2026-01-21 11:55:17 -05:00
Nick Cooke 4dafc1a460 chore: remove unused scripts (#15744) 2026-01-21 01:16:29 +00:00
Nick Cooke 015698ae49 fix: collisions in artifact names from re-usable catalyst job (#15709) 2026-01-13 08:22:33 -08:00
Nick Cooke baccc41606 fix: syntax error in scripts/test_catalyst.sh (#15699) 2026-01-09 11:31:03 -05:00
Nick Cooke 45955f91b3 fix: upload catalyst xcodebuild logs (#15692) 2026-01-08 15:38:22 -05:00
Nick Cooke b9277cb6a7 fix: add log and xcresult artifacts from scripts/test_catalyst.sh (#15687) 2026-01-07 20:37:07 -05:00
+12 1feabe5605 feat/pipeline/private-preview to main (#15625)
Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
Co-authored-by: wu-hui <wu.hui.github@gmail.com>
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
Co-authored-by: Andrew Heard <andrewheard@google.com>
Co-authored-by: pcfba <111909874+pcfba@users.noreply.github.com>
Co-authored-by: Morgan Chen <morganchen12@gmail.com>
Co-authored-by: leojaygoogle <98397998+leojaygoogle@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Anka <runner@Mac-1748340061346.local>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: dmaclach <dmaclach@gmail.com>
Co-authored-by: Yakov Manshin <git@yakovmanshin.com>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Seyed Mojtaba Hosseini Zeidabadi <chenzook+github@gmail.com>
Co-authored-by: SeanChinJunKai <82928860+SeanChinJunKai@users.noreply.github.com>
Co-authored-by: htcgh <htcgh@users.noreply.github.com>
Co-authored-by: Haibo Yang <haibo942us@gmail.com>
Co-authored-by: Anka <runner@Mac-1750759009403.local>
Co-authored-by: Tushar Khandelwal <64364243+tusharkhandelwal8@users.noreply.github.com>
Co-authored-by: themiswang <themisw@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-23 15:00:50 -05:00
Nick Cooke 0a16fd1412 fix: pod_lib_lint.rb should print copy-and-paste friendly command (#15630) 2025-12-19 14:17:53 -05:00
Nick Cooke 9a119d3074 feat: improve build.sh logging and add dry run feature (#15615) 2025-12-17 11:50:10 -05:00