0df7735d2094ce4a7a19ceb2da21c5e70b2b7d18
Based on thorough code review, fixes all identified issues: 1. **Y-offset root cause**: Added post-layout normalization that shifts all positioned nodes and edges so the bounding box starts at (0,0). ELK can place nodes at arbitrary positions within its root graph; normalizing compensates regardless of what ELK computes internally. 2. **Bounding box**: Compute from recursively flattened node tree + edge point bounds. Removes double-counting of compound children (children have absolute coords, not relative to parent). 3. **SVG double-drawing**: Compound children were drawn both inside drawCompoundContainer and again in the allNodes loop. Now collects compound child IDs and skips them in the second pass. 4. **findNode**: Now recurses into children for nested compound lookup. 5. **colorForType**: Removed redundant double-check on EIP_TYPES. 6. **Dead code removed**: routeNodeMap/indexNodeRecursive (populated but never read), MIN_NODE_WIDTH/CHAR_WIDTH/LABEL_PADDING (unused). 7. **Static initialization**: LayoutMetaDataProvider registration moved from constructor to static block (runs once, not per instance). 8. **Debug logging removed**: Removed diagnostic System.out.println. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Description
Observability server for Cameleer agents
Languages
Java
61.6%
TypeScript
30.2%
HTML
5.2%
CSS
2.9%