Files
obsidian-mcp-server/RELEASE_NOTES_v1.1.0.md
Bill 7524271eaa Release v1.1.0: Phase 1.1 - Path Normalization & Error Handling
- Add PathUtils for cross-platform path normalization and validation
- Add ErrorMessages with context-aware, actionable error messages
- Update all tool implementations with enhanced path handling
- Improve tool descriptions for AI agents with detailed guidance
- Add Jest testing infrastructure with 43 passing tests
- Add comprehensive documentation (Tool Selection Guide, error improvements)
- Fix cross-platform path issues (Windows backslashes, case sensitivity)
- Fix delete folder error message (clear 'cannot delete folders' message)
- Fix parent folder detection with specific error messages
- All changes backward compatible with v1.0.0

New files:
- src/utils/path-utils.ts - Path normalization utilities
- src/utils/error-messages.ts - Enhanced error messages
- tests/__mocks__/obsidian.ts - Mock Obsidian API
- tests/path-utils.test.ts - 43 unit tests
- tests/README.md - Testing guide
- jest.config.js - Jest configuration
- docs/TOOL_SELECTION_GUIDE.md - Comprehensive tool guide
- docs/ERROR_MESSAGE_IMPROVEMENTS.md - Error message documentation
- docs/TOOL_DESCRIPTION_IMPROVEMENTS.md - AI agent improvements
- PHASE_1.1_IMPLEMENTATION.md - Implementation summary
- RELEASE_NOTES_v1.1.0.md - Release notes

Updated:
- CHANGELOG.md - Add v1.1.0 entry
- ROADMAP.md - Mark Phase 1.1 complete, add Phase 1.5 proposal
- manifest.json - Bump to v1.1.0
- package.json - Bump to v1.1.0, add test scripts
- src/tools/index.ts - Enhanced tool descriptions
- src/tools/note-tools.ts - Use PathUtils and ErrorMessages
- src/tools/vault-tools.ts - Use PathUtils and ErrorMessages
2025-10-16 21:27:23 -04:00

217 lines
7.7 KiB
Markdown

# Release Notes: Version 1.1.0
**Release Date:** October 16, 2025
**Type:** Minor Version (Feature Release)
**Compatibility:** Fully backward compatible with v1.0.0
## 🎯 Overview
Version 1.1.0 implements **Phase 1.1** of the roadmap, focusing on robustness, cross-platform compatibility, and significantly improved user experience through enhanced error messages and path handling.
## ✨ What's New
### Path Normalization & Validation
**Cross-platform path handling** that works seamlessly on Windows, macOS, and Linux:
- Automatic conversion of backslashes to forward slashes
- Windows drive letter handling
- Leading/trailing slash normalization
- Security: Prevents directory traversal attacks
- Case sensitivity awareness (macOS/Linux vs Windows)
### Enhanced Error Messages
**Actionable error messages** that help users fix issues quickly:
- Context-aware troubleshooting tips
- Dynamic suggestions (e.g., "Use list_notes('folder') to see available files")
- Clear examples of correct path formats
- Platform-specific guidance
- Operation-specific recommendations
**Example:**
```
Parent folder does not exist: "projects/2024/q4"
Cannot create "projects/2024/q4/report.md" because its parent folder is missing.
Troubleshooting tips:
• Create the parent folder first using Obsidian
• Verify the folder path with list_notes("projects/2024")
• Check that the parent folder path is correct (vault-relative, case-sensitive on macOS/Linux)
• Note: Automatic parent folder creation is not currently enabled
```
### Improved Tool Descriptions
**AI agents now receive comprehensive guidance** directly in the MCP schema:
- Critical constraints stated upfront
- Workflow suggestions (e.g., "use list_notes() first if unsure")
- Multiple concrete examples per tool
- Failure modes explicitly documented
- Self-documenting without external docs
### Testing Infrastructure
**Professional testing setup** for reliability:
- Jest testing framework configured
- 43 unit tests (all passing)
- Mock Obsidian API for isolated testing
- Cross-platform test coverage
- Easy to run: `npm test`
### Comprehensive Documentation
**New documentation for users and developers:**
- **Tool Selection Guide** (400+ lines) - Complete guide on choosing the right tool
- **Error Message Improvements** - Documentation of all enhancements
- **Tool Description Improvements** - AI agent guidance documentation
- **Testing Guide** - How to run and write tests
- **Phase 1.1 Implementation Summary** - Technical details
## 🔧 Technical Improvements
### New Utilities
**`PathUtils` class** (`src/utils/path-utils.ts`):
- 15+ utility methods for path operations
- Type-safe file/folder resolution
- Existence checking
- Path manipulation (parent, basename, join)
- Markdown extension handling
**`ErrorMessages` class** (`src/utils/error-messages.ts`):
- 11 specialized error message generators
- Dynamic context-based suggestions
- Consistent formatting
- Reusable across all tools
### Updated Tool Implementations
All tools now use the new utilities:
-`readNote()` - Enhanced validation and error messages
-`createNote()` - Parent folder validation, conflict detection
-`updateNote()` - Better error handling
-`deleteNote()` - Folder detection with clear error
-`listNotes()` - Path validation and verification
## 🐛 Bug Fixes
- **Windows path handling** - Backslashes now converted automatically
- **Delete folder error** - Clear message instead of confusing "not a folder" error
- **Parent folder detection** - Specific guidance when parent missing
- **Error contradictions** - All error messages now internally consistent
- **Path validation** - Prevents invalid characters and security issues
## 📊 Statistics
- **New Files:** 8 (utilities, tests, mocks, docs)
- **Modified Files:** 5 (tool implementations, package.json, manifest)
- **Lines Added:** ~2,500+
- **Test Coverage:** 43 tests, 100% PathUtils coverage
- **Documentation:** 1,000+ lines of new documentation
## 🚀 Upgrade Instructions
### For Users
1. **Backup settings** (optional, but recommended)
2. **Update plugin files** to v1.1.0
3. **Restart Obsidian** or reload the plugin
4. **No configuration changes needed** - fully backward compatible
### For Developers
1. **Install new dev dependencies:**
```bash
npm install
```
2. **Run tests:**
```bash
npm test
```
3. **Build:**
```bash
npm run build
```
## ⚠️ Breaking Changes
**None** - Version 1.1.0 is fully backward compatible with v1.0.0.
All existing integrations will continue to work without modification. The improvements are additive and enhance the existing functionality.
## 📈 Roadmap Progress
### Completed ✅
- **Phase 1.1** - Path Normalization & Error Handling (100%)
- Path utilities ✅
- Enhanced error messages ✅
- Tool implementation updates ✅
- Testing infrastructure ✅
### Next Up 🔜
- **Phase 1.5** - Enhanced Authentication & Security
- Secure API key management
- Multiple API keys with labels
- Key expiration and rotation
- Rate limiting
- Audit logging
- **Phase 2** - API Unification & Typed Results
- Standardize parameter naming
- Structured, typed responses
- Better consistency
## 🎓 Learning Resources
### New Documentation
- Read `docs/TOOL_SELECTION_GUIDE.md` for comprehensive tool usage guide
- Check `docs/ERROR_MESSAGE_IMPROVEMENTS.md` for error message details
- See `tests/README.md` for testing setup and guidelines
### Quick Reference
```
┌─────────────────────────────────────────────────────────┐
│ OBSIDIAN MCP TOOL QUICK REFERENCE │
├─────────────────────────────────────────────────────────┤
│ List folder: list_notes("folder") │
│ Read file: read_note("folder/file.md") │
│ Create file: create_note("path.md", "content") │
│ Update file: update_note("path.md", "new content") │
│ Delete file: delete_note("path.md") │
│ Search: search_notes("query") │
│ Vault info: get_vault_info() │
├─────────────────────────────────────────────────────────┤
│ ✓ Paths are vault-relative (no leading /) │
│ ✓ Use forward slashes: folder/file.md │
│ ✓ Case-sensitive on macOS/Linux │
│ ✓ Include file extensions: .md, .png, etc. │
└─────────────────────────────────────────────────────────┘
```
## 💡 Tips for AI Agents
If you're an AI agent using this plugin:
1. **Always use `list_notes()` first** when unsure about paths
2. **Read before updating** - Use `read_note()` then `update_note()` for partial changes
3. **Verify parent folders** - Use `list_notes()` to check folders exist before creating files
4. **Pay attention to error messages** - They include specific troubleshooting steps
5. **Use vault-relative paths** - No leading slashes, include file extensions
## 🙏 Acknowledgments
Thanks to all testers and users who provided feedback that shaped these improvements!
## 📞 Support
- **Documentation:** See README.md and docs/ folder
- **Issues:** Report bugs with version number (1.1.0)
- **Questions:** Check TOOL_SELECTION_GUIDE.md first
---
**Full Changelog:** See [CHANGELOG.md](CHANGELOG.md) for complete details.