diff --git a/mcp-wrapper/package-lock.json b/mcp-wrapper/package-lock.json index 3d9bcdc..eca248f 100644 --- a/mcp-wrapper/package-lock.json +++ b/mcp-wrapper/package-lock.json @@ -517,9 +517,9 @@ } }, "node_modules/@types/node": { - "version": "25.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", - "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", + "version": "25.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz", + "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/iai_mcp/qdrant_store.py b/src/iai_mcp/qdrant_store.py index ec6222d..1cc21da 100644 --- a/src/iai_mcp/qdrant_store.py +++ b/src/iai_mcp/qdrant_store.py @@ -644,6 +644,7 @@ class QdrantStore: offset=offset, scroll_filter=table_filter, with_payload=True, + with_vectors=True, ) all_points.extend(points) if next_offset is None: diff --git a/src/iai_mcp/sleep.py b/src/iai_mcp/sleep.py index e3e6c5b..f2d9b1c 100644 --- a/src/iai_mcp/sleep.py +++ b/src/iai_mcp/sleep.py @@ -296,16 +296,22 @@ def run_light_consolidation( def _build_hebbian_clusters(store: MemoryStore) -> list[list[UUID]]: - """Find connected components in the hebbian edge graph with size >= CLUSTER_MIN_SIZE.""" + """Find connected components in the hebbian+temporal_next edge graph + with size >= CLUSTER_MIN_SIZE. + + Hebbian edges capture semantic similarity (dedup/reinforce); + temporal_next edges capture sequential proximity (same-session inserts + within 5 minutes). Both are valid signals for CLS clustering. + """ edges_df = store.db.open_table(EDGES_TABLE).to_pandas() if edges_df.empty: return [] - hebbian = edges_df[edges_df["edge_type"] == "hebbian"] - if hebbian.empty: + relevant = edges_df[edges_df["edge_type"].isin(("hebbian", "temporal_next"))] + if relevant.empty: return [] adj: dict[UUID, set[UUID]] = {} - for _, row in hebbian.iterrows(): + for _, row in relevant.iterrows(): src = UUID(row["src"]) dst = UUID(row["dst"]) adj.setdefault(src, set()).add(dst)