Skip to content

Add Gemini provider (Windows parity) - #34

Merged
HemSoft merged 20 commits into
mainfrom
feature/issue-16-gemini-provider
Jul 21, 2026
Merged

Add Gemini provider (Windows parity)#34
HemSoft merged 20 commits into
mainfrom
feature/issue-16-gemini-provider

Conversation

@HemSoft

@HemSoft HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Closes #16

Summary

  • Adds Gemini as a provider using Gemini CLI OAuth credentials from ~/.gemini/oauth_creds.json.
  • Refreshes access tokens via Google OAuth and fetches Pro/Flash quota from the Code Assist APIs, with optional tier label from loadCodeAssist.
  • Wires Gemini into settings, usage cards, auto-discovery, and refresh service; includes parser/provider unit tests with redacted fixtures.

Verification

  • ./test.sh — 108 tests passed (including new Gemini parser/provider tests)

Residual risk

  • Requires a logged-in Gemini CLI session. Token refresh resolves OAuth client credentials from the credentials file, the ID token audience, or CODEXBAR_GOOGLE_CLIENT_ID / CODEXBAR_GOOGLE_CLIENT_SECRET (also accepts GEMINI_OAUTH_*).

Made with Cursor

Note

Add Gemini as a provider with OAuth authentication and usage quota display

  • Introduces ProviderID.gemini and wires it into provider settings, icon display, and default account configuration with OAuth as the auth method.
  • Adds GeminiUsageProvider which reads local OAuth credentials, refreshes expired tokens via Google's token endpoint, and fetches quota from CloudCode endpoints, mapping results to usage bars via GeminiUsageParser.
  • Adds LocalCredentialDiscovery support for Gemini: auto-adds a Gemini account when ~/.gemini/oauth_creds.json is present and CLI settings indicate OAuth/login mode; suppresses re-discovery after account removal.
  • Adds GeminiAuthFileStore, GeminiCredentialsParser, GeminiTokenRefresh, and GeminiCLISettings to handle credential I/O, JSON parsing, token refresh, and CLI settings detection.
  • Comprehensive test coverage is included for parsing, token refresh, provider discovery, and quota fetching with mock network responses.

Macroscope summarized aa1a994.

Reads ~/.gemini/oauth_creds.json, refreshes tokens via Google OAuth using client credentials from the file or environment, and surfaces Pro/Flash quota bars with tier labels from the Code Assist API.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@cursor

cursor Bot commented Jul 17, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Gemini as a macOS usage provider using Gemini CLI OAuth credentials, automatic token refresh, tier and quota parsing, reset countdowns, local credential discovery, settings support, provider registration, and XCTest coverage.

Changes

Gemini provider

Layer / File(s) Summary
Credential contracts and persistence
CodexBarMac/Models/*, CodexBarMac/Services/GeminiCredentialsParser.swift, CodexBarMac/Services/GeminiAuthFileStore.swift, CodexBarMac/Services/GeminiTokenRefresh.swift
Adds Gemini identifiers, credential validation, JSON parsing, credential merging, OAuth-file persistence, and refresh-token request construction.
Quota parsing and usage fetching
CodexBarMac/Services/GeminiUsageParser.swift, CodexBarMac/Services/GeminiUsageProvider.swift
Fetches tier, project, and quota data, refreshes expired tokens, caches tier metadata, parses Pro and Flash usage, and reports reset information.
Discovery, account configuration, and provider wiring
CodexBarMac/Services/LocalCredentialDiscovery.swift, CodexBarMac/Services/ProviderConfigurationStore.swift, CodexBarMac/Services/UsageRefreshService.swift, CodexBarMac/Services/GeminiCLISettings.swift
Discovers Gemini OAuth credentials, creates or suppresses local Gemini accounts, registers the live provider, and checks CLI authentication modes.
Settings presentation and build integration
CodexBarMac/Views/*, CodexBarMac.xcodeproj/project.pbxproj, CHANGELOG.md
Adds Gemini authentication guidance and icons, compiles the new sources, and documents live quota fetching.
Provider validation
CodexBarMacTests/CodexBarMacTests.swift
Tests credentials, refresh requests, quota parsing, project discovery, CLI settings, provider integration, and local discovery paths.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant GeminiUsageProvider
  participant GeminiAuthFileStore
  participant GeminiTokenRefresh
  participant GeminiQuotaAPI
  participant GeminiUsageParser
  User->>GeminiUsageProvider: Request usage refresh
  GeminiUsageProvider->>GeminiAuthFileStore: Read OAuth credentials
  GeminiUsageProvider->>GeminiTokenRefresh: Refresh expired access token
  GeminiTokenRefresh->>GeminiQuotaAPI: Send token refresh request
  GeminiQuotaAPI-->>GeminiTokenRefresh: Return refreshed token
  GeminiUsageProvider->>GeminiAuthFileStore: Persist refreshed credentials
  GeminiUsageProvider->>GeminiQuotaAPI: Fetch tier and quota
  GeminiQuotaAPI-->>GeminiUsageProvider: Return tier and quota JSON
  GeminiUsageProvider->>GeminiUsageParser: Parse Pro and Flash usage
  GeminiUsageParser-->>User: Display usage and reset countdowns
Loading

Possibly related PRs

  • HemSoft/codexbar-mac#20: Extends the provider infrastructure with Gemini registration and local credential configuration.
  • HemSoft/codexbar-mac#25: Also updates live-provider registration and demo-provider filtering in UsageRefreshService.

Suggested labels: feature

Poem

OAuth tokens hop and gleam,
Pro and Flash join the stream.
Reset clocks softly chime,
Gemini refreshes right on time.
A rabbit cheers the quota dream! 🐇

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR meets issue #16: it adds Gemini support, reads local OAuth credentials, shows Pro/Flash quota with reset info, and includes redacted parser tests.
Out of Scope Changes check ✅ Passed No obvious out-of-scope changes are apparent; the edits stay focused on Gemini provider integration and related tests.
Title check ✅ Passed The title clearly summarizes the main change: adding Gemini provider support for Windows parity.
Description check ✅ Passed The description is directly related and accurately describes the Gemini provider, credential, and quota-fetching changes.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/issue-16-gemini-provider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot added the feature label Jul 17, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9f555274fb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CodexBarMac/Services/GeminiTokenRefresh.swift
Comment thread CodexBarMac/Services/GeminiUsageProvider.swift
Use Windows-style split installed-app OAuth defaults when credentials omit client secrets, and mark transient Gemini failures as incomplete refreshes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Line 24: Remove the changelog entry describing live Gemini quota fetching
through Gemini CLI OAuth credentials, and do not ship or document that
OAuth-based integration until a supported API path or explicit authorization is
available.

In `@CodexBarMac/Services/GeminiAuthFileStore.swift`:
- Around line 26-28: Update the credential-writing flow around existingFileMode
to always use 0600 instead of preserving the prior mode, and make the chmod
call’s failure propagate as an error rather than discarding its result. Keep the
atomic write behavior unchanged.

In `@CodexBarMac/Services/GeminiTokenRefresh.swift`:
- Around line 6-30: Add an expired-token Gemini refresh test in
CodexBarMacTests/CodexBarMacTests.swift near the existing Gemini parsing and
quota-fetch tests, mocking the token endpoint and asserting refreshed
credentials are persisted and reused on subsequent requests; no direct change is
required in GeminiTokenRefresh.resolveClientID, resolveClientSecret, or
makeRefreshTokenRequestBody.

In `@CodexBarMac/Services/GeminiUsageParser.swift`:
- Around line 62-83: Update the bucket aggregation in the Gemini usage parser to
classify only explicitly recognized Pro and Flash model families, ignoring
missing or unrelated model IDs. Track whether each family has been selected so
its first matching bucket is accepted even when remainingFraction is 1.0, while
retaining the reset date from that selected full bucket and continuing to
replace it only when a later matching bucket has lower remaining usage.

In `@CodexBarMac/Services/GeminiUsageProvider.swift`:
- Around line 212-228: Update the tier-fetch flow around tierCache.markFetched
so failures from network, non-2xx HTTP responses, or GeminiUsageParser.parseTier
do not mark the cache as fetched. Clear fetchInProgress on every exit, and set
fetched only after a valid tier name is successfully stored; adjust the
corresponding logic in the additional indicated tier-fetch path as well.

In `@CodexBarMacTests/CodexBarMacTests.swift`:
- Around line 3027-3047: Update
testGeminiTokenRefreshBuildsRequestBodyFromResolvedCredentials to use
refresh-token, client ID, and client secret values containing reserved
characters such as +, /, =, &, and spaces. Assert the encoded request body
contains each value’s correct percent-encoded representation rather than raw
values, while retaining the grant_type assertion.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5aab3377-2b70-4b21-b38e-904d56b57440

📥 Commits

Reviewing files that changed from the base of the PR and between 08e4fed and 9f55527.

📒 Files selected for processing (17)
  • CHANGELOG.md
  • CodexBarMac.xcodeproj/project.pbxproj
  • CodexBarMac/Models/GeminiCredentials.swift
  • CodexBarMac/Models/ProviderAccountConfiguration.swift
  • CodexBarMac/Models/ProviderID.swift
  • CodexBarMac/Services/GeminiAuthFileStore.swift
  • CodexBarMac/Services/GeminiCredentialsParser.swift
  • CodexBarMac/Services/GeminiTokenRefresh.swift
  • CodexBarMac/Services/GeminiUsageParser.swift
  • CodexBarMac/Services/GeminiUsageProvider.swift
  • CodexBarMac/Services/LocalCredentialDiscovery.swift
  • CodexBarMac/Services/ProviderConfigurationStore.swift
  • CodexBarMac/Services/UsageRefreshService.swift
  • CodexBarMac/Views/ProviderSettingsView.swift
  • CodexBarMac/Views/ProviderUsageCard.swift
  • CodexBarMac/Views/SettingsView.swift
  • CodexBarMacTests/CodexBarMacTests.swift

Comment thread CHANGELOG.md
Comment thread CodexBarMac/Services/GeminiAuthFileStore.swift Outdated
Comment thread CodexBarMac/Services/GeminiTokenRefresh.swift
Comment thread CodexBarMac/Services/GeminiUsageParser.swift
Comment thread CodexBarMac/Services/GeminiUsageProvider.swift
Comment thread CodexBarMacTests/CodexBarMacTests.swift
Only mark tier cache fetched after a successful parse, ignore unrelated quota buckets, enforce 0600 on OAuth file writes, and add expired-token refresh coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4fb426109e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CodexBarMac/Services/GeminiUsageProvider.swift Outdated
Cache cloudaicompanionProject alongside tier metadata and include it in retrieveUserQuota requests when available.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2f3d4c54ae

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CodexBarMac/Services/GeminiUsageProvider.swift
Comment thread CodexBarMac/Services/GeminiUsageParser.swift Outdated
Use GOOGLE_CLOUD_PROJECT-style env vars when loadCodeAssist does not return cloudaicompanionProject.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Use the lowest remaining fraction per model family across REQUESTS, INPUT_TOKENS, and OUTPUT_TOKENS so token limits surface before request quota is exhausted.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 058f388fc7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CodexBarMac/Views/ProviderSettingsView.swift
Comment thread CodexBarMac/Services/GeminiUsageProvider.swift Outdated
@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 15925a563b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CodexBarMac/Services/GeminiUsageProvider.swift Outdated
Keep auth-mode gating aligned with injected oauthFilePath so provider tests and custom homes are not blocked by the machine-wide CLI settings file.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5454e01f1e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CodexBarMac/Services/GeminiUsageProvider.swift
Comment thread CodexBarMac/Services/GeminiUsageProvider.swift Outdated
Resolve Code Assist project from GOOGLE_CLOUD_PROJECT before quota overrides, and follow Resource Manager nextPageToken until a labeled or gen-lang-client project is found.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8a24e13aaa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CodexBarMac/Services/GeminiUsageProvider.swift Outdated
@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Only cache Resource Manager projects that look like Code Assist (generative-language label or gen-lang-client); otherwise leave quota project unset.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

4 similar comments
@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@HemSoft

HemSoft commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: aa1a994977

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@HemSoft
HemSoft merged commit 2ccd595 into main Jul 21, 2026
3 checks passed
@HemSoft
HemSoft deleted the feature/issue-16-gemini-provider branch July 21, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backlog: Gemini provider (Windows parity)

1 participant