The root cause of the Y-offset: ELK places main flow nodes at arbitrary positions (e.g., y=679) within its root graph, and the frontend rendered them at those raw positions. Handler sections were already normalized via shiftNodes, but the main section was not. Now useDiagramData.ts applies the same normalization to the main section: computes bounding box, shifts nodes and edges so the section starts at (0,0). This fixes the Y-offset regardless of what ELK produces internally. Removed the backend normalizePositions (was ineffective because handler nodes at y=12 dominated the global minimum, preventing meaningful shift of main flow nodes at y=679). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Cameleer3 UI
React SPA built with @cameleer/design-system, TanStack Query, and Zustand.
Development
npm install
npm run dev
By default the dev server proxies /api/* to http://localhost:8081. To proxy to a remote server instead:
VITE_API_TARGET=http://192.168.50.86:30090 npm run dev
No CORS issues — Vite's proxy makes API calls server-side.
Build
npm run build
API Types
Regenerate TypeScript types from a running backend:
npm run generate-api:live