Skip to content

Desktop: custom project icons save but never render in projects list (v1.15.12) #29807

Description

@george-mcintyre

Description

In the opencode desktop app, custom project icons are saved correctly but never rendered in the projects list — each project shows the default colored letter instead of the chosen image.

Repro: Edit a project → choose an image file as its icon → Save. The selection persists, but the projects list keeps showing the default letter.

Root cause (investigated)

The icon is persisted. In the desktop data store the project record contains:

"icon": { "color": "pink", "override": "data:image/png;base64,iVBORw0K…" }

i.e. the chosen image is stored as a base64 data-URI in icon.override, alongside a fallback icon.color. The projects-list UI appears to render the color fallback and never uses icon.override.

I verified this across 5 projects in ~/Library/Application Support/ai.opencode.desktop/opencode.workspace.*.dat:

icon size type fallback color renders?
226 KB PNG pink no
40 KB JPEG lime no
30 KB PNG purple no
19 KB PNG mint no
3 KB JPEG pink no

Every stored override is a valid, fully-decodable image (correct PNG/JPEG magic bytes). So:

  • Not a save bug — the data is correct and complete.
  • Not size-dependent — a 3 KB icon fails identically to a 226 KB one.
  • Not format-dependent — PNG and JPEG both fail.
  • No errors loggedmain.log / renderer.log show only benign ResizeObserver loop… warnings and update checks; nothing about icon/image decode or render.

Conclusion: the projects-list icon component isn't consuming icon.override; it falls back to the colored letter.

OpenCode version

Desktop app v1.15.12 (mac arm64), channel latest (confirmed up to date; no newer version available).

Steps to reproduce

  1. Open the opencode desktop app.
  2. Edit a project and set its icon to an image file (PNG or JPEG), then Save.
  3. Observe the projects list — it shows the default colored letter, not the chosen image.
  4. (Optional) Inspect ~/Library/Application Support/ai.opencode.desktop/opencode.workspace.*.dat: the project record's icon.override contains the correct base64 data-URI.

Operating System

macOS 26.5 (arm64)

Notes

Data store path: ~/Library/Application Support/ai.opencode.desktop/. Happy to provide a sanitized sample record or logs if useful.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions