Obsidian moved community-plugin submission from the obsidian-releases PR
process to the community.obsidian.md developer portal. Replace the now-defunct
'I'm Not Dead Yet' PR-refresh procedure in CLAUDE.md with the portal-based
distribution reality (stable Latest release matching manifest, no v-prefix,
versions.json, make promote).
ADR-300 records the decision to keep a single main branch with the existing
prerelease/promote flow rather than add a dedicated Obsidian release branch:
for 'same code, slower cadence' the prerelease/promote gap already provides
the decoupling, and a release branch would only add permanent version-file
divergence. Rejected alternatives documented.
Three drift points caught in review:
- §4 (CI publishing): drop the promised "second workflow publishes
latest .mcpb on mcpb/ change" — it isn't implemented and isn't
needed. Release-time publishing is the actual flow. Also documents
the versioned + unversioned dual-emit and the stable-URL motivation.
- §2 (server.js behavior): the implementation surfaces JSON-RPC
-32000 on session expiry and lets the client reinitialize rather
than attempting transparent replay. ADR previously claimed replay;
text now matches code with the rationale (replay would require
re-issuing state-establishing notifications and that path is
fragile).
- Consequences: acknowledge that the maker script partially exposes
the bridge to advanced users, which slightly weakens the
"bridge-is-invisible" framing of ADR-100/102. The audience that
reads server.js is the same audience that would have written
custom mcpServers JSON anyway, so the abstraction holds for the
cohort that benefits from it.
Refs PR #155 review.
Records the decision to ship an MCPB bundle for one-click Claude
Desktop install, with the existing Claude Code CLI string and JSON
mcpServers block remaining as the second and third onboarding paths.
Key constraints documented:
- MCPB has no native remote-HTTP server type today, so the bundle
exposes a small stdio<->HTTP bridge that Claude Desktop's bundled
Node runtime executes.
- Bridge is hand-rolled (zero deps) rather than vendoring mcp-remote.
- Bundle is static and single-vault; advanced users get a maker
script (planned) to generate custom-named bundles for multi-vault
setups. Other MCP clients (Cline, Continue, etc.) continue using
the JSON path.
Reconciles with ADR-100 by clarifying that the deprecation of
mcp-remote applied to user-facing config, not to invisible bridges
inside an MCPB.
Users can now control which MCP tools are exposed to connecting agents
via a tri-state tree UI in the plugin settings panel. Disabled tools
are excluded from the MCP tools/list enumeration — agents cannot
discover or call them. Includes defense-in-depth runtime check.
Also adds ADR-101 (tool visibility gating) and ADR-200 (CLI parity gaps).
Always run in pooled/concurrent mode — the dual code path (single
MCPServer vs MCPServerPool) existed for backward compatibility with
clients that couldn't handle HTTP transport. All modern MCP clients
now support Streamable HTTP natively.
Changes:
- Remove enableConcurrentSessions toggle and maxConcurrentConnections
setting from interfaces, defaults, and settings UI
- Remove single-server code path (setupMCPHandlers, non-concurrent
request handling branch) — ~200 lines of dead code
- Simplify connection templates from 4 options to 2:
Claude Code command + standard JSON with Authorization header
- Drop mcp-remote and Windows workaround templates
- Fix auth format: use standard Authorization header instead of
URL-embedded credentials
- Remove unused imports (schema types, DataviewTool, FileSystemAdapter)
- Update README and troubleshooting docs
- Accept ADR-100
Net: -433 lines
Scaffolds Architecture Decision Records for the project with three
domains: core (100-199), tools (200-299), delivery (300-399).
ADR-100 proposes removing the concurrent mode toggle, dropping the
mcp-remote connection option, and simplifying to two config templates
(Claude Code command + standard JSON with header auth).
ADR-001: Adopting ADR format
- Documents decision to use Architecture Decision Records
- Acknowledges retroactive adoption after organic development
ADR-002: Search Facade Architecture (Proposed)
- Unified search interface composing multiple strategies
- Routes operator queries to fast search, natural language to ranked search
- Addresses Issue #63 search implementation gaps
- Aligns with "less tools, more details" principle
Fixes#31 - Documents the Node.js "Program Files" path issue on Windows
where Claude Desktop fails to spawn npx due to unquoted paths with spaces.
Also includes common troubleshooting sections for:
- Connection issues
- Authentication errors
- SSL certificate problems
- Server startup failures
- Dataview/Bases integration
- Performance optimization
- Replace complex technical README with cleaner, simpler version
- Focus on semantic agency and graph navigation as core value
- Move detailed documentation to docs/ subdirectory
- Create tool-specific documentation for vault and graph operations
- Emphasize why semantic MCP matters for AI knowledge access
- Switched from JSON to YAML format for .base files
- Implemented expression-based filter parsing (e.g., status == 'active')
- Added property prefix support (note.*, file.*, formula.*)
- Created ExpressionEvaluator for filter expressions
- Created FormulaEngine for formula calculations
- Fixed metadata cache usage for frontmatter properties
- Removed old object-based filter system
- Updated semantic router and tool descriptions
- Added comprehensive documentation
- Bump version to 0.9.5
- Added complete type definitions for Bases functionality
- Implemented BasesAPI class with full CRUD operations
- Integrated Bases into ObsidianAPI and semantic router
- Added 10 new MCP operations for Bases management
- Supports queries, views, templates, and CSV/JSON/Markdown export
- Graceful degradation when Bases plugin not available
- Bump version to 0.9.4
- Add CONTRIBUTING.md with development guidelines
- Add SECURITY.md with vulnerability reporting policy
- Create GitHub issue templates for bugs and features
- Add PR template with checklist
- Set up GitHub Actions for testing and security scanning
- Document all security findings from code audit
- Create detailed GitHub issues for all vulnerabilities
- Update CHANGELOG with security audit results
- Add project structure documentation
This establishes proper open-source project structure and documents
all critical security issues that need to be addressed.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement search-based graph traversal that applies queries at each node
- Return chains of relevant snippets along traversal paths
- Support score thresholds to filter low-relevance nodes
- Add advanced traversal with multiple strategies (breadth-first, best-first, beam-search)
- Integrate with existing MCP graph operations
- Add comprehensive test coverage for circular references and edge cases
This enables AI agents to explore knowledge graphs by following high-scoring semantic paths, returning contextual snippet chains in a single API call.