aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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({