04639adace
The Cmd-K "Install theme…" palette listed Marketplace themes with no hint that you already had them, and clicking one re-downloaded + re-installed a theme you owned. The Appearance settings grid already detected this, but by parsing theme descriptions inline on every render — plumbing that never made it to the palette. Lift it into one reactive source and reuse it everywhere: - $marketplaceInstalls (computed over $userThemes): extensionId -> installed theme, derived once via marketplaceIdOf and memoized, instead of rebuilding a Set per render. - Both install surfaces now mark owned rows installed and, on click, re-activate the installed theme rather than re-fetching it. - Drops the duplicated description-parsing in settings and the per-session "installed here" state in both surfaces (the store is the source of truth, so previously-installed themes show correctly too).