# Update Center Icon Fallback Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Change Electron update-center icons to load in the order `localIcon -> remoteIcon -> placeholder`, so a successful local icon never triggers remote/default loading, but failed local loads still fall through to the remote icon. **Architecture:** Split the current single `icon` field into two explicit sources resolved in the main process: `localIcon` and `remoteIcon`. Keep URL/path resolution in `electron/main/backend/update-center/icons.ts`, pass both fields through the service snapshot, and let `UpdateCenterItem.vue` own the runtime fallback state when `img` emits `error`. **Tech Stack:** Electron main process, Node.js `fs`/`path`, Vue 3 ` ``` - [ ] **Step 4: Run test to verify it passes** Run: `npm run test -- --run src/__tests__/unit/update-center/UpdateCenterItem.test.ts` Expected: PASS with all fallback-order component tests green. - [ ] **Step 5: Commit** ```bash git add src/components/update-center/UpdateCenterItem.vue src/__tests__/unit/update-center/UpdateCenterItem.test.ts git commit -m "fix(update-center): cascade icon fallback in renderer" ``` ### Task 4: Verify The Full Change Set **Files:** - Verify only: `electron/main/backend/update-center/types.ts` - Verify only: `electron/main/backend/update-center/icons.ts` - Verify only: `electron/main/backend/update-center/index.ts` - Verify only: `electron/main/backend/update-center/service.ts` - Verify only: `src/global/typedefinition.ts` - Verify only: `src/components/update-center/UpdateCenterItem.vue` - Verify only: `src/__tests__/unit/update-center/icons.test.ts` - Verify only: `src/__tests__/unit/update-center/load-items.test.ts` - Verify only: `src/__tests__/unit/update-center/registerUpdateCenter.test.ts` - Verify only: `src/__tests__/unit/update-center/UpdateCenterItem.test.ts` - [ ] **Step 1: Run the focused update-center test suite** Run: `npm run test -- --run src/__tests__/unit/update-center/icons.test.ts src/__tests__/unit/update-center/load-items.test.ts src/__tests__/unit/update-center/registerUpdateCenter.test.ts src/__tests__/unit/update-center/UpdateCenterItem.test.ts` Expected: PASS with all four update-center suites green. - [ ] **Step 2: Run the formatter** Run: `npm run format` Expected: command exits 0 after formatting the touched files. - [ ] **Step 3: Run lint** Run: `npm run lint` Expected: PASS with no ESLint or Prettier violations. - [ ] **Step 4: Run the production build** Run: `npm run build` Expected: PASS with Vite/Electron build output generated successfully and no TypeScript errors.