orca/mobile/src/components
Jinjing 371d71a262
fix(agents): bundle agent icons instead of loading them from Google's favicon service (#8451) (#8474)
* 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.
2026-07-12 22:10:09 -07:00
..
pr-sidebar refactor: remove state-only React effects (#8437) 2026-07-12 17:11:08 -07:00
AccountUsage.tsx Flip usage bars from percent-remaining to percent-used (#8167) 2026-07-10 15:39:38 -07:00
ActionSheetModal.tsx chore(lint): upgrade oxlint to 1.71 + enable 7 new rules (autofixed backlog) (#6841) 2026-06-29 22:38:29 -07:00
AgentIcons.tsx
AgentSpinner.tsx
AgentStateDot.tsx feat(mobile): pickers, workspace parity, active-workspace focus, tap-to-open, source-control parity, artifact viewing (#5330) 2026-06-15 22:02:51 -07:00
AuthFailedBanner.tsx fix(mobile): retry handshake before latching auth-failed (#5200) (#5304) 2026-06-13 14:25:43 -07:00
BottomDrawer.tsx the-sandbox-flag-is-2 (#8236) 2026-07-10 23:04:38 -07:00
ConfirmModal.tsx
ConnectionLog.tsx
CustomKeyModal.tsx feat(mobile): drag-to-reorder terminal shortcut keys in settings (#5076) 2026-06-11 14:05:07 -07:00
DragReorderList.tsx feat(mobile): drag-to-reorder terminal shortcut keys in settings (#5076) 2026-06-11 14:05:07 -07:00
MobileAgentIcon.tsx fix(agents): bundle agent icons instead of loading them from Google's favicon service (#8451) (#8474) 2026-07-12 22:10:09 -07:00
MobileDictationSetupSheet.tsx feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
MobileDiffReviewBody.tsx Add mobile Review Changes workflow (#5313) 2026-06-13 14:24:26 -07:00
MobileDiffReviewDrawers.tsx Add mobile Review Changes workflow (#5313) 2026-06-13 14:24:26 -07:00
MobileDiffReviewFileSummary.tsx Add mobile Review Changes workflow (#5313) 2026-06-13 14:24:26 -07:00
MobileDiffReviewFooter.tsx Add mobile Review Changes workflow (#5313) 2026-06-13 14:24:26 -07:00
MobileDiffReviewHeader.tsx Show the git primary action on mobile Source Control (#6659) 2026-06-29 22:30:46 -07:00
MobileDiffReviewLine.tsx fix(mobile): match diff review line height to desktop diff density (#7276) 2026-07-03 17:34:44 -07:00
MobileDiffReviewScreenView.tsx Create pr not working on mobile (#6523) 2026-06-27 18:34:58 -07:00
MobileHtmlPreview.tsx feat(mobile): pickers, workspace parity, active-workspace focus, tap-to-open, source-control parity, artifact viewing (#5330) 2026-06-15 22:02:51 -07:00
MobileMarkdown.test.ts fix: pr-bug-scan validated finding from #6315 (#6471) 2026-06-26 23:57:17 -07:00
MobileMarkdown.tsx The `--sandbox` flag (or terminal sandboxing) in Google Antigravity is a (#8017) 2026-07-09 22:01:22 -07:00
MobilePRSidebar.tsx fix(pr-comments): let users mark comment authors as bots for the Humans/Bots filter (#7598) 2026-07-12 14:09:15 -07:00
MobilePrBasePicker.tsx feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
MobilePrComposeSheet.tsx The `--sandbox` flag (or terminal sandboxing) in Google Antigravity is a (#8017) 2026-07-09 22:01:22 -07:00
MobileRepoIcon.tsx feat(mobile): pickers, workspace parity, active-workspace focus, tap-to-open, source-control parity, artifact viewing (#5330) 2026-06-15 22:02:51 -07:00
MobileRichMarkdownEditor.tsx Fix active tab scrolling and editor keyboard layout on mobile (#5271) 2026-06-12 11:09:08 -07:00
MobileSearchField.tsx Improve search box on mobile (#8187) 2026-07-10 19:40:40 -07:00
MobileSyntaxSegments.tsx
MobileWorkspaceNameInput.tsx Introduce MobileWorkspaceNameInput with delayed auto-focus (#5968) 2026-06-21 23:51:00 -07:00
NewWorkspaceFab.tsx fix: address review findings (#6710) 2026-06-28 23:57:47 -07:00
NewWorktreeModal.tsx fix(mobile): dismiss keyboard when opening repo/agent pickers in Create Workspace (#7365) 2026-07-05 21:02:43 -07:00
NewWorktreeModalController.tsx feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
OrcaLogo.tsx
PickerListDrawer.tsx feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
PickerModal.tsx
ProtocolBlockScreen.tsx
RightDrawer.tsx feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
StatusDot.tsx
TaskProviderLogo.tsx
TerminalShortcutSettings.tsx feat(mobile): drag-to-reorder terminal shortcut keys in settings (#5076) 2026-06-11 14:05:07 -07:00
TextInputModal.tsx
VoiceModelList.tsx Allow deleting downloaded speech models on desktop and mobile (#5794) 2026-06-19 12:31:11 -07:00
WorkspaceDetailPlaceholder.tsx Mobile: worktree-list sidebar for tablet/foldable layouts (#5505) 2026-06-16 16:50:38 -07:00
WorktreeAgentList.tsx feat(mobile): pickers, workspace parity, active-workspace focus, tap-to-open, source-control parity, artifact viewing (#5330) 2026-06-15 22:02:51 -07:00
WorktreeAgentRow.tsx feat(mobile): pickers, workspace parity, active-workspace focus, tap-to-open, source-control parity, artifact viewing (#5330) 2026-06-15 22:02:51 -07:00
WorktreeListRow.tsx Fix mobile workspace parity (#6207) 2026-06-23 17:07:28 -07:00
WorktreeMetaGlyphs.tsx feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
account-usage-state.test.ts fix(mobile): show usage bars for system-default login (#5499) 2026-06-16 13:29:45 -07:00
account-usage-state.ts fix(mobile): show usage bars for system-default login (#5499) 2026-06-16 13:29:45 -07:00
bottom-drawer-mount-state.test.ts
bottom-drawer-mount-state.ts
drag-reorder-positions.test.ts feat(mobile): drag-to-reorder terminal shortcut keys in settings (#5076) 2026-06-11 14:05:07 -07:00
drag-reorder-positions.ts feat(mobile): drag-to-reorder terminal shortcut keys in settings (#5076) 2026-06-11 14:05:07 -07:00
mobile-agent-icon-assets.test.ts fix(agents): bundle agent icons instead of loading them from Google's favicon service (#8451) (#8474) 2026-07-12 22:10:09 -07:00
mobile-agent-icon-assets.ts fix(agents): bundle agent icons instead of loading them from Google's favicon service (#8451) (#8474) 2026-07-12 22:10:09 -07:00
mobile-diff-review-control-styles.ts Add mobile Review Changes workflow (#5313) 2026-06-13 14:24:26 -07:00
mobile-diff-review-layout-styles.ts Add mobile Review Changes workflow (#5313) 2026-06-13 14:24:26 -07:00
mobile-diff-review-screen-styles.ts Add mobile Review Changes workflow (#5313) 2026-06-13 14:24:26 -07:00
mobile-markdown-parser.ts
mobile-markdown-preview-html.ts fix: pr-bug-scan validated finding from #6315 (#6471) 2026-06-26 23:57:17 -07:00
mobile-pr-sidebar-presentation.test.ts feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
mobile-pr-sidebar-presentation.ts feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
mobile-rich-markdown-editor-html.test.ts
mobile-rich-markdown-editor-html.ts Fix active tab scrolling and editor keyboard layout on mobile (#5271) 2026-06-12 11:09:08 -07:00
mobile-rich-markdown-editor-keyboard-inset-script.test.ts Fix active tab scrolling and editor keyboard layout on mobile (#5271) 2026-06-12 11:09:08 -07:00
mobile-rich-markdown-editor-keyboard-inset-script.ts Fix active tab scrolling and editor keyboard layout on mobile (#5271) 2026-06-12 11:09:08 -07:00
new-worktree-agent-selection.test.ts
new-worktree-agent-selection.ts
pr-state-token.test.ts feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
pr-state-token.ts feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
right-drawer-panel-width.test.ts feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
right-drawer-panel-width.ts feat(mobile): combine PR sidebar and checks parity (#5641) 2026-06-17 22:52:12 -07:00
worktree-name-suggestion.ts