Files
Clément SAILLANT 5efb380da5 feat: automate yiacad PR review lane (#18)
* feat: automate yiacad pr review lane

* fix: stabilize yiacad review and spec gates

* fix: scope kicad exports to repo hardware

* fix: ignore kicad block library sources in exports

* feat: Add infra VPS monitoring runbook and healthcheck scripts

- Created INFRA_VPS_RUNBOOK_2026.md detailing operational procedures for monitoring VPS services.
- Added infra_vps_healthcheck.sh script for automated health checks on DNS, TLS, TCP, and HTTP for VPS services.
- Introduced infra_vps_security_audit.sh for non-intrusive security checks on external VPS services.
- Established JSON schema for infra VPS inventory in infra_vps.schema.json.
- Developed integration for runtime status reporting in the Next.js API route.
- Implemented Playwright tests for smoke testing the application and ensuring core functionalities.
- Updated Makefile for development dependencies and testing commands.
- Created various test files for unit and end-to-end testing across different components.

* feat(agentics): update mesh agents, gates, prompts, and workflows
2026-03-29 17:14:16 +02:00

2.2 KiB

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 .excalidraw diagrams and local KiCad inputs.
  • realtime/server.mjs launches the separate Yjs websocket server with persistence.

Product routes:

  • / project dashboard
  • /diagram Excalidraw editor
  • /pcb KiCanvas viewer lane
  • /review PR review surface

Key commands:

  • npm install
  • npm run dev
  • npm run dev:realtime
  • npm run worker:eda
  • npm 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:eda consumes the queue and calls existing repo tools
  • le heartbeat worker est publie dans web/project/.ci/worker-health.json
  • kicad-headless utilise tools/cad/yiacad_backend_client.py en mode service-first
  • kibot passe maintenant par tools/cad/yiacad_backend_client.py et publie un package manufacturing YiACAD normalise
  • kiauto-checks passe maintenant par tools/cad/yiacad_backend_client.py et publie une sortie de validation YiACAD normalisee

Ops probes:

  • GET /api/ops/platform expose next-js, yjs-realtime, eda-queue et eda-worker
  • GET /api/ops/queue distingue une mauvaise configuration REDIS_URL d'un Redis injoignable
  • GET /api/ops/worker publie le heartbeat worker, le dernier job et les etats stale ou absent

Environment:

  • copy values from .env.example
  • REDIS_URL is required for the queue/worker path
  • KIBOT_CONFIG is optional until a real KiBot recipe is added to the project