mirror of
https://github.com/stablyai/orca.git
synced 2026-09-23 00:02:29 +00:00
* fix(agents): bundle agent icons instead of loading them from Google's favicon service (#8451) Agents without a hand-authored SVG glyph loaded their icon live from Google's favicon service (www.google.com/s2/favicons). That service is unreachable in some regions (e.g. mainland China) and offline, so ~23 agent icons rendered as broken images on the agent settings page, the terminal title bar, and the status bar. Bundle each favicon as a build-time asset under resources/agent-icons/ and render it via a new agent id -> URL map (agent-favicon-assets.ts). The remote favicon service now only serves as a last-resort fallback for any future agent that lacks a bundled icon. Follows the same pattern as #7373, which bundled the OpenCode mark. * fix(agents): bundle mobile agent icons too; drop dead omp faviconDomain (#8451) Mobile had the same offline/region bug: MobileAgentIcon rendered every non-glyph agent from Google's favicon service. It actually affected more agents than desktop, since mobile lacks hand-authored glyphs for Copilot, OpenCode, Kilocode, Droid, and OpenClaude — all fell through to the favicon path. Bundle the 28 favicon-path icons under mobile/assets/agent-icons/ and render them via a Metro static require() map (mobile-agent-icon-assets.ts). A node-env invariant test asserts every favicon-path agent ships a bundled PNG and is wired into the map. Also remove omp's vestigial faviconDomain from the desktop catalog — omp renders the hand-authored OmpIcon glyph, so the favicon fallback was never reachable. * refactor(agents): share one set of bundled agent icons between desktop and mobile Desktop and mobile each shipped their own copy of the favicon PNGs (23 + 28, with 23 byte-identical duplicates). Consolidate them into a single source of truth at src/shared/agent-icons/, reachable by both bundlers: - Desktop (Vite) imports them via `?url`. - Mobile (Metro) requires them; Metro already watches src/shared via metro.config.js sharedRoot, so no config change is needed. The two per-platform maps stay separate because the import syntax differs (`?url` string vs `require()` asset ref), but they now point at the same files. Verified with a real `expo export`: Metro bundles all 28 shared icons from src/shared/agent-icons.
394 B
64x64px
394 B
64x64px