781b278b0d
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
YiACAD Web
This directory hosts the web-facing YiACAD scaffold:
app/provides the Next.js frontend and GraphQL route handler.components/holds the Excalidraw canvas, KiCanvas viewer shell, project tree, and realtime status cards.project/is the Git-tracked source-of-truth for.excalidrawdiagrams and local KiCad inputs.realtime/server.mjslaunches the separate Yjs websocket server with persistence.
Product routes:
/project dashboard/diagramExcalidraw editor/pcbKiCanvas viewer lane/reviewPR review surface
Key commands:
npm installnpm run devnpm run dev:realtimenpm run worker:edanpm run vendor:kicanvas
The current realtime layer exposes a Yjs room and transport status. Binding Excalidraw scene data into the CRDT document is intentionally left as the next incremental lot.
AI / intelligence overlay:
- keep Git as the source of truth
- keep Yjs as collaboration transport only
- keep workers as the execution boundary
- introduce review assist only as a read-only overlay once Git/CI/artifact read models are real
Queue and workers:
- GraphQL enqueues EDA jobs through Redis-backed
BullMQ npm run worker:edaconsumes the queue and calls existing repo toolskicad-headlessusestools/cad/yiacad_native_ops.pykibotprefers a realkibotbinary when configured, then falls back totools/cockpit/fab_package_tui.shkiauto-checksis wired as a real queue pipeline and requiresKIAUTO_BIN
Environment:
- copy values from
.env.example REDIS_URLis required for the queue/worker pathKIBOT_CONFIGis optional until a real KiBot recipe is added to the project