This fixes the issues introduced in the previous commit where:
- Authentication section would collapse when switching config tabs and couldn't be reopened
- Notification toggle would disappear after enabling notifications
Root cause: The previous update methods were removing or re-querying DOM elements incorrectly.
Solution:
- Store direct references to configContainerEl and notificationToggleEl
- Wrap notification toggle in dedicated container to preserve it during updates
- updateNotificationSection() now preserves both summary AND toggle, only removes additional settings
- updateConfigSection() uses stored reference instead of querying, preventing collapse
Both sections now maintain their open/closed state correctly during targeted updates.
Fixed two UI bugs in the settings panel:
- Authentication section no longer collapses when switching between Windsurf/Claude Code config tabs
- Notification settings now properly appear/disappear when toggling the notifications enable switch
Changes:
- Added authDetailsEl reference to track authentication details element state
- Created updateConfigSection() method to update only config tabs without full page re-render
- Fixed updateNotificationSection() child removal logic to properly clear settings before rebuild
- Both methods now preserve the open/closed state of their respective collapsible sections
- Change plugin ID from 'obsidian-mcp-server' to 'mcp-server'
- Remove 'Obsidian' from plugin description per guidelines
- Update documentation to use new plugin folder name
- Update installation paths to .obsidian/plugins/mcp-server/
- Update package name to match new plugin ID
- Simplify README title and description
Replace the gitea-release-action with direct API calls using curl.
This approach works on both GitHub (which runs this step conditionally)
and Gitea servers, using their compatible REST APIs.
Add platform detection to support creating releases on both GitHub
and Gitea servers. The workflow now:
- Detects the platform using github.server_url
- Uses GitHub CLI (gh) for GitHub releases
- Uses gitea-release-action for Gitea releases
- Creates draft releases with the same artifacts on both platforms
Add support for semantic version tags with pre-release identifiers
(e.g., 1.0.0-alpha.1, 1.0.0-beta.2) in the GitHub Actions release
workflow.
The workflow now triggers on both stable versions (X.Y.Z) and
pre-release versions (X.Y.Z-*).
Co-Authored-By: Claude <noreply@anthropic.com>
Removed console.error calls from error handlers that gracefully skip
problematic files and continue processing. These handlers catch errors
when reading or parsing files but successfully return fallback values,
so logging errors creates unnecessary noise during testing and deployment.
Changes:
- vault-tools.ts: Remove console.error from search and frontmatter extraction
- search-utils.ts: Remove console.error from file search handlers
- waypoint-utils.ts: Remove console.error from file read handler
- frontmatter-utils.ts: Remove console.error from YAML and Excalidraw parsing
Test updates:
- Remove test assertions checking for console.error calls since these
are no longer emitted by graceful error handlers
All 709 tests pass with no console noise during error handling.
- Replace direct crypto.getRandomValues with getCryptoRandomValues
- Fixes Node.js test environment compatibility
- Maintains production behavior in Electron
- Create getCryptoRandomValues() utility
- Support both window.crypto (browser/Electron) and crypto.webcrypto (Node.js)
- Add comprehensive test coverage for adapter functionality
- Added Buy Me a Coffee and GitHub Sponsor funding links to manifest.json
- Fixed description formatting with proper punctuation
- Updated manifest schema to include fundingUrl section
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"
- Created CONTRIBUTING.md with detailed guidelines for plugin development and contributions
- Added sections covering development setup, workflow, code standards, and testing practices
- Included step-by-step instructions for setting up local development environment
- Documented release process and version management procedures
- Added guidelines for pull requests, commit messages, and code organization
- Included security considerations and platform
- Added GitHub Sponsors configuration file to enable sponsorship button
- Updated README to include GitHub Sponsors link alongside existing donation options
- Configured sponsorship to direct to Xe138's GitHub profile
Implements automated release workflow per design document.
- Triggers on semantic version tags (e.g., 1.2.3)
- Validates version consistency across package.json, manifest.json, and git tag
- Runs test suite (blocks release if tests fail)
- Builds plugin using production build process
- Verifies build artifacts exist (main.js, manifest.json, styles.css)
- Creates draft GitHub release with required files
Workflow uses single-job architecture for simplicity and runs on Node.js 18 with npm caching for performance.
Code inspection testing completed:
- Build successful with no TypeScript errors
- All 579 automated tests pass with no regressions
- Tab state property correctly initialized to 'windsurf'
- Authentication section renamed to 'Authentication & Configuration'
- Config generator produces correct Windsurf format (serverUrl)
- Config generator produces correct Claude Code format (type: http, url)
- Tab buttons implement proper visual states (bold, border-bottom)
- Tab switching logic correctly updates activeConfigTab and re-renders
- Copy button functionality implemented for config JSON
- Dynamic content area shows file path, config JSON, and usage notes
Manual testing in Obsidian not performed (no test vault available)
All implementation requirements verified through code inspection
- Updated author name from "Bill Ballou" to "William Ballou" in manifest.json
- Added missing author name "William Ballou" in package.json
- Ensures consistent attribution across project metadata files
- Removed all .windsurf/rules/ markdown files containing outdated plugin development guidelines
- Files included agent guidelines, code examples, coding conventions, commands/settings docs, environment setup, file organization, manifest rules, project overview, references, security/privacy, troubleshooting, and UX guidelines
- Content will be replaced with updated documentation in a new location
Note: This appears to be a cleanup commit removing
- Replace ISC license with MIT License
- Update copyright to 2025 William Ballou
- Add comprehensive installation instructions
- Add troubleshooting section with common issues
- Add contributing guidelines and issue reporting info
- Add security notice about vault access
- Add support/funding information
License change aligns with package.json and Obsidian ecosystem standards.
- Replace raw HTML inputs with Obsidian Setting components
- Add DOM element references for targeted updates
- Eliminate destructive re-render on filter changes
- Update only list container and count on filter apply
- Fix tool filter input not accepting text
- Fix status dropdown not showing selection
Co-Authored-By: Claude <noreply@anthropic.com>
- Add targeted DOM update method for notification section
- Store reference to details element during initial render
- Replace full page re-render with targeted subsection update
- Preserve open/closed state during updates
Co-Authored-By: Claude <noreply@anthropic.com>