## 1. Custom Background Status - [x] 1.1 Show uploaded custom backgrounds as the active background in the profile settings header metric. - [x] 1.2 Render the selected built-in preset as a clearly labeled fallback while an uploaded background is active. - [x] 1.3 Preserve fallback preset selection so removing the uploaded background restores the selected built-in desktop. ## 2. Verification - [x] 2.1 Add focused rendering coverage for uploaded-background labeling. - [x] 2.2 Run focused frontend tests. - [x] 2.3 Run `scripts/check-structure.sh`. - [x] 2.4 Run `openspec validate fix-custom-background-status --strict`. ## Evidence - `npm test -- pages/ConsolePages.test.tsx` passed 10 tests. - `npm test` passed 13 files / 68 tests. - `npm run typecheck` passed. - `npm run build` passed. - `scripts/check-structure.sh` passed. - `openspec validate fix-custom-background-status --strict` passed; the command printed a PostHog network flush warning after validation because the sandbox cannot resolve `edge.openspec.dev`. - Runtime UI check on `http://127.0.0.1:5173/#/profile` confirmed `data-custom-background="true"`, summary `背景 自定义背景`, fallback chip `机甲格纳库 备用`, and theme switch black mecha -> magical-girl preserved the uploaded background.