aaronsb_obsidian-mcp-plugin/docs
Aaron Bockelie c2d6f8b325 refactor(router): extract vault operation into operations/ module (ADR-202, #199 stage 1)
router.ts was a 2,228-line monolith (~2.8x the 800-line threshold). Extract
the largest unit — executeVaultOperation + its helpers — into
src/semantic/operations/vault.ts behind a RouterContext interface.

- operations/router-context.ts: RouterContext (api/app/fragmentRetriever/
  validator); SemanticRouter implements it and passes itself, so shared
  state propagates with no indirection
- operations/shared.ts: Params, SearchResultItem, paramStr/Num/Bool
  (router-private → shared by all handlers)
- operations/vault.ts: executeVaultOperation + splitContent/sortFiles/
  copyFile/copyDirectoryRecursive; mechanical this.→ctx. (tsc is the
  safety net — a missed rewrite fails compile)
- router fields api/app/fragmentRetriever/validator → public readonly
- removed a fully unreachable pre-existing dead subtree (combineSearchResults,
  isDirectory, performFileBasedSearch, indexVaultFiles, getSearchWorkflowHints,
  extractContext, getFileType — zero call sites anywhere; eslint doesn't flag
  unused class methods, which hid them). ~290 dead lines gone.

router.ts 2228→988; vault.ts 948. Behaviour-preserving: tsc clean, lint at
the exact pre-existing baseline (0 errors, 5 unrelated warnings), 235/235
tests unchanged.

Staged per the issue's "extract vault first in isolation" guidance: #199
stays open for the remaining handlers (edit/view/graph/system/bases →
router thin dispatcher <300 lines). ADR-202.
2026-05-18 23:07:40 -05:00
..
adr docs: Add ADR-003 for presentation facade pattern 2025-12-15 00:09:06 -06:00
architecture refactor(router): extract vault operation into operations/ module (ADR-202, #199 stage 1) 2026-05-18 23:07:40 -05:00
scripts chore: Add ADR tooling and ADR-100 (simplify connection setup) 2026-03-14 22:53:46 -05:00
tools docs: Simplify README with semantic value proposition focus 2025-08-31 00:54:07 -05:00
bases-implementation-fixes.md refactor: Reimplement Bases support with proper YAML and expression parsing 2025-08-19 22:48:51 -05:00
bases-implementation-status.md fix: Improve metadata cache integration for Bases frontmatter parsing 2025-08-19 23:04:06 -05:00
bases-implementation.md feat: Add Obsidian Bases support to MCP server 2025-08-19 22:21:09 -05:00
bases-mcp-reference.md refactor: Reimplement Bases support with proper YAML and expression parsing 2025-08-19 22:48:51 -05:00
graph-traversal.md feat: Add graph search traversal tool for semantic navigation 2025-06-29 18:20:44 -05:00
Plugin_UI_July_2025.png docs: Update plugin settings screenshot to show .mcpignore feature 2025-07-21 17:19:17 -05:00
PROJECT_STRUCTURE.md docs: Add comprehensive project documentation and security audit 2025-07-12 00:14:45 -05:00
SECURITY-IMPLEMENTATION.md feat: Implement comprehensive security architecture 2025-07-16 09:16:24 -05:00
troubleshooting.md security(docs): replace claude mcp add --header with safe config-file approach 2026-05-18 08:10:00 -05:00