# Release Notes 3.11.1

## API Modernization & Performance Improvements

This release focuses on adopting Obsidian's official APIs and improving plugin stability through better resource management.

### Improved autocomplete

- Replaced custom autocomplete implementation with Obsidian's native AbstractInputSuggest API
  - Better keyboard navigation and visual consistency
  - More responsive type-ahead support for contexts and tags in task modals

### API modernization

- Atomic Frontmatter Updates: Now uses FileManager.processFrontMatter for safer file modifications
  - Eliminates risk of data corruption during migration processes
  - More reliable handling of YAML frontmatter updates
- Native Link Parsing: Switched to Obsidian's built-in parseLinktext API
  - More robust wikilink parsing with better edge case handling
  - Improved consistency with Obsidian's internal link processing
- Vault-Specific Storage: View preferences now use App.loadLocalStorage/saveLocalStorage
  - Fixes issue where settings were shared across different vaults
  - Each vault now maintains its own view state and preferences

## Bug fixes & stability

- Memory Leak Prevention: Properly register and cleanup event listeners
  - Event listeners are now tracked with EventRef objects for proper cleanup
  - Prevents memory leaks when plugin is disabled or reloaded
- Debounce Optimization: Uses Obsidian's built-in debounce function
  - More efficient calendar refresh operations
  - Better performance consistency
- UI Polish: Fixed sentence case issues throughout the interface

## Security & reliability

- Resource Cleanup: Enhanced plugin lifecycle management
  - Better cleanup of event listeners and cached data
  - Improved plugin disable/enable reliability

