aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authornexxeln <[email protected]>2025-12-02 18:35:15 +0000
committernexxeln <[email protected]>2025-12-02 18:35:15 +0000
commitbb3ab0271e34e76db5461b16b7823f823eaf63e9 (patch)
tree86aebdb43add602c6836b5c22ae59a918e1c02a5 /packages
parentFix: Update discord links in README.md and CONTRIBUTING.md (#598) (diff)
downloadsupermemory-add-merge-relations.tar.xz
supermemory-add-merge-relations.zip
add support for merges relation in the graph (#590)add-merge-relations
new relation called "merges" we use orange dashed line to represent it works just like how extends, updates, etc are displayed
Diffstat (limited to 'packages')
-rw-r--r--packages/memory-graph/src/components/graph-canvas.tsx3
-rw-r--r--packages/memory-graph/src/components/legend.tsx6
-rw-r--r--packages/memory-graph/src/constants.ts1
-rw-r--r--packages/memory-graph/src/types.ts2
-rw-r--r--packages/validation/schemas.ts2
5 files changed, 10 insertions, 4 deletions
diff --git a/packages/memory-graph/src/components/graph-canvas.tsx b/packages/memory-graph/src/components/graph-canvas.tsx
index 59efa74d..ae233a19 100644
--- a/packages/memory-graph/src/components/graph-canvas.tsx
+++ b/packages/memory-graph/src/components/graph-canvas.tsx
@@ -241,7 +241,8 @@ export const GraphCanvas = memo<GraphCanvasProps>(
connectionColor = colors.connection.medium;
} else if (edge.edgeType === "version") {
// Version chains: Double line effect with relation-specific colors
- dashPattern = [];
+ // Special dashed pattern for "merges" relation
+ dashPattern = edge.relationType === "merges" ? [8, 4] : [];
connectionColor = edge.color || colors.relations.updates;
opacity = 0.8;
lineWidth = 2;
diff --git a/packages/memory-graph/src/components/legend.tsx b/packages/memory-graph/src/components/legend.tsx
index 16f588a9..b36c8ffe 100644
--- a/packages/memory-graph/src/components/legend.tsx
+++ b/packages/memory-graph/src/components/legend.tsx
@@ -229,11 +229,15 @@ export const Legend = memo(function Legend({
["updates", colors.relations.updates],
["extends", colors.relations.extends],
["derives", colors.relations.derives],
+ ["merges", colors.relations.merges],
].map(([label, color]) => (
<div className={styles.legendItem} key={label}>
<div
className={styles.relationLine}
- style={{ borderColor: color }}
+ style={{
+ borderColor: color,
+ borderStyle: label === "merges" ? "dashed" : "solid"
+ }}
/>
<span
className={styles.legendText}
diff --git a/packages/memory-graph/src/constants.ts b/packages/memory-graph/src/constants.ts
index 23193601..b93912e0 100644
--- a/packages/memory-graph/src/constants.ts
+++ b/packages/memory-graph/src/constants.ts
@@ -46,6 +46,7 @@ export const colors = {
updates: "rgba(147, 77, 253, 0.5)", // purple
extends: "rgba(16, 185, 129, 0.5)", // green
derives: "rgba(147, 197, 253, 0.5)", // blue
+ merges: "rgba(251, 165, 36, 0.5)", // orange
},
};
diff --git a/packages/memory-graph/src/types.ts b/packages/memory-graph/src/types.ts
index 0a80df22..df783cb0 100644
--- a/packages/memory-graph/src/types.ts
+++ b/packages/memory-graph/src/types.ts
@@ -15,7 +15,7 @@ export interface GraphNode {
isDragging: boolean;
}
-export type MemoryRelation = "updates" | "extends" | "derives";
+export type MemoryRelation = "updates" | "extends" | "derives" | "merges";
export interface GraphEdge {
id: string;
diff --git a/packages/validation/schemas.ts b/packages/validation/schemas.ts
index 92524164..c07764cf 100644
--- a/packages/validation/schemas.ts
+++ b/packages/validation/schemas.ts
@@ -236,7 +236,7 @@ export const SpaceSchema = z.object({
})
export type Space = z.infer<typeof SpaceSchema>
-export const MemoryRelationEnum = z.enum(["updates", "extends", "derives"])
+export const MemoryRelationEnum = z.enum(["updates", "extends", "derives", "merges"])
export type MemoryRelation = z.infer<typeof MemoryRelationEnum>
export const MemoryEntrySchema = z.object({