🔧 Fixed cache invalidation for featured materials:
- Enhanced invalidate_shout_related_cache with featured keys
- Fixed set_featured/set_unfeatured functions with async cache invalidation
- Materials now correctly appear/disappear from main page on feature/unfeature
✅ Code Quality: Python Standards Compliance
- Ruff linting & formatting checks passed
- MyPy type checking passed
- All functions have proper type hints and docstrings
- Tests passing successfully
Version bump: 0.9.30