Skip to content

Fix custom provider icons in the model picker and Model Pad - #102

Draft
sambitcreate wants to merge 3 commits into
mainfrom
cursor/custom-provider-icons-53cb
Draft

Fix custom provider icons in the model picker and Model Pad#102
sambitcreate wants to merge 3 commits into
mainfrom
cursor/custom-provider-icons-53cb

Conversation

@sambitcreate

@sambitcreate sambitcreate commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Custom provider artwork was saved on retina displays as a 2x PNG (often 128px). The display validator only accepts ≤64px, so parseProvider dropped artwork on save. The composer picker and Model Pad never received the icon.

This change:

  • Encodes provider artwork at 1x (scaleFactor: 1), matching Bot avatars, and fails closed if the PNG still fails the display contract
  • Recovers already-oversize PNG payloads on save by re-encoding them
  • Renders custom marks with the same currentColor mask as bundled logos so they stay visible on dark picker chrome
  • Shows the provider icon on the Model Pad puck (white knob uses a dark mark; confirmed uses accent foreground)

Tests cover the 1x encode contract, persist/re-encode of a 65px PNG, the save-path persistableProviderArtwork wiring, picker entry artwork, themed custom marks, and the pad puck wiring. Electron UI was not driven in this environment; verification is via the focused suites.

A Grok 4.6 review found no P0 product bugs. Follow-up commits tighten tests so save recovery cannot regress unnoticed.

Open in Web Open in Cursor 

cursoragent and others added 3 commits September 9, 2026 13:56
Encode saved provider artwork at 1x so the display validator keeps it, recover oversize PNGs on save, theme custom marks like bundled logos, and put the icon on the Model Pad puck.

Co-authored-by: Sambit Biswas <sambitcreate@users.noreply.github.com>
Lock the save path to persistable artwork recovery, recover a real 65px PNG, and tighten picker/pad source scans so they cannot match the wrong branch.

Co-authored-by: Sambit Biswas <sambitcreate@users.noreply.github.com>
Narrow slug before passing it to ThemedProviderMark so type-check accepts mark as a string.

Co-authored-by: Sambit Biswas <sambitcreate@users.noreply.github.com>
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.

2 participants