Skip to content

fix(ui): use theme-specific provider logos - #255

Merged
Waishnav merged 3 commits into
mainfrom
fix/provider-logo-theme-assets
Aug 29, 2026
Merged

fix(ui): use theme-specific provider logos#255
Waishnav merged 3 commits into
mainfrom
fix/provider-logo-theme-assets

Conversation

@Waishnav

@Waishnav Waishnav commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Provider logos in the Open Workspace card currently assume dark-theme artwork, which causes several provider marks to lose contrast or look incorrect when the host is using a light theme.

This selects provider artwork from the MCP host theme, updates the card when that theme changes, and adds matching light variants for the affected providers. OpenCode now uses the current official light and dark logo assets from its published brand pack instead of the older dark square mark. Claude keeps its brand-colored mark unchanged.

Summary by CodeRabbit

  • New Features

    • Added light- and dark-theme versions of provider logos.
    • Provider and agent logos now automatically match the workspace theme.
    • Existing workspace cards update their logos when the host theme changes.
  • Bug Fixes

    • Improved workspace card behavior when switching between light and dark themes.

@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a51a069b-ca0e-4f98-a796-8449c4ab9519

📥 Commits

Reviewing files that changed from the base of the PR and between 0ac5c7a and 16fada9.

⛔ Files ignored due to path filters (6)
  • src/ui/assets/provider-logos/copilot-dark.svg is excluded by !**/*.svg
  • src/ui/assets/provider-logos/copilot-light.svg is excluded by !**/*.svg
  • src/ui/assets/provider-logos/cursor-dark.svg is excluded by !**/*.svg
  • src/ui/assets/provider-logos/cursor-light.svg is excluded by !**/*.svg
  • src/ui/assets/provider-logos/openai-dark.svg is excluded by !**/*.svg
  • src/ui/assets/provider-logos/openai-light.svg is excluded by !**/*.svg
📒 Files selected for processing (1)
  • src/ui/workspace-app.tsx

Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The change adds light and dark provider logo variants. Workspace chips select logos for the host theme. Open workspace cards update existing logo images when the host theme changes.

Changes

Theme-aware provider logos

Layer / File(s) Summary
Themed logo lookup
src/ui/icons.ts
Provider entries now contain light and dark logo URLs. ProviderLogoTheme defines the supported themes. getProviderLogo returns the URL for the requested theme.
Themed workspace logo rendering
src/ui/workspace-app.tsx
Workspace chips derive the logo theme, request themed URLs, and mark logo images with their provider names.
Workspace theme synchronization
src/ui/workspace-app.tsx
When the host theme changes, open workspace cards update existing provider logo images. Other cards continue to render their payload when needed.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 16fad

This change selects provider logos that match the host theme and updates them when the theme changes. No actionable merge-blocking risk remains after normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant HostContext
  participant onhostcontextchanged
  participant syncWorkspaceProviderLogos
  participant getProviderLogo
  participant providerLogos
  HostContext->>onhostcontextchanged: provide theme
  onhostcontextchanged->>syncWorkspaceProviderLogos: pass light or dark theme
  syncWorkspaceProviderLogos->>getProviderLogo: request logo for each data-provider image
  getProviderLogo->>providerLogos: select themed provider URL
  syncWorkspaceProviderLogos->>syncWorkspaceProviderLogos: update image src when the URL differs
Loading

Poem

A rabbit maps the light and dark display
Provider logos choose the theme of the day
Workspace chips record each provider name
Existing images switch without a full redraw
Host context guides the logo change

🚥 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%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: using theme-specific provider logos in the UI.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/provider-logo-theme-assets

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.

@greptile-apps

greptile-apps Bot commented Aug 29, 2026

Copy link
Copy Markdown

Greptile Summary

The PR makes provider logos respond to the MCP host’s light or dark theme and refreshes open-workspace cards when that theme changes.

  • Adds light-theme artwork for Copilot, Cursor, OpenAI, OpenCode, and Pi.
  • Updates OpenCode’s dark artwork and changes provider-logo lookup to select a theme-specific asset.
  • Re-renders open-workspace content on host theme transitions.

Confidence Score: 4/5

The PR appears safe to merge, with a non-blocking interaction issue where changing themes can reset the open-workspace card’s scroll position.

Theme-aware logo selection is internally consistent and all referenced assets exist, but updating an open-workspace card rebuilds its scrollable DOM rather than preserving the user’s current viewport.

Files Needing Attention: src/ui/workspace-app.tsx

Important Files Changed

Filename Overview
src/ui/icons.ts Converts provider-logo entries into light/dark asset pairs while retaining dark as the default for existing callers.
src/ui/workspace-app.tsx Selects logos from the current host theme and refreshes them on theme changes, but the full refresh resets the workspace-details scroll position.
src/ui/assets/provider-logos/opencode-dark.svg Replaces the prior square OpenCode mark with the current dark-theme artwork.
src/ui/assets/provider-logos/opencode-light.svg Adds the corresponding light-theme OpenCode artwork.

Reviews (1): Last reviewed commit: "fix(ui): use theme-specific provider log..." | Re-trigger Greptile

Comment thread src/ui/workspace-app.tsx Outdated
@Waishnav
Waishnav merged commit 5edee0d into main Aug 29, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant