@oomkapwn/enquire-mcp 3.8.2 → 3.8.3
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 +74 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,80 @@
|
|
|
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.8.3] — 2026-05-24
|
|
6
|
+
|
|
7
|
+
> **TL;DR:** **OIA Check 7 — extend stale-currency-claim detection from `src/*.ts` to `docs/*.md` + `CLAUDE.md`.** Closes the methodology gap exposed by v3.8.2: state-driven sweep found 6 stale-version refs in docs that OIA Check 1 had been silently skipping because it only walked `src/`. Same recursion meta-class as M-1 (lift only some flags to cli-help.ts) and M-2 (extend invariants only to some docs surfaces). Generalized: Check 7 walks `docs/*.md` + `CLAUDE.md`, matches present-tense currency-claim patterns ("stable v3.X.x", "@latest ships v3.X.x", "accurate as of v3.X.Y", "exact for v3.X.x", "covers the v3.X.x"), compares against `package.json` current major.minor, fails on mismatch (unless explicit history context: "initial", "from", "since", "Pre-", "added", "fix", etc.). `docs/audits/` excluded (historical snapshots by definition). Bonus: removed stale Cursor audit ref in `scripts/oia-walk.mjs` header comment (v3.8.1 retraction missed it). **No code changes; 872 tests unchanged.**
|
|
8
|
+
|
|
9
|
+
**Patch — structural defense expansion.**
|
|
10
|
+
|
|
11
|
+
### Background
|
|
12
|
+
|
|
13
|
+
v3.8.2 state-driven audit found 6 stale-version references across `CLAUDE.md` + `docs/api.md` + `docs/COMPARISON.md`. The lesson noted in v3.8.2 CHANGELOG:
|
|
14
|
+
> The current OIA walk does NOT scan docs/ for version-string staleness. Backlog item: extend OIA Check 1 to walk docs/*.md and CLAUDE.md looking for "v3.X.Y" references that mention current state.
|
|
15
|
+
|
|
16
|
+
v3.8.3 ships that backlog item.
|
|
17
|
+
|
|
18
|
+
### What Check 7 does
|
|
19
|
+
|
|
20
|
+
For each file in `CLAUDE.md` + `docs/*.md` (excluding `docs/audits/`):
|
|
21
|
+
1. Read line by line.
|
|
22
|
+
2. For each line, try 5 currency-claim patterns:
|
|
23
|
+
- `stable v(\d+\.\d+)\.x` — "stable v3.X.x" stability claims
|
|
24
|
+
- `(@latest|ships) v(\d+\.\d+)\.x` — npm @latest claims
|
|
25
|
+
- `covers the v(\d+\.\d+)\.x` — scope claims
|
|
26
|
+
- `exact for v(\d+\.\d+)\.x` — exactness claims
|
|
27
|
+
- `accurate as of v(\d+\.\d+\.\d+)` — accuracy timestamp claims
|
|
28
|
+
3. If matched version's major.minor ≠ current major.minor, AND no history-context marker in surrounding 3 lines (`initial`, `from`, `since`, `Pre-`, `was`, `added`, `fix`, `bumped`, etc.), record `STALE-DOC-CURRENCY-CLAIM` finding.
|
|
29
|
+
|
|
30
|
+
### Empirical validation
|
|
31
|
+
|
|
32
|
+
- On main HEAD (post v3.8.2 docs refresh): **0 findings** ✓ (proves the fix worked).
|
|
33
|
+
- On a synthetic test fixture with intentionally stale claims: all 4 patterns fire correctly, history-context detection correctly skips legitimate tombstones.
|
|
34
|
+
- Initial pre-refinement run on `docs/audits/` flagged 4 historical audit-report quotes — root-caused as legitimate (those files are by-definition snapshots) and excluded via path filter.
|
|
35
|
+
|
|
36
|
+
### Why this is the right shape for the recursion class
|
|
37
|
+
|
|
38
|
+
The methodology pattern is:
|
|
39
|
+
1. Find a class of bug (e.g. drift)
|
|
40
|
+
2. Build a structural defense (e.g. cli-help.ts, OIA Check N)
|
|
41
|
+
3. **Apply defense to ONE surface, leave siblings unprotected**
|
|
42
|
+
4. Discover sibling surface drifts the next audit cycle
|
|
43
|
+
5. Extend defense to the sibling surface
|
|
44
|
+
|
|
45
|
+
Step 4 is the recurring failure. The defense is correct but its scope is too narrow. The fix shape is always "lift the defense to cover all siblings."
|
|
46
|
+
|
|
47
|
+
Cf. M-1 lift to cli-help.ts (rc.11), M-2 extend docs-consistency to llms.txt + AGENTS.md (rc.14), M-REG-1 extend check-version-consistency to server.json (rc.18, retracted in v3.8.1 but kept technical fix). v3.8.3 Check 7 is the same shape applied to OIA Check 1.
|
|
48
|
+
|
|
49
|
+
### Bonus fix — Cursor audit reference removal from oia-walk.mjs
|
|
50
|
+
|
|
51
|
+
v3.8.1 retraction removed Cursor audit references from CHANGELOG + CLAUDE.md but missed the inline comment at `scripts/oia-walk.mjs:416`:
|
|
52
|
+
> IMPORTANT (v3.8.0-rc.18 L-OIA-1, per Cursor external audit on rc.15)
|
|
53
|
+
|
|
54
|
+
Updated to:
|
|
55
|
+
> IMPORTANT (v3.8.0-rc.18 S-AUDIT-3, self-audit on rc.17)
|
|
56
|
+
|
|
57
|
+
This is a small consequence of the v3.8.1 retraction (one stale ref slipped through the cleanup). Documented openly here.
|
|
58
|
+
|
|
59
|
+
### Stats
|
|
60
|
+
|
|
61
|
+
- **872 tests** (unchanged — script enhancement only).
|
|
62
|
+
- `scripts/oia-walk.mjs`: 6 checks → 7 checks.
|
|
63
|
+
- 0 code changes in `src/`.
|
|
64
|
+
- `npm audit`: 0 vulnerabilities.
|
|
65
|
+
- Dist-tag: `@latest = 3.8.3` after publish.
|
|
66
|
+
- All 9 required CI gates pass locally.
|
|
67
|
+
|
|
68
|
+
### What's next
|
|
69
|
+
|
|
70
|
+
Backlog (no scope changes):
|
|
71
|
+
- T-2/T-3/T-4 E2E tests
|
|
72
|
+
- OCR'd PDF watcher embed-sync, HNSW in-memory live update
|
|
73
|
+
- HTTP P2-10/P2-11 lifecycle hardening
|
|
74
|
+
- Tier C discoverability
|
|
75
|
+
- v3.9.0 architectural items (HNSW filter-during-search, embed-db migrations, distributed rate-limit)
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
5
79
|
## [3.8.2] — 2026-05-24
|
|
6
80
|
|
|
7
81
|
> **TL;DR:** **State-driven audit findings — 6 stale-version fixes across CLAUDE.md + docs/api.md + docs/COMPARISON.md.** Post-v3.8.1 full self-audit (using OIA methodology applied broadly) found 6 stale-version references across documentation that survived the v3.6.0→v3.8.1 cascade: CLAUDE.md header still said "v3.7.x maintenance" (we're at v3.8.x stable), backlog status said "before promotion to v3.8.0 stable" (already promoted), docs/api.md said "stable v3.7.x @latest" (npm @latest = 3.8.1 → 3.8.2 with this patch), docs/COMPARISON.md timestamps still pinned to v3.7.0 (2026-05-15). All fixed in this docs-only patch. **No code changes; 872 tests unchanged.**
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* + `McpServer({version})`) and `src/tool-registry.ts` (used in the
|
|
8
8
|
* `vault-info` resource payload).
|
|
9
9
|
*/
|
|
10
|
-
export declare const VERSION = "3.8.
|
|
10
|
+
export declare const VERSION = "3.8.3";
|
|
11
11
|
export { main } from "./cli.js";
|
|
12
12
|
export { buildEmbedText, buildMcpServer, formatReadyBanner, prepareServerDeps, type ServeOptions, type ServerDeps, startServer } from "./server.js";
|
|
13
13
|
export { parsePositiveInt, parseQuantizationMode } from "./tool-registry.js";
|
package/dist/index.js
CHANGED
|
@@ -40,7 +40,7 @@ import { main } from "./cli.js";
|
|
|
40
40
|
* + `McpServer({version})`) and `src/tool-registry.ts` (used in the
|
|
41
41
|
* `vault-info` resource payload).
|
|
42
42
|
*/
|
|
43
|
-
export const VERSION = "3.8.
|
|
43
|
+
export const VERSION = "3.8.3";
|
|
44
44
|
// Re-exports — preserve the v3.5.x public surface so http-transport.ts and
|
|
45
45
|
// tests don't need to know about the new module layout. The set below
|
|
46
46
|
// exactly matches the v3.5.x `export` declarations: `main`,
|
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.8.
|
|
4
|
+
"version": "3.8.3",
|
|
5
5
|
"mcpName": "io.github.oomkapwn/enquire-mcp",
|
|
6
6
|
"description": "MCP server giving AI agents (Claude Code, Claude Desktop, Cursor, ChatGPT, Codex, OpenClaw) persistent long-term memory backed by your local Obsidian markdown vault. Hybrid retrieval (BM25 + ML embeddings + BGE reranker, RRF-fused), HNSW + int8 quantization, agentic RAG (HyDE + sub-question decomposition), GraphRAG-light (Louvain), standalone Obsidian Bases, PDFs + Tesseract OCR. Vendor-neutral memory layer for any MCP-compatible agent. 44 tools, 19 MCP prompts, 872 tests, SLSA-3, semver-bound, MIT, zero cloud calls during serve.",
|
|
7
7
|
"type": "module",
|