- Add get_folder_waypoint tool to extract waypoint blocks from folder notes
- Add is_folder_note tool to detect folder notes by basename or waypoint markers
- Implement waypoint edit protection in update_note to prevent corruption
- Create waypoint-utils.ts with helper functions for waypoint operations
- Add FolderWaypointResult and FolderNoteResult types
- Update ROADMAP.md and CHANGELOG.md with Phase 7 completion
- All manual tests passing
- Add enhanced 'search' tool with regex support, case sensitivity control, and advanced filtering
- Add 'search_waypoints' tool for finding Waypoint plugin markers
- Implement SearchUtils with regex/literal search, snippet extraction, and match highlighting
- Add WaypointResult and WaypointSearchResult types
- Update SearchResult type to include isRegex field
- Remove deprecated search_notes tool (breaking change)
- Support glob filtering (includes/excludes) and folder scoping
- Configurable snippet length and result limiting
- Extract wikilinks from waypoint content
Breaking Changes:
- search_notes tool removed, use 'search' tool instead
- Enhanced read_note tool with frontmatter parsing options
- parseFrontmatter option to separate frontmatter from content
- withFrontmatter and withContent options for flexible responses
- Returns structured ParsedNote JSON when parsing enabled
- Backward compatible (default behavior unchanged)
- New read_excalidraw tool for Excalidraw file metadata
- Detects compressed-json format (Excalidraw's actual format)
- Returns elementCount, hasCompressedData, metadata fields
- Handles compressed (base64) and uncompressed formats
- Preview text extraction from Text Elements section
- Optional full compressed data inclusion
- New frontmatter-utils.ts for YAML parsing
- Uses Obsidian's built-in parseYaml
- Extracts and parses frontmatter
- Handles edge cases (no frontmatter, malformed YAML)
- Excalidraw metadata parsing with compression detection
- Enhanced type definitions with JSDoc comments
- ParsedNote interface for structured note data
- ExcalidrawMetadata interface with detailed field docs
- Clear documentation of all fields and their purposes
- Comprehensive documentation
- IMPLEMENTATION_NOTES_PHASE5.md - Implementation details
- EXCALIDRAW_FIX_SUMMARY.md - Bug fix documentation
- EXCALIDRAW_TESTING_GUIDE.md - Testing instructions
- Updated CHANGELOG.md with all changes
- Updated ROADMAP.md marking Phase 5 complete
- Known limitation documented
- elementCount returns 0 for compressed files (expected)
- Decompression would require pako library (not included)
- hasCompressedData correctly identifies compressed files
- Preview text still available without decompression
- Added to roadmap as future enhancement
All manual tests passed. Phase 5 complete and production-ready.
- Add stat tool for detailed file/folder metadata
- Add exists tool for fast path existence checking
- Add StatResult and ExistsResult type definitions
- Implement stat() and exists() methods in VaultTools
- Register both tools in ToolRegistry with complete schemas
- Update version to 2.1.0
- Update ROADMAP.md to mark Phase 3 complete
- Update CHANGELOG.md with Phase 3 release notes
- Add IMPLEMENTATION_NOTES_PHASE3.md documentation
- Clean up old phase documentation files
Phase 2 - Breaking Changes (v2.0.0):
- Added typed result interfaces (FileMetadata, DirectoryMetadata, VaultInfo, SearchResult, SearchMatch)
- Unified parameter naming: list_notes now uses 'path' parameter (removed 'folder')
- Enhanced tool responses with structured JSON for all tools
- list_notes: Returns array of FileMetadata/DirectoryMetadata with full metadata
- search_notes: Returns SearchResult with line numbers, snippets, and match ranges
- get_vault_info: Returns VaultInfo with comprehensive statistics
- Updated all tool descriptions to document structured responses
- Version bumped to 2.0.0 (breaking changes)
Phase 2.1 - Post-Testing Fixes:
- Fixed root listing to exclude vault root folder itself (handles path '', '/', and isRoot())
- Fixed alphabetical sorting to be case-insensitive for stable ordering
- Improved directory metadata with better timestamp detection and error handling
- Fixed parent folder validation order (check if file before checking existence)
- Updated documentation with root path examples and leading slash warnings
- Added comprehensive test suite for sorting and root listing behavior
- Fixed test mocks to use proper TFile/TFolder instances
Tests: All 64 tests passing
Build: Successful, no errors