From 793c804ceb6e7b9767970a594ce134894635ca84 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Wed, 13 May 2026 15:13:27 +0000 Subject: [PATCH] fix(analyzer): path-qualify SERVICE node IDs to break PK collisions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ServiceDetector emitted node IDs as `"service:" + name`. When a codebase contains two modules in different directories sharing a service name (e.g. `frontend/widgets/checkbox/` and `backend/components/checkbox/` both with `name = "checkbox"` in pyproject.toml) the IDs collided. Kuzu's BulkLoadNodes COPY aborts the whole batch on duplicate PK, so enrich exited non-zero on real polyglot trees (~/projects/, polyglot-bench). Switch IDs to `service::`, falling back to `.` for the root module so the format mirrors the existing FilePath stamping. Edge IDs flip from `edge:service: