From d049b9d5230f4f82af05be88c853abb2fe4cd928 Mon Sep 17 00:00:00 2001 From: Xilonng Zhang <15575055655@163.com> Date: Fri, 27 Mar 2026 13:22:01 +0800 Subject: [PATCH] fix: #132 add drawio custom id --- drawio/agent-harness/cli_anything/drawio/core/connectors.py | 3 +++ drawio/agent-harness/cli_anything/drawio/core/shapes.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drawio/agent-harness/cli_anything/drawio/core/connectors.py b/drawio/agent-harness/cli_anything/drawio/core/connectors.py index 478a8ea68..e7595af70 100644 --- a/drawio/agent-harness/cli_anything/drawio/core/connectors.py +++ b/drawio/agent-harness/cli_anything/drawio/core/connectors.py @@ -38,6 +38,9 @@ def add_connector(session: Session, source_id: str, target_id: str, if drawio_xml.find_cell_by_id(session.root, target_id, diagram_index) is None: raise ValueError(f"Target cell not found: {target_id}") + if edge_id is not None and drawio_xml.find_cell_by_id(session.root, edge_id, diagram_index) is not None: + raise ValueError(f"Cell ID already exists: {edge_id}") + session.checkpoint() edge_id = drawio_xml.add_edge( session.root, source_id, target_id, edge_style, label, diff --git a/drawio/agent-harness/cli_anything/drawio/core/shapes.py b/drawio/agent-harness/cli_anything/drawio/core/shapes.py index 64b455a09..eb45925c5 100644 --- a/drawio/agent-harness/cli_anything/drawio/core/shapes.py +++ b/drawio/agent-harness/cli_anything/drawio/core/shapes.py @@ -35,6 +35,9 @@ def add_shape(session: Session, shape_type: str = "rectangle", if not session.is_open: raise RuntimeError("No project is open") + if cell_id is not None and drawio_xml.find_cell_by_id(session.root, cell_id, diagram_index) is not None: + raise ValueError(f"Cell ID already exists: {cell_id}") + session.checkpoint() cell_id = drawio_xml.add_vertex( session.root, shape_type, x, y, width, height, label,