diff --git a/src/arcade_agent/exporters/html.py b/src/arcade_agent/exporters/html.py
index dc6ef2d..24dcd00 100644
--- a/src/arcade_agent/exporters/html.py
+++ b/src/arcade_agent/exporters/html.py
@@ -617,12 +617,13 @@ def node_id(name: str) -> str:
dependencies = snapshot.get("component_dependencies", [])
for component in components:
+ comparison_name = component.get("comparison_name", component["name"])
label = (
- f"{component['name']}\\n"
+ f"{comparison_name}\\n"
f"{component.get('num_entities', len(component.get('entities', [])))} entities\\n"
f"{component.get('class_count', 0)} classes / {component.get('method_count', 0)} methods"
)
- lines.append(f" {node_id(component['name'])}[\"{label}\"]")
+ lines.append(f" {node_id(comparison_name)}[\"{label}\"]")
for dep in dependencies:
lines.append(
diff --git a/tests/test_tools/test_compare_baseline.py b/tests/test_tools/test_compare_baseline.py
index cb05a4c..fad3634 100644
--- a/tests/test_tools/test_compare_baseline.py
+++ b/tests/test_tools/test_compare_baseline.py
@@ -3,7 +3,11 @@
import importlib.util
from pathlib import Path
-from arcade_agent.exporters.html import export_evolution_html, export_html
+from arcade_agent.exporters.html import (
+ build_snapshot_mermaid,
+ export_evolution_html,
+ export_html,
+)
from arcade_agent.models.architecture import Architecture, Component
from arcade_agent.models.graph import DependencyGraph, Entity
from arcade_agent.models.metrics import MetricResult
@@ -137,6 +141,27 @@ def test_build_report_payload_derives_names_for_generic_components():
assert report["dependency_rows"][0]["status"] == "matched"
+def test_snapshot_mermaid_uses_comparison_names_for_nodes_and_dependencies():
+ baseline = _snapshot("abc1234", "Repository3", 1, 1)
+ baseline["components"][0]["entities"] = [
+ "sample_repo.algorithms.coupling.compute_rci",
+ "sample_repo.algorithms.coupling.compute_turbo_mq",
+ ]
+ baseline["component_dependencies"] = [
+ {"source": "Repository3", "target": "Repository3"}
+ ]
+ current = _snapshot("def5678", "Repository3", 1, 1)
+ current["components"][0]["entities"] = list(baseline["components"][0]["entities"])
+ current["component_dependencies"] = list(baseline["component_dependencies"])
+
+ report = build_report_payload(current, baseline)
+ mermaid = build_snapshot_mermaid(report["current"])
+
+ assert 'AlgorithmsCoupling["AlgorithmsCoupling\\n' in mermaid
+ assert "AlgorithmsCoupling --> AlgorithmsCoupling" in mermaid
+ assert 'Repository3["' not in mermaid
+
+
def test_build_report_payload_uses_repo_name_from_snapshot():
baseline = _snapshot("abc1234", "Core", 1, 1)
current = _snapshot("def5678", "Core", 1, 1)