- drag from a node's side port onto another node to create an edge (dashed live preview, dedupe, self-link rejected); click an edge to select (highlighted), Delete removes it, Ctrl+Z restores — all in undo history and autosave - generate panel shows an explicit hint when the site has no image models instead of an empty dropdown - render hardening: viewport-culling size now has a hard floor (max(stageSize, window, 1600x900)) so a delayed/degenerate ResizeObserver reading can never cull nodes out of the DOM; stage listeners attach with retry + rAF self-healing measure; pointer capture wrapped in try/catch for synthetic pointers
ai-gateway frontend
Vue 3 + Vite admin console for the ai-gateway backend. This replaces the old
single-file static/admin.html.
Develop
npm install
npm run dev # http://localhost:5173
The dev server proxies /admin, /health, /generated, /v1 to the backend.
Start the backend separately:
# from repo root
python app.py # http://0.0.0.0:6060
If the backend runs elsewhere, set VITE_BACKEND before npm run dev:
VITE_BACKEND=http://192.168.1.10:6060 npm run dev
Build
npm run build # outputs static assets to ./dist
npm run preview # serve the production build locally
When hosting dist/ on a different origin than the API, set VITE_API_BASE
(e.g. VITE_API_BASE=http://api-host:6060) at build time, and add that frontend
origin to the backend's CORS_ORIGINS env var.