Task-by-task plan with TDD approach:
- Add withLineNumbers tests and implementation
- Add force parameter tests and implementation
- Update tool schemas
- Change withLineNumbers to use numbered string format (Option B)
- Remove expectedContent validation (unnecessary with ifMatch + line numbers)
- Use force:true instead of skipVersionCheck for opt-out
- Clarify breaking change impact
Update version to 1.1.1 for Obsidian plugin submission fixes.
Changes:
- Updated manifest.json, package.json, and versions.json to 1.1.1
- Added comprehensive CHANGELOG entry documenting all submission fixes
- Moved VERIFICATION_REPORT.md to docs/ directory
- Remove unused vault.delete() method in favor of trashFile()
- Replace \x00-\x1F with \u0000-\u001F for clearer regex syntax
- Verify no unused imports, variables, or scoping issues
All cleanup tasks verified with tsc --noUnusedLocals --noUnusedParameters
Replace plural pronouns (we, our, us) with singular/project voice
throughout documentation files to represent a singular developer
perspective.
Changes:
- CONTRIBUTING.md: Replace "We are" with "This project is",
"We use" with "This project uses", "our" with "the"
- README.md: Replace "our" with "the", add OS to bug report checklist
- docs/VERSION_HISTORY.md: Replace "we reset" with passive voice
"the version was reset"
Detailed plan with bite-sized tasks for:
- Notification message format improvements
- Settings section collapse fix
- Modal filter control repairs
Co-Authored-By: Claude <noreply@anthropic.com>
Documents fixes for three UX issues:
- Unclear notification message format
- Settings section collapsing on toggle
- Broken filter controls in history modal
Co-Authored-By: Claude <noreply@anthropic.com>
Comprehensive design for streamlining the settings UI using progressive
disclosure to reduce visual clutter while preserving all functionality.
Key changes:
- Move Server Status to top for better visibility
- Collapse Authentication and UI Notifications sections by default
- Remove encryption-related messaging
- Remove network security disclosure
- Simplify all descriptive text
- Use native HTML details/summary elements for collapsibility
- Removed 3 deprecated implementation plan documents from docs/plans directory:
- 2025-01-20-tools-coverage-implementation.md
- 2025-01-20-utils-coverage-completion.md
- 2025-01-20-utils-coverage-implementation.md
- These plans are no longer needed since the coverage work has been completed and merged
Updated VaultTools to use adapters for all utility method calls:
- SearchUtils.searchWaypoints() now receives vault adapter
- WaypointUtils.isFolderNote() now receives vault adapter
- LinkUtils.validateWikilinks() now receives vault and metadata adapters
- LinkUtils.resolveLink() now receives vault and metadata adapters
- LinkUtils.getBacklinks() now receives vault and metadata adapters
Removed App dependency from VaultTools constructor - now only requires
vault and metadata adapters. Updated factory and all test files accordingly.
All tests passing (336/336).
Update validateWikilinks, resolveWikilink, and getBacklinks methods
to use IVaultAdapter and IMetadataCacheAdapter instead of direct App access.
- Implemented inline link suggestion finding using vault adapter
- Implemented backlinks retrieval using metadata cache adapter
- Added helper methods: findLinkSuggestions, extractSnippet, escapeRegex
- App parameter still required for waypoint methods (not in scope for this task)
Add comprehensive design for achieving 100% test coverage through
dependency injection refactoring. The design introduces adapter
interfaces to decouple tool classes from Obsidian API dependencies,
enabling cleaner, more maintainable tests.
Key elements:
- IVaultAdapter, IMetadataCacheAdapter, IFileManagerAdapter interfaces
- Factory pattern for production usage
- Phased implementation approach (adapters → VaultTools → NoteTools → integration)
- Mock adapter pattern for simplified test setup
- Coverage strategy organized by feature areas
Goal: Codebase confidence for future refactoring and feature work.