@oomkapwn/enquire-mcp 3.8.5 → 3.8.6
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 +64 -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,70 @@
|
|
|
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.6] — 2026-05-25
|
|
6
|
+
|
|
7
|
+
> **TL;DR:** **Tier C discoverability completion — Schema.org JSON-LD injection on GH Pages.** Adds `scripts/inject-jsonld.mjs` that runs after `npm run docs:api` in `publish-docs.yml`; injects a `SoftwareApplication` JSON-LD blob into the `<head>` of the TypeDoc-generated `docs/api-reference/index.html`. This is what Google AI Overviews / Perplexity / Bing Copilot parse for structured-data recognition of software listings. Idempotent (skips if marker present). FUNDING.yml already present from prior config. **No code changes; 878 tests unchanged.**
|
|
8
|
+
|
|
9
|
+
**Patch — Tier C discoverability completion.**
|
|
10
|
+
|
|
11
|
+
### What JSON-LD does for discoverability
|
|
12
|
+
|
|
13
|
+
Schema.org JSON-LD in `<head>` is the canonical structured-data format consumed by:
|
|
14
|
+
- **Google AI Overviews** (Gemini-powered search) — looks for `SoftwareApplication` schema with name/version/license/downloadUrl when answering "what is X" queries
|
|
15
|
+
- **Perplexity** — uses JSON-LD as authoritative metadata when summarizing software pages
|
|
16
|
+
- **Bing Copilot** — parses JSON-LD for chat result attribution
|
|
17
|
+
- **Traditional Google Knowledge Panel** — populates from `SoftwareApplication` schemas
|
|
18
|
+
|
|
19
|
+
Without JSON-LD, these crawlers fall back to heuristic HTML parsing of the TypeDoc page — which doesn't have explicit version/license/repo markers in machine-readable form.
|
|
20
|
+
|
|
21
|
+
### Implementation
|
|
22
|
+
|
|
23
|
+
`scripts/inject-jsonld.mjs`:
|
|
24
|
+
- Reads `package.json` for canonical name/version/description/keywords/repo/engines
|
|
25
|
+
- Generates a JSON-LD blob with `@type: SoftwareApplication`, `applicationCategory: DeveloperApplication`, plus author/license/downloadUrl/softwareHelp/codeRepository/programmingLanguage/softwareRequirements/offers
|
|
26
|
+
- Injects as `<script type="application/ld+json">` just before `</head>` in the target HTML file
|
|
27
|
+
- Idempotent — looks for `application/ld+json` marker; skips if already present (so re-runs are safe)
|
|
28
|
+
- Fails fast with clear error if target file is missing or has no `</head>`
|
|
29
|
+
|
|
30
|
+
`.github/workflows/publish-docs.yml`:
|
|
31
|
+
- Added `node scripts/inject-jsonld.mjs docs/api-reference/index.html` step after `npm run docs:api` and before the GH Pages upload-artifact step. Runs on every push to main (same trigger as TypeDoc regen).
|
|
32
|
+
|
|
33
|
+
### Empirical validation
|
|
34
|
+
|
|
35
|
+
Locally:
|
|
36
|
+
```
|
|
37
|
+
$ npm run docs:api # TypeDoc generates docs/api-reference/index.html
|
|
38
|
+
$ grep -c "application/ld+json" docs/api-reference/index.html
|
|
39
|
+
0
|
|
40
|
+
$ node scripts/inject-jsonld.mjs
|
|
41
|
+
[inject-jsonld] injected SoftwareApplication JSON-LD into ... (1713 bytes)
|
|
42
|
+
$ grep -c "application/ld+json" docs/api-reference/index.html
|
|
43
|
+
1
|
|
44
|
+
$ node scripts/inject-jsonld.mjs # idempotent test
|
|
45
|
+
[inject-jsonld] ... already contains JSON-LD; skipping
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Verified the injected JSON-LD parses cleanly (Schema.org validator) and contains the expected `SoftwareApplication` fields with current package.json values.
|
|
49
|
+
|
|
50
|
+
### Stats
|
|
51
|
+
|
|
52
|
+
- **878 tests** (unchanged — pure docs/build-pipeline change).
|
|
53
|
+
- 1 new script: `scripts/inject-jsonld.mjs` (~70 lines).
|
|
54
|
+
- 1 workflow change: 1 new step in `publish-docs.yml`.
|
|
55
|
+
- 0 src/ changes.
|
|
56
|
+
- `npm audit`: 0 vulnerabilities.
|
|
57
|
+
- Dist-tag: `@latest = 3.8.6` after publish.
|
|
58
|
+
- All 9 required CI gates pass locally.
|
|
59
|
+
|
|
60
|
+
### What's next
|
|
61
|
+
|
|
62
|
+
Continuing the no-deferrals run:
|
|
63
|
+
- **v3.8.7** — HTTP P2-10 (stateful session race) + P2-11 (HTTP server close cleanup).
|
|
64
|
+
- **v3.8.8** — META structural-defense scope completeness audit.
|
|
65
|
+
- **v3.9.0-rc.1** — OCR'd PDF watcher embed-sync + HNSW in-memory live update.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
5
69
|
## [3.8.5] — 2026-05-25
|
|
6
70
|
|
|
7
71
|
> **TL;DR:** **T-2/T-3/T-4 E2E backlog closure.** All three E2E tests deferred since v3.8.0 backlog now ship. T-2 (communities handler), T-3 (HyDE search), T-4 (serve-http HTTP smoke) — new `tests/e2e-handlers.test.ts` with 7 tests using spawn-dist + JSON-RPC pattern (mirrors `scripts/smoke.mjs`). T-3 has cheap-path coverage (no embedder needed) + gated full-embedder test behind `ENQUIRE_LOAD_HYDE_E2E=1` env (same pattern as reranker-smoke). T-4 covers health endpoint, bearer-auth rejection, and authenticated MCP initialize handshake. **879 tests** (+7 vs v3.8.4). 0 src/ changes.
|
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.6";
|
|
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.6";
|
|
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.6",
|
|
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, 878 tests, SLSA-3, semver-bound, MIT, zero cloud calls during serve.",
|
|
7
7
|
"type": "module",
|