prism-mcp-server 9.4.3 β 9.4.4
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/README.md +2 -1
- package/dist/lifecycle.js +7 -3
- package/package.json +1 -3
package/README.md
CHANGED
|
@@ -826,8 +826,9 @@ The Generator strips the `console.log`, resubmits, and the next `EVALUATE` retur
|
|
|
826
826
|
|
|
827
827
|
## π What's New
|
|
828
828
|
|
|
829
|
-
> **Current release: v9.4.
|
|
829
|
+
> **Current release: v9.4.3 β ESM Bundling Fix (async_hooks)**
|
|
830
830
|
|
|
831
|
+
- π§ **v9.4.3 β ESM Bundling Fix:** Bundled dist had inlined OpenTelemetry CJS `require("async_hooks")` into ESM chunks, causing `Dynamic require of "async_hooks" is not supported` at runtime. Rebuilt with `tsc`. Affects CLI, session save/load, and MCP server startup.
|
|
831
832
|
- π **v9.4.2 β Shell Injection Fix:** Deep code review found shell injection in `getGitDrift()` β `oldSha` was interpolated into `execSync` template string. Fixed with SHA format validation + `execFileSync` (no shell). Defense-in-depth.
|
|
832
833
|
- π **v9.4.1 β Security Hardening & Bidirectional Sync:** Two-pass adversarial audit found 18 vulnerabilities (4C/5H/9M) β 17 fixed. Critical: fail-closed rate limiter, path traversal guards, error sanitization. High: plan name alignment (revenue fix), CORS allowlist, settings injection prevention. New: bidirectional `prism sync push` CLI command pushes local SQLite β Supabase, JWT enrichment eliminates N+1 DB queries, concurrency counter guaranteed via `try/finally`, 10MB request body limits.
|
|
833
834
|
- π― **v9.3.0 β TurboQuant ResidualNorm Tiebreaker:** Configurable ranking optimization for Tier-2 search. When compressed cosine scores are within Ξ΅ of each other, prefers the candidate with lower `residualNorm` (more trustworthy compressed representation). `PRISM_TURBOQUANT_TIEBREAKER_EPSILON=0.005` gives +2pp R@1, +1pp R@5. Empirically validated at N=5K with A/B test. 1066 tests, 0 regressions. Inspired by [@m13v's suggestion](https://github.com/xiaowu0162/LongMemEval/issues/31).
|
package/dist/lifecycle.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import * as fs from "fs";
|
|
9
9
|
import * as path from "path";
|
|
10
10
|
import * as os from "os";
|
|
11
|
-
import {
|
|
11
|
+
import { execFileSync } from "child_process";
|
|
12
12
|
import { closeConfigStorage } from "./storage/configStorage.js";
|
|
13
13
|
import { getStorage } from "./storage/index.js";
|
|
14
14
|
import { shutdownTelemetry } from "./utils/telemetry.js";
|
|
@@ -65,8 +65,12 @@ function isOrphanProcess(pid) {
|
|
|
65
65
|
return false;
|
|
66
66
|
}
|
|
67
67
|
try {
|
|
68
|
-
//
|
|
69
|
-
|
|
68
|
+
// SECURITY: Use execFileSync (no shell) to prevent command injection.
|
|
69
|
+
// The PID comes from a file that could be tampered with by another process.
|
|
70
|
+
const ppid = execFileSync("ps", ["-o", "ppid=", "-p", String(pid)], {
|
|
71
|
+
encoding: "utf8",
|
|
72
|
+
timeout: 5000,
|
|
73
|
+
}).trim();
|
|
70
74
|
return ppid === "1";
|
|
71
75
|
}
|
|
72
76
|
catch {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prism-mcp-server",
|
|
3
|
-
"version": "9.4.
|
|
3
|
+
"version": "9.4.4",
|
|
4
4
|
"mcpName": "io.github.dcostenco/prism-mcp",
|
|
5
5
|
"description": "The Mind Palace for AI Agents β a true Cognitive Architecture with Hebbian learning (episodicβsemantic consolidation), ACT-R spreading activation (multi-hop causal reasoning), uncertainty-aware rejection gates (agents that know when they don't know), adversarial evaluation (anti-sycophancy), fail-closed Dark Factory pipelines, persistent memory (SQLite/Supabase), multi-agent Hivemind, time travel & visual dashboard. Zero-config local mode.",
|
|
6
6
|
"module": "index.ts",
|
|
@@ -102,7 +102,6 @@
|
|
|
102
102
|
},
|
|
103
103
|
"dependencies": {
|
|
104
104
|
"@anthropic-ai/sdk": "^0.81.0",
|
|
105
|
-
"@google-cloud/discoveryengine": "^2.5.3",
|
|
106
105
|
"@google/generative-ai": "^0.24.1",
|
|
107
106
|
"@libsql/client": "^0.17.2",
|
|
108
107
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
@@ -116,7 +115,6 @@
|
|
|
116
115
|
"@tavily/core": "^0.6.0",
|
|
117
116
|
"cheerio": "^1.2.0",
|
|
118
117
|
"commander": "^14.0.3",
|
|
119
|
-
"dotenv": "^16.5.0",
|
|
120
118
|
"fflate": "^0.8.2",
|
|
121
119
|
"jose": "^6.2.2",
|
|
122
120
|
"jsdom": "^29.0.1",
|