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
3.5 KiB
3.5 KiB
Spec - YiACAD backend architecture (T-ARCH-101)
Probleme
YiACAD est desormais cadre comme une app independante, mais la resolution de contexte, la normalisation des sorties et l'acces aux moteurs CAD integres restent trop disperses. Cela freine T-UX-004 et maintient une dependance trop forte au simple lancement de script.
Objectifs
- Introduire une couche backend locale partagee pour le contexte YiACAD.
- Produire un artefact de contexte et un artefact de sortie normalisee pour chaque action YiACAD.
- Garder la compatibilite avec le shell YiACAD, les TUI existantes et les futures surfaces web.
- Exposer une frontiere d'integration explicite vers
KiCad,FreeCAD,KiBot,KiAutoet les workers. - Preparer la transition vers un backend YiACAD plus stable que le runner Python direct.
- Aligner la couche backend sur le SOT 2026:
KiCad >= 10.0viaIPC API,kicad-python,kicad-cliFreeCAD >= 1.1via Python API / workbenchKiBotetKiAutoen lanes Linux/Docker derriere des actions backend
Non-objectifs
- faire des forks
KiCad/FreeCADla cible produit principale - compiler un service embarque dans
KiCadouFreeCADdans cette passe - changer la semantique produit des actions deja exposees
- lancer une campagne de tests lourde
Composants
tools/cad/yiacad_backend.pytools/cad/yiacad_backend_service.pytools/cad/yiacad_backend_client.pytools/cad/yiacad_native_ops.pyspecs/contracts/yiacad_context_broker.schema.jsonspecs/contracts/yiacad_uiux_output.schema.json- runtime engines integres
KiCad,FreeCAD,KiBot,KiAuto - cadrage canonique:
specs/yiacad_2026_stack_target_spec.mdspecs/yiacad_adr_20260329_sot.mdspecs/yiacad_plugin_workbench_ci_plan.md
Criteres d'acceptation
- chaque run YiACAD produit un
context.json - chaque run YiACAD produit un
uiux_output.json - la sortie JSON du runner peut etre demandee explicitement via
--json-output - une facade backend locale adressable existe pour l'operateur, l'app et les futurs clients
- les acces
KiCad/FreeCAD/KiBot/KiAutopassent par une frontiere moteur explicite et non par la definition produit du shell - les plans et TODOs pointent
T-ARCH-101comme front architecture actif T-UX-004peut consommer les artefacts backend sans redefinir un nouveau contrat
Prochaines tranches
T-ARCH-101A: backend local + context broker + contratsT-ARCH-101B: facade backend locale adressable / transport interne YiACADT-ARCH-101C: branchementservice-firstdes surfaces produit YiACAD- tranche suivante hors present lot: stabiliser les moteurs integres
KiCad/FreeCAD/KiBot/KiAuto/ workers
Delta 2026-03-21 - T-ARCH-101C service-first
tools/cad/yiacad_backend_service.pypublie un backend HTTP local adressable.tools/cad/yiacad_backend_client.pyapporte un cheminservice-firstavec auto-start et fallback direct.- Norme produit
2026-03-29: ce cheminservice-firstsert le shell YiACAD et ses moteurs integres; il ne suppose pas queKiCadouFreeCADsoient les shells produit canoniques.
Delta 2026-03-29 - engine boundary hardening
- Les surfaces produit doivent appeler le backend YiACAD, jamais
KiCad,FreeCAD,KiBotouKiAutoen direct. - Le backend devient le seul endroit autorise pour faire respecter:
- les floors de version
KiCad >= 10.0,FreeCAD >= 1.1 - la segregation
desktop authoring/web review/Linux manufacturing - la publication de
engine_status,degraded_reasons,artifacts,next_steps
- les floors de version