feat(ans): replace passive TTL eviction with ffrt timer-based cache cleanup Replace the passive TTL check mechanism in LRUCache (bundleCache_) with an active ffrt timer-based cleanup approach. The timer is started only when cache has data and stopped when cache is empty. Changes: - Remove passive TTL checks from Get/Peek/Contains/Put/GetAllKeys hot paths - Remove MaybeEvictExpired() method (dead code) - Add EvictExpiredBundleCache()/IsBundleCacheEmpty() forwarding methods - Add ffrt timer scheduler (StartCacheCleanupTimer/ExecuteCacheCleanup/ StopCacheCleanupTimer) in NotificationPreferences - Wire 29 start triggers + 2 stop triggers across write-back paths - Extract BuildCloneSlotInfo helper to satisfy G.FUD.05 (function <= 50 lines) - Adapt 11 existing test cases and add 16 new test cases - Add branch coverage tests for ExecuteCacheCleanup and BuildCloneSlotInfo - Add summary documentation Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Co-Authored-By: Agent Change-Id: I83bc82074a900349a795b566abd1b098cc0a0f66 |