Skip to content

fix(mobile): show correct provider icons for Grok, Cursor, and OpenCode - #4586

Merged
t3dotgg merged 7 commits into
pingdotgg:mainfrom
Wraient:main
Aug 4, 2026
Merged

fix(mobile): show correct provider icons for Grok, Cursor, and OpenCode#4586
t3dotgg merged 7 commits into
pingdotgg:mainfrom
Wraient:main

Conversation

@Wraient

@Wraient Wraient commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

What Changed

Mobile ProviderIcon only special-cased Claude and used the Codex mark for every other provider. Ported the web SVG paths so Grok, Cursor, and OpenCode use their own icons on Android/iOS. Codex stays the default for unknown drivers.

Why

Grok (and other non-Claude providers) showed the Codex icon on mobile, which is wrong branding and inconsistent with web.

UI Changes

Provider icons in the model picker / thread chrome now match web for Grok, Cursor, and OpenCode. App launcher icon unchanged.

Before:
image

After:
image

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Low Risk
Presentation-only change in a single mobile component; no auth, data, or business-logic impact.

Overview
Mobile ProviderIcon now renders distinct SVGs for grok, cursor, and opencode (dark-mode-aware fills), aligned with web. Those providers previously used the default Codex mark.

The default branch still serves Codex and unknown drivers; its fill now uses a shared mono color variable instead of inline hex values.

Reviewed by Cursor Bugbot for commit ff90fe6. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

[!NOTE]

Show correct provider icons for Grok, Cursor, and OpenCode in mobile ProviderIcon

Adds explicit branches in ProviderIcon.tsx for grok, cursor, and opencode providers, each rendering a distinct SVG with dark-mode-aware fill colors. Previously these providers fell back to the default icon.

Macroscope summarized ff90fe6.

Mobile ProviderIcon only special-cased Claude and fell back to the Codex mark for every other driver. Port the web SVG paths so Grok, Cursor, and OpenCode render their own icons on Android/iOS.
@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ff7ef63d-f42f-4a3d-aab8-f8ec72c0d3ea

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Jul 26, 2026
@macroscopeapp

macroscopeapp Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds static SVG icons for three providers in a UI component. The changes are purely presentational with no runtime behavior impact - just mapping provider strings to corresponding SVG elements.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg
t3dotgg merged commit 94331c5 into pingdotgg:main Aug 4, 2026
15 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 4, 2026
PauloDaniel1993 added a commit to PauloDaniel1993/t3code that referenced this pull request Aug 4, 2026
Brings in 17 upstream commits (base e60821f). Headline changes:

- Upgrade Effect to beta.103 (pingdotgg#5331), which removes the
  `Schema.UnknownFromJsonString` export and drops the positional actual
  argument from `SchemaIssue.InvalidValue`.
- Replace the hand-rolled gzip path with `HttpMiddleware.compression()`,
  deleting apps/server/src/httpCompression/ entirely (pingdotgg#5331).
- Extract desktop base/state dir resolution into DesktopStatePaths.ts, and
  add Linux secret storage, URL-scheme claiming, and early-startup modules
  (pingdotgg#2916, pingdotgg#5054).
- Mobile provider icons for Grok, Cursor, and OpenCode (pingdotgg#4586).
- Web polish: chat code blocks, tooltip z-index, spacing, loading screen,
  terminal cursor blink, terminal close-shortcut guard.

Manual resolution and why:

- apps/desktop/src/app/DesktopEnvironment.ts — semantic. Upstream deleted
  the `configuredBaseDir` local that the fork's branding override sat on
  top of, moving that logic into resolveDesktopBaseDir/resolveDesktopStateDir.
  Took upstream's extraction wholesale and re-applied the fork's
  displayNameOverride intent on it. The fork additionally gains upstream's
  trimming of a blank T3_HOME, which the old inline version did not do.

- apps/mobile/src/components/ProviderIcon.tsx — the fork had replaced raw
  `props.provider === ...` checks with a resolveProviderIconKind seam;
  upstream's three new icons used the raw form. Routed them through the
  seam instead of mixing both styles, extended ProviderIconKind, and added
  test coverage so the new kinds cannot silently fall back to the OpenAI
  icon.

- apps/server/src/textGeneration/CodexTextGeneration.ts — mechanical. Took
  upstream's one-line Schema change, kept the fork's rewrite of the rest.

Merge-caused fixes beyond the conflicts:

- Swept 15 fork-only call sites from `Schema.UnknownFromJsonString` to
  `Schema.fromJsonString(Schema.Unknown)`. These produced no conflict
  markers; the export simply no longer exists in beta.103. Upstream's own
  OrchestrationEventStore.ts survives only because it defines a local
  alias of the same name.

Verified: pnpm install, pnpm typecheck (15/15 projects clean), pnpm test.
Five failures remain in packages/shared (relayClient, logging); those four
files are byte-identical to both upstream/main and the pre-merge backup,
and assert POSIX-only behavior (linux-x64 fixture paths, forward-slash
path comparisons, ENAMETOOLONG). They cannot pass on Windows and are
unrelated to this merge.

Backup of the pre-merge tip: backup/dev-before-merge-20260804
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants