Commit graph

19 commits

Author SHA1 Message Date
Aaron Bockelie
3c19cf5d2f docs: record single-branch release strategy (ADR-300), retire defunct PR submission guidance
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.
2026-05-16 11:39:27 -05:00
Aaron Bockelie
b451331989 docs(adr-102): Align with implementation
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.
2026-05-15 11:46:19 -05:00
Aaron Bockelie
5d6e9a4c41 docs: Add ADR-102 (MCPB bundle as primary Claude Desktop onboarding)
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.
2026-05-15 11:28:12 -05:00
Aaron Bockelie
26d82bac19 feat: Add tree-based MCP tool visibility gating (ADR-101)
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).
2026-03-26 11:08:27 -05:00
Aaron Bockelie
ae03b2e5f9 refactor: Remove concurrent mode toggle, simplify connection setup (ADR-100)
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
2026-03-14 23:13:35 -05:00
Aaron Bockelie
04715c1dfd chore: Add ADR tooling and ADR-100 (simplify connection setup)
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).
2026-03-14 22:53:46 -05:00
Aaron Bockelie
8eaea5ea30 docs: Add ADR-003 for presentation facade pattern 2025-12-15 00:09:06 -06:00
Aaron Bockelie
757f7d58ef docs: Add ADR-001 and ADR-002 for search facade architecture
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
2025-12-14 23:30:16 -06:00
Aaron Bockelie
2572e97b37 docs: Add n8n integration troubleshooting section 2025-12-14 23:23:01 -06:00
Aaron Bockelie
f5d0662e44
docs: Add troubleshooting guide with Windows path workaround (#66)
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
2025-12-14 23:21:50 -06:00
Aaron Bockelie
7fedcd9bb6 docs: Simplify README with semantic value proposition focus
- 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
2025-08-31 00:54:07 -05:00
Aaron Bockelie
e9d156ae68
fix: Improve metadata cache integration for Bases frontmatter parsing
- Add fallback frontmatter parsing when metadata cache is empty
- Parse YAML frontmatter directly from file content when needed
- Add debug logging to understand cache behavior
- Fix Debug.isDebugMode() method calls
2025-08-19 23:04:06 -05:00
Aaron Bockelie
2e5ddae672
refactor: Reimplement Bases support with proper YAML and expression parsing
- 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
2025-08-19 22:48:51 -05:00
Aaron Bockelie
73e8608a23
feat: Add Obsidian Bases support to MCP server
- 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
2025-08-19 22:21:09 -05:00
Aaron Bockelie
0dbb19c8fd
docs: Update plugin settings screenshot to show .mcpignore feature
- Shows new Path Exclusions toggle
- Shows .mcpignore File Management section
- Displays current exclusions status (1 patterns active)
- Includes context menu toggle
- Updated to reflect v0.7.3 interface
2025-07-21 17:19:17 -05:00
Aaron Bockelie
c2ba3840bf feat: Implement comprehensive security architecture
- Add 7-layer OWASP-compliant path validation system
- Implement granular CRUD + special operation permissions
- Add security audit logging with debug mode integration
- Create security presets (readOnly, safeMode, fullAccess)
- Add sandbox mode for restricted directory access
- Implement path allow/block lists with wildcard support
- Add comprehensive test coverage (39 security tests)
- Fix TypeScript compilation issues in SecureObsidianAPI

Fixes #10 (path traversal vulnerability)
Addresses #15 (operation permissions)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 09:16:24 -05:00
Aaron Bockelie
36301118a9 docs: Add comprehensive project documentation and security audit
- 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>
2025-07-12 00:14:45 -05:00
Aaron Bockelie
ee35f87b6f docs: Add plugin UI screenshot file 2025-07-08 16:19:14 -05:00
Aaron Bockelie
7f9ab6edcb feat: Add graph search traversal tool for semantic navigation
- 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.
2025-06-29 18:20:44 -05:00