mnemosyne-core 2.1.10 → 2.1.12
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/dist/cli/index.js +8 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +8 -8
- package/dist/cli/index.mjs.map +1 -1
- package/dist/dashboard/index.html +29 -19
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.map +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/index.mjs +1 -1
- package/dist/mcp/index.mjs.map +1 -1
- package/dist/server/api.js +3 -3
- package/dist/server/api.js.map +1 -1
- package/dist/server/api.mjs +3 -3
- package/dist/server/api.mjs.map +1 -1
- package/dist/server/index.js +4 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +4 -4
- package/dist/server/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
--success: #34d399;
|
|
55
55
|
|
|
56
56
|
/* Effects */
|
|
57
|
-
--glass: blur(20px)
|
|
57
|
+
--glass: blur(20px);
|
|
58
58
|
--shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
|
|
59
59
|
--shadow-md: 0 4px 16px rgba(0,0,0,0.5);
|
|
60
60
|
--shadow-lg: 0 12px 40px rgba(0,0,0,0.6);
|
|
@@ -85,10 +85,10 @@
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
/* Scrollbars */
|
|
88
|
-
::-webkit-scrollbar { width:
|
|
89
|
-
::-webkit-scrollbar-track { background:
|
|
90
|
-
::-webkit-scrollbar-thumb { background: rgba(99, 116, 155, 0.
|
|
91
|
-
::-webkit-scrollbar-thumb:hover { background: rgba(99, 116, 155, 0.
|
|
88
|
+
::-webkit-scrollbar { width: 8px; height: 8px; }
|
|
89
|
+
::-webkit-scrollbar-track { background: rgba(99, 116, 155, 0.08); border-radius: 4px; }
|
|
90
|
+
::-webkit-scrollbar-thumb { background: rgba(99, 116, 155, 0.45); border-radius: 4px; }
|
|
91
|
+
::-webkit-scrollbar-thumb:hover { background: rgba(99, 116, 155, 0.65); }
|
|
92
92
|
|
|
93
93
|
/* ═══════════════════════════════════════════════════════════ */
|
|
94
94
|
/* PART 8: TOP BAR */
|
|
@@ -1534,14 +1534,24 @@
|
|
|
1534
1534
|
border-left: 1px solid var(--border-subtle);
|
|
1535
1535
|
display: flex;
|
|
1536
1536
|
flex-direction: column;
|
|
1537
|
+
overflow: hidden;
|
|
1537
1538
|
z-index: 100;
|
|
1538
1539
|
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
1539
1540
|
}
|
|
1540
1541
|
#sidebar-content {
|
|
1541
1542
|
flex: 1;
|
|
1542
1543
|
overflow-y: auto;
|
|
1544
|
+
overflow-x: hidden;
|
|
1543
1545
|
min-height: 0;
|
|
1544
|
-
|
|
1546
|
+
max-height: 100%;
|
|
1547
|
+
scrollbar-width: thin;
|
|
1548
|
+
scrollbar-color: rgba(99,116,155,0.55) transparent;
|
|
1549
|
+
padding-bottom: 24px;
|
|
1550
|
+
}
|
|
1551
|
+
#sidebar-content::-webkit-scrollbar { width: 8px; }
|
|
1552
|
+
#sidebar-content::-webkit-scrollbar-track { background: transparent; }
|
|
1553
|
+
#sidebar-content::-webkit-scrollbar-thumb { background: rgba(99,116,155,0.35); border-radius: 4px; }
|
|
1554
|
+
#sidebar-content::-webkit-scrollbar-thumb:hover { background: rgba(99,116,155,0.5); }
|
|
1545
1555
|
#sidebar.collapsed {
|
|
1546
1556
|
transform: translateX(100%);
|
|
1547
1557
|
}
|
|
@@ -2847,7 +2857,7 @@
|
|
|
2847
2857
|
.dropdown-menu {
|
|
2848
2858
|
position: fixed;
|
|
2849
2859
|
background: rgba(18, 22, 40, 0.98);
|
|
2850
|
-
backdrop-filter: blur(24px)
|
|
2860
|
+
backdrop-filter: blur(24px);
|
|
2851
2861
|
border: 1px solid rgba(99, 116, 155, 0.25);
|
|
2852
2862
|
border-radius: var(--radius-md);
|
|
2853
2863
|
box-shadow: 0 20px 50px rgba(0,0,0,0.55), 0 0 0 1px rgba(99,102,241,0.06);
|
|
@@ -5724,23 +5734,24 @@ function updateGraph({ reheat = 0.3, newNodeIds = new Set() } = {}) {
|
|
|
5724
5734
|
const viewCenterX = (width / 2 - transform.x) / transform.k;
|
|
5725
5735
|
const viewCenterY = (height / 2 - transform.y) / transform.k;
|
|
5726
5736
|
|
|
5727
|
-
|
|
5737
|
+
// Respect display cap: only sync nodes that are currently rendered
|
|
5738
|
+
const displayNodeIds = new Set(simNodes.map(n => n.id));
|
|
5739
|
+
simNodes = nodes.filter(n => displayNodeIds.has(n.id)).map(n => {
|
|
5728
5740
|
const old = oldNodeMap.get(n.id);
|
|
5729
5741
|
if (old) {
|
|
5730
5742
|
return { ...n, x: old.x, y: old.y, vx: old.vx, vy: old.vy, fx: old.fx, fy: old.fy };
|
|
5731
5743
|
}
|
|
5732
5744
|
const saved = savedLayout[n.id];
|
|
5733
5745
|
if (saved) return { ...n, x: saved.x, y: saved.y, vx: 0, vy: 0 };
|
|
5734
|
-
// NEW NODE — smart positioning near parent or viewport center
|
|
5735
|
-
if (n.parent_id && oldNodeMap.has(n.parent_id)) {
|
|
5736
|
-
const parent = oldNodeMap.get(n.parent_id);
|
|
5737
|
-
return { ...n, x: parent.x + (Math.random() - 0.5) * 100, y: parent.y + (Math.random() - 0.5) * 100, vx: 0, vy: 0 };
|
|
5738
|
-
}
|
|
5739
5746
|
return { ...n, x: viewCenterX + (Math.random() - 0.5) * 60, y: viewCenterY + (Math.random() - 0.5) * 60, vx: 0, vy: 0 };
|
|
5740
5747
|
});
|
|
5741
5748
|
|
|
5742
5749
|
const nodeMap = new Map(simNodes.map(n => [n.id, n]));
|
|
5743
|
-
simLinks = links.
|
|
5750
|
+
simLinks = links.filter(l => {
|
|
5751
|
+
const s = typeof l.source === "object" ? l.source.id : l.source;
|
|
5752
|
+
const t = typeof l.target === "object" ? l.target.id : l.target;
|
|
5753
|
+
return displayNodeIds.has(s) && displayNodeIds.has(t);
|
|
5754
|
+
}).map(l => {
|
|
5744
5755
|
const s = typeof l.source === "object" ? l.source.id : l.source;
|
|
5745
5756
|
const t = typeof l.target === "object" ? l.target.id : l.target;
|
|
5746
5757
|
const sourceNode = nodeMap.get(s);
|
|
@@ -5767,10 +5778,9 @@ function updateGraph({ reheat = 0.3, newNodeIds = new Set() } = {}) {
|
|
|
5767
5778
|
.attr("class", d => `link-tree ${d.type === "root" ? "root-link" : "parent"}`)
|
|
5768
5779
|
.attr("stroke", "#5eead4")
|
|
5769
5780
|
.attr("stroke-opacity", 0)
|
|
5770
|
-
.attr("stroke-width", d => d.type === "root" ?
|
|
5771
|
-
.attr("filter", "url(#tree-glow)");
|
|
5781
|
+
.attr("stroke-width", d => d.type === "root" ? 2 : 3);
|
|
5772
5782
|
treeEnter.transition().duration(400)
|
|
5773
|
-
.attr("stroke-opacity", d => d.type === "root" ? 0.
|
|
5783
|
+
.attr("stroke-opacity", d => d.type === "root" ? 0.7 : 1);
|
|
5774
5784
|
linkTreeSel = treeEnter.merge(linkTreeSel);
|
|
5775
5785
|
|
|
5776
5786
|
// Bond links (grouped with handles)
|
|
@@ -5991,7 +6001,7 @@ function select(d) {
|
|
|
5991
6001
|
if (t === id && !visibleIds.has(s)) { visibleIds.add(s); queue.push(s); }
|
|
5992
6002
|
});
|
|
5993
6003
|
}
|
|
5994
|
-
d3.selectAll(".atom-group").transition().duration(300).style("opacity", n => visibleIds.has(n.id) ? 1 : 0.
|
|
6004
|
+
d3.selectAll(".atom-group").transition().duration(300).style("opacity", n => visibleIds.has(n.id) ? 1 : 0.35);
|
|
5995
6005
|
d3.selectAll(".link-tree, .link-bond").transition().duration(300).style("opacity", l => {
|
|
5996
6006
|
const s = typeof l.source === "object" ? l.source.id : l.source;
|
|
5997
6007
|
const t = typeof l.target === "object" ? l.target.id : l.target;
|
|
@@ -6005,7 +6015,7 @@ function select(d) {
|
|
|
6005
6015
|
if (s === d.id) visibleIds.add(t);
|
|
6006
6016
|
if (t === d.id) visibleIds.add(s);
|
|
6007
6017
|
});
|
|
6008
|
-
d3.selectAll(".atom-group").transition().duration(300).style("opacity", n => visibleIds.has(n.id) ? 1 : 0.
|
|
6018
|
+
d3.selectAll(".atom-group").transition().duration(300).style("opacity", n => visibleIds.has(n.id) ? 1 : 0.5);
|
|
6009
6019
|
d3.selectAll(".link-tree, .link-bond").transition().duration(300).style("opacity", 1);
|
|
6010
6020
|
}
|
|
6011
6021
|
} else if (!currentSearchQuery) {
|
package/dist/index.js
CHANGED
|
@@ -201,7 +201,7 @@ function getVersion() {
|
|
|
201
201
|
const pkg = JSON.parse(readFileSync6(resolve9(process.cwd(), "package.json"), "utf-8"));
|
|
202
202
|
return pkg.version;
|
|
203
203
|
} catch {
|
|
204
|
-
return "2.1.
|
|
204
|
+
return "2.1.11";
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
}
|
|
@@ -5391,7 +5391,7 @@ function getVersion2() {
|
|
|
5391
5391
|
const pkg = JSON.parse(readFileSync6(resolve9(process.cwd(), "package.json"), "utf-8"));
|
|
5392
5392
|
return pkg.version;
|
|
5393
5393
|
} catch {
|
|
5394
|
-
return "2.1.
|
|
5394
|
+
return "2.1.11";
|
|
5395
5395
|
}
|
|
5396
5396
|
}
|
|
5397
5397
|
}
|
|
@@ -5978,7 +5978,7 @@ function getVersion3() {
|
|
|
5978
5978
|
const pkg = JSON.parse(readFileSync6(resolve9(process.cwd(), "package.json"), "utf-8"));
|
|
5979
5979
|
return pkg.version;
|
|
5980
5980
|
} catch {
|
|
5981
|
-
return "2.1.
|
|
5981
|
+
return "2.1.11";
|
|
5982
5982
|
}
|
|
5983
5983
|
}
|
|
5984
5984
|
}
|
|
@@ -7144,7 +7144,7 @@ var PKG_VERSION = (() => {
|
|
|
7144
7144
|
const pkg = JSON.parse(require("fs").readFileSync(require("path").resolve(__dirname, "../../package.json"), "utf-8"));
|
|
7145
7145
|
return pkg.version;
|
|
7146
7146
|
} catch {
|
|
7147
|
-
return "2.1.
|
|
7147
|
+
return "2.1.11";
|
|
7148
7148
|
}
|
|
7149
7149
|
})();
|
|
7150
7150
|
function handleHealth(store, pathname, method, res) {
|
|
@@ -7509,7 +7509,7 @@ var MnemosyneServer = class {
|
|
|
7509
7509
|
const wss = new import_websocket_server.default({ server: this.httpServer });
|
|
7510
7510
|
this.wsHandler = new WebSocketHandler(wss, this.store);
|
|
7511
7511
|
}
|
|
7512
|
-
const version = cfg?.server?.version || "2.1.
|
|
7512
|
+
const version = cfg?.server?.version || "2.1.11";
|
|
7513
7513
|
this.httpServer.listen(port, () => {
|
|
7514
7514
|
console.log(`Mnemosyne v${version} \u2014 port ${port}`);
|
|
7515
7515
|
console.log(`Dashboard: http://${host}:${port}/dashboard`);
|