106abfa718
Replaces regex-based parsing of frontmatter and headings with Obsidian's metadataCache where available, falling back to regex when the cache is unavailable. Propagates App dependency through constructors to enable cache access. Key changes: - ContentExtractor accepts optional cache for frontmatter/headings - ToolExecutor uses cache for section replacement and frontmatter - NoteContextBuilder resolves titles/tags from cache - VaultVectorStore passes cache through indexing pipeline - AutoTagger checks cache for existing tags instead of content - Mock updated with metadataCache stubs for tests