diff options
| author | nexxeln <[email protected]> | 2025-12-02 18:35:15 +0000 |
|---|---|---|
| committer | nexxeln <[email protected]> | 2025-12-02 18:35:15 +0000 |
| commit | bb3ab0271e34e76db5461b16b7823f823eaf63e9 (patch) | |
| tree | 86aebdb43add602c6836b5c22ae59a918e1c02a5 | |
| parent | Fix: Update discord links in README.md and CONTRIBUTING.md (#598) (diff) | |
| download | supermemory-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
| -rw-r--r-- | packages/memory-graph/src/components/graph-canvas.tsx | 3 | ||||
| -rw-r--r-- | packages/memory-graph/src/components/legend.tsx | 6 | ||||
| -rw-r--r-- | packages/memory-graph/src/constants.ts | 1 | ||||
| -rw-r--r-- | packages/memory-graph/src/types.ts | 2 | ||||
| -rw-r--r-- | packages/validation/schemas.ts | 2 |
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({ |