5efb380da5
* 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
5.6 KiB
5.6 KiB
Spec - YiACAD 2026 stack target
Intent
Fix the 2026 source-of-truth stack for YiACAD so product, backend, desktop, web, QA, and CI/CD all target the same engine baseline and the same integration boundaries.
Baseline date
- Canonical baseline fixed on
2026-03-29.
Product rules
YiACADis the product shell and the product boundary.KiCad,FreeCAD,KiBot,KiAuto, and CAD runtimes are integrated engines inside YiACAD.desktopis the canonical authoring surface.webis the canonical review, collaboration, artifact, and orchestration surface.AIbelongs above the YiACAD backend and project graph, not inside ad hoc GUI automation.MCPis an adapter boundary, not the product core.
Version floor
| Layer | Canonical target | Why it is selected | Boundary |
|---|---|---|---|
| ECAD authoring | KiCad 10.0.x |
modern IPC API, kicad-python, kicad-cli, active 2026 baseline |
integrated desktop engine |
| MCAD authoring | FreeCAD 1.1.x |
stable post-1.0 base, native Assembly/CAM trajectory, mature Python surface | integrated desktop engine |
| Manufacturing automation | KiBot latest stable supported by pinned runner image |
deterministic outputs and bundle generation | Linux/Docker worker lane |
| Validation automation | KiAuto latest stable supported by pinned runner image |
ERC/DRC and replay automation where headless GUI automation is still needed | Linux/Docker worker lane |
| Web viewer | KiCanvas current read-only embedding line |
useful for review, not canonical editing | web review surface only |
| Collaboration | Yjs + y-websocket |
mature CRDT collaboration transport | web collaboration surface |
| Product orchestration | YiACAD backend service-first boundary | normalized outputs, evidence, engine isolation | shared product boundary |
Stack shape
1. Desktop authoring lane
KiCad 10.0.xfor schematic, PCB, rules, exports, and design review entrypoints.FreeCAD 1.1.xfor MCAD inspection, sync, enclosure/fixture work, and downstream model exports.- YiACAD desktop shell drives both engines through backend actions and engine adapters.
2. Backend and AI lane
- YiACAD backend remains the only product orchestration boundary.
- AI agents consume normalized
context.json,uiux_output.json, project metadata, and artifact indexes. - AI suggestions MUST stay traceable, reversible, and artifact-backed.
3. Manufacturing lane
KiBotruns in Linux/Docker workers for reproducible bundles.KiAutoruns in Linux/Docker workers for replay, ERC/DRC automation, and regression gates.- macOS desktop machines are not the canonical place to validate manufacturing automation.
4. Web lane
KiCanvasis viewer/review only.Next.jsclient renders status, review, artifacts, comments, approvals, and project context.Yjs+y-websockethandle collaborative review state.- Browser-side CAD editing is not part of the 2026 source-of-truth baseline.
Approved integration boundaries
KiCad
IPC APIfor live integration.kicad-pythonfor typed client access.kicad-clifor deterministic batch work.Plugin and Content Manageronly for packaging/distribution of the YiACAD KiCad extension, not for product logic ownership.
FreeCAD
- Python API and workbench integration for UI and model automation.
- Addon packaging for distribution and update flow when needed.
- FreeCAD remains an integrated engine, not the YiACAD shell.
Automation
KiBotandKiAutostay behind YiACAD backend actions.- direct worker invocations from product clients are disallowed.
Explicit non-goals
- full browser-first ECAD or MCAD editing as 2026 core
- product architecture based on KiCad/FreeCAD forks
- dependence on deprecated KiCad SWIG bindings
- AI strategy based primarily on screen scraping or GUI event playback
- making third-party AI plugins the product source of truth
Known maturity notes
KiCanvasremains valuable for review, but it is still not a canonical authoring surface.KiAutoremains Linux-oriented in practice and is best treated as a CI worker capability.- third-party AI plugins in KiCad and FreeCAD remain useful probes, not the core YiACAD architecture.
- package rollout lag can exist across platforms even after an upstream release announcement; version pinning MUST be explicit in bootstrap and CI.
Acceptance criteria
- all YiACAD specs reference
KiCad >= 10.0andFreeCAD >= 1.1as the 2026 floor - desktop and web documents agree on
desktop-first authoringandweb-first review - CI/CD documents route
KiBotandKiAutointo Linux/Docker lanes - backend and UX specs agree that YiACAD, not KiCad or FreeCAD, owns the product boundary
External references
- KiCad
10.0.0release,2026-03-20: https://www.kicad.org/blog/2026/03/Version-10.0.0-Released/ - KiCad developer APIs and bindings: https://dev-docs.kicad.org/en/apis-and-binding/
- KiCad
kicad-pythondocs: https://docs.kicad.org/kicad-python-main/ - KiCad
10.0reference manual: https://docs.kicad.org/master/en/kicad/kicad.html - FreeCAD
1.1release,2026-03-25: https://blog.freecad.org/2026/03/25/freecad-version-1-1-released/ - FreeCAD
1.0release,2024-11-19: https://blog.freecad.org/2024/11/19/freecad-version-1-0-released/ - FreeCAD upstream repo: https://github.com/FreeCAD/FreeCAD
- FreeCAD Addon Manager: https://github.com/FreeCAD/AddonManager
- KiBot install docs: https://kibot.readthedocs.io/en/latest/installation.html
- KiAuto upstream: https://github.com/INTI-CMNB/KiAuto
- KiCanvas home: https://kicanvas.org/home/
- Yjs
y-websocketdocs: https://docs.yjs.dev/ecosystem/connection-provider/y-websocket