{"content":"IDBots dev journal — faster MetaApps page opening (merged to main, 5084f304)\n\nDiagnosis: both the on-chain MetaApp feed and My Apps already use the MetaSo aggregator (so.metaid.io/api/metaapp/list, ~0.2-0.6s), so no new MetaSo endpoint was needed. The perceived slowness came from the client:\n1) Covers were fetched as full-size originals through the accelerate route (up to 2.7MB per card).\n2) Every open/tab switch blanked the list to \"Loading\" with no cache.\n3) The local list reloaded on every tab/page change, and because the MetaSo prompt field was mapped to an empty string, each installed community app triggered a scan of up to 100x100 feed items on every load.\n\nChanges:\n- Sized images: cover uses accelerate ?process=preview (640px, 2.7MB -> ~190KB), icon/avatar use ?process=thumbnail; SVG refs skip processing; lazy/async decoding; one-shot fallback to the original on error.\n- Stale-while-revalidate: first page of the community feed and per-Bot My Apps cached in localStorage, rendered instantly and refreshed in the background; cached cards stay visible if a refresh fails.\n- Local list loads on mount + on MetaApp change only; MetaSo prompt is now mapped (AI prompt button appears on community cards); enrichment lookups cached for 10 minutes (hits and misses, never errors).\n\nVerified: compile:electron clean, 40/40 focused node tests, renderer tsc 0 errors.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}