@oomkapwn/enquire-mcp 3.5.12 → 3.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
4
 
5
+ ## [3.5.13] — 2026-05-13
6
+
7
+ **Patch — README badges + stale CI claims.** Surface-only cleanup. No code changes.
8
+
9
+ ### Fixed
10
+
11
+ - **npm badge label**: `npm @latest` → `npm`. The `@latest` suffix could be misread as the npm dist-tag (which is implicit when you query the latest version), so the badge was double-labeling. Plus the URL-encoded `%20%40` made the link ugly in raw markdown.
12
+ - **`stable` badge version pointer**: `v3.0-stable` → `v3.5.x-stable`. Was last updated when v3.0.0 shipped (2026-05-09); 12 patch releases later it still pointed at v3.0.
13
+ - **CI gate count + Node matrix in `#trust`** (README line 162): `**8 required** … test ×3 [Node 20/22/24]` → `**7 required** … test ×2 [Node 22/24]`. v3.5.11 dropped Node 20 from CI (EOL'd 2026-04, pdfjs v5 needs ≥22.13); this table was missed in that patch. Inline note added to explain the change.
14
+ - **CI gate count in trust table** (line 92): `8 required + 4 advisory` → `7 required + 4 advisory`. Same drift class as above.
15
+ - **Coverage row**: `branches ≥73% (gated)` → `branches ≥74% (gated)`. v3.5.10 raised the threshold from 72→74 after the coverage uplift work but missed this surface.
16
+
17
+ ### Tests
18
+
19
+ 712 unit tests pass · lint clean · tsc clean · version-consistency green at `3.5.13` across 5 surfaces.
20
+
21
+ ### Migration
22
+
23
+ **No-op.** Documentation-only patch.
24
+
25
+ ### Method note
26
+
27
+ This is exactly the class of drift the v3.5.9 docs-consistency invariants were designed to catch — the per-tool/prompt/test-count surfaces. But CI-config-claim drift (number of required checks, Node matrix in the trust table) is a NEW surface those invariants don't cover. Adding an invariant for "README claims about CI gates must match `.github/workflows/ci.yml` reality" would be the right class fix. Left as future work for the next audit cycle to flag — if it does, we know the class is worth chasing. Same applies to the `branches threshold` claim in the trust table vs `vitest.config.ts`.
28
+
5
29
  ## [3.5.12] — 2026-05-13
6
30
 
7
31
  **Patch — external audit #4 followup.** External re-audit measured v3.5.10 on disk and surfaced 5 LOW/INFO/COSMETIC findings (§3 of [REAUDIT_REPORT_v3.5.10]). Closes all 5 + applies root-cause-sweep methodology so the next audit doesn't find the same drift class again.
package/README.md CHANGED
@@ -9,10 +9,10 @@
9
9
  **Every modern IR primitive. In one tool. For free.**
10
10
 
11
11
  [![CI](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
12
- [![npm](https://img.shields.io/npm/v/@oomkapwn/enquire-mcp/latest.svg?label=npm%20%40latest&color=cb3837)](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
12
+ [![npm](https://img.shields.io/npm/v/@oomkapwn/enquire-mcp.svg?label=npm&color=cb3837)](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
13
13
  [![downloads](https://img.shields.io/npm/dm/@oomkapwn/enquire-mcp.svg?color=cb3837)](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
14
14
  [![tests](https://img.shields.io/badge/tests-712%20passing-brightgreen.svg)](#trust)
15
- [![stable](https://img.shields.io/badge/v3.0-stable-brightgreen.svg)](./STABILITY.md)
15
+ [![stable](https://img.shields.io/badge/v3.5.x-stable-brightgreen.svg)](./STABILITY.md)
16
16
  [![SLSA-3](https://img.shields.io/badge/SLSA-3-blue.svg)](https://slsa.dev/spec/v1.0/levels#build-l3)
17
17
  [![MCP](https://img.shields.io/badge/MCP-1.29-8A2BE2.svg)](https://modelcontextprotocol.io/)
18
18
  [![License](https://img.shields.io/badge/license-MIT-yellow.svg)](./LICENSE)
@@ -89,7 +89,7 @@ enquire-mcp doctor --vault <path> # color-coded ✓/⚠/✗ health check
89
89
  | **GraphRAG-light** (wikilink community detection via Louvain modularity) | ✅ **only here** | ❌ | ❌ |
90
90
  | **Standalone `.base` query execution** (works without Obsidian running) | ✅ **only here** | ❌ | ❌ delegates to Obsidian |
91
91
  | **HyDE retrieval** (Gao et al 2023) + sub-question decomposition | ✅ **only here** | ❌ | ❌ |
92
- | **712 unit tests · 8 required + 4 advisory CI gates per PR** | ✅ | n/a | rare |
92
+ | **712 unit tests · 7 required + 4 advisory CI gates per PR** | ✅ | n/a | rare |
93
93
  | **SLSA-3 build provenance** | ✅ | n/a | ❌ |
94
94
  | **Semver-bound public surface** ([STABILITY.md](./STABILITY.md)) | ✅ | n/a | ❌ |
95
95
  | Standalone (no Obsidian plugin needed) | ✅ | ❌ requires Obsidian | varies |
@@ -159,8 +159,8 @@ Plus 3 MCP resources (`obsidian://vault/info`, `obsidian://note/{path}`, `obsidi
159
159
  | **HTTP transport** | Bearer auth (constant-time SHA-256 + `timingSafeEqual`), per-token rate-limit, strict CORS |
160
160
  | **Frontmatter** | `gray-matter` (`js-yaml` safeLoad) — no code execution |
161
161
  | **Cache + index files** | chmod 0600, parent dir 0700 |
162
- | **CI** | **8 required** branch-protection gates (lint · test ×3 [Node 20/22/24] · smoke · audit · coverage · version-consistency) + **4 advisory** (test-macos · CodeQL ×2 · Analyze actions). Release workflow re-verifies all 8 required passed on tagged SHA before npm publish. |
163
- | **Coverage** | Lines ≥86% · statements ≥82% · functions ≥75% · branches ≥73% (gated) |
162
+ | **CI** | **7 required** branch-protection gates (lint · test ×2 [Node 22/24] · smoke · audit · coverage · version-consistency) + **4 advisory** (test-macos · CodeQL ×2 · Analyze actions). Release workflow re-verifies all 7 required passed on tagged SHA before npm publish. _v3.5.11 — Node 20 dropped (EOL'd 2026-04, pdfjs v5 requires ≥22.13)._ |
163
+ | **Coverage** | Lines ≥86% · statements ≥82% · functions ≥75% · branches ≥74% (gated) |
164
164
  | **Releases** | npm + GitHub release per tag · semver · **SLSA-3** build provenance |
165
165
  | **Stability** | v3.0+ semver-bound — every CLI flag, tool name, MCP resource, prompt, exported symbol is contract |
166
166
 
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import { chunkContent, defaultIndexFile, FtsIndex } from "./fts5.js";
13
13
  import { appendToNote, archiveNote, chatThreadAppend, chatThreadRead, contextPack, createNote, dataviewQuery, embeddingsSearch, findPath, findSimilar, frontmatterGet, frontmatterSearch, frontmatterSet, getBacklinks, getNoteNeighbors, getOpenQuestions, getOutboundLinks, getRecentEdits, getUnresolvedWikilinks, getVaultStats, lintWiki, listCanvases, listNotes, listPdfs, listTags, ocrPdf, openInUi, paperAudit, readCanvas, readNote, readPdf, renameNote, replaceInNotes, resolveWikilink, searchHybrid, searchText, semanticSearch, validateNoteProposal } from "./tools.js";
14
14
  import { Vault } from "./vault.js";
15
15
  import { VaultWatcher } from "./watcher.js";
16
- const VERSION = "3.5.12";
16
+ const VERSION = "3.5.13";
17
17
  /** Default location for the persistent embedding index, alongside .fts5.db. */
18
18
  function embedDbPath(vaultRoot) {
19
19
  // Match the FTS5 location convention by stripping the .fts5.db extension
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@oomkapwn/enquire-mcp",
4
- "version": "3.5.12",
4
+ "version": "3.5.13",
5
5
  "description": "The most advanced MCP server for Obsidian vaults. Hybrid retrieval (BM25 + TF-IDF + multilingual ML embeddings, RRF-fused) with BGE cross-encoder reranking, HNSW vector index, int8 quantization, late-chunking, HyDE-augmented retrieval, sub-question decomposition, PDFs (with OCR), Bases (.base query execution, standalone — no Obsidian needed), GraphRAG-light (Louvain wikilink community detection), wikilinks, backlinks, Dataview, frontmatter, canvas. 44 tools, 19 MCP prompts, 5 cross-encoder reranker models, 712 tests, SLSA-3, semver-bound. Works with Claude Code, Claude Desktop, Cursor, ChatGPT custom GPT, Codex, and any MCP client.",
6
6
  "type": "module",
7
7
  "bin": {