optimization: cache seen apps
prettify component announcements