e67fb754c2
Session kxkm-ai 25-26 mars 2026 — 98/98 tâches TODO complétées. Hardware: - KiCad 10.0.0 native avec sym/fp-lib-table locales - Nouveau block SPI (gen_spi_header.py), ERC clean - Module partagé hardware/lib/kicad_gen.py (5 générateurs refactorisés) - Pipeline export: tools/hw/hw_export.sh (ERC + SVG + PDF + netlist) - KiBot 1.8.5 installé, .kibot.yaml configuré Firmware: - Fix I2S driver conflict: migration I2sMic vers nouvelle API i2s_channel_* - Fix WDT risk: yield() dans CompletePushToTalk (voice_controller.cpp) - Fix XSS wifi_manager.cpp: innerHTML → createElement/textContent - Fix null check FwIsValidWavHeader - Dead code supprimé: i2s_audio.cpp.bak, i2s_audio.h Simulation MCU: - QEMU ESP32-S3 v9.2.2 installé (tools/sim/) - Script run_qemu_esp32s3.sh — boot OK vérifié - [env:esp32s3_qemu] dans platformio.ini - Wokwi CI: wokwi.toml + diagram.json + scenario.yaml - SPICE bridge POC: tools/sim/spice_bridge.py (ngspice → ADC/brownout) Compliance: - Profil iot_wifi_eu validé (16 standards, 8 evidence) - 4 evidence remplis: risk_assessment, security_architecture, test_plan_radio_emc, supply_chain_declarations - plan.yaml complété avec données produit réelles CI: - Job hardware-export (KiCad 10 ERC + SVG + PDF + netlist) - Job firmware-sim (Wokwi, conditionnel WOKWI_CLI_TOKEN) - evidence_pack.yml enrichi avec exports hardware Docs & RAG: - specs/02_arch.md complet (481 lignes, 4 ADR, diagrammes) - docs/SIMULATION.md (3 niveaux: native, QEMU, Wokwi) - 6 chunks ingérés dans kb-kicad RAG - Dataset HF: tools/generate_hf_dataset.py + datasets/kb_kicad_qa.jsonl - Rapport analyse: docs/plans/ANALYSIS_REPORT_2026-03-25.md - Recherche OSS: docs/research/oss_similar_projects.md Infra: - ZeroClaw 0.1.7 installé (cargo install) - APIFY_API_KEY configurée, smoke OK - Tests: 39/39 firmware + 26/26 Python stable Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.6 KiB
5.6 KiB
Kill_LIFE — Rapport d'analyse approfondie (25 mars 2026)
Machine: kxkm-ai (Linux, RTX 4090) — KiCad 10.0.0 installé
1. Validation KiCad 10
| Check | Result |
|---|---|
| KiCad 10 CLI | /usr/bin/kicad-cli v10.0.0 |
| Symbol libraries | 223 libs dans /usr/share/kicad/symbols/ |
gen_kicad10.py |
Schéma régénéré OK (78,247 bytes) |
| ERC esp32_minimal | 0 erreurs, 0 warnings (avec lib tables locales) |
| ERC power_usbc_ldo | 0 erreurs, 1 warning (isolated label — normal block isolé) |
| ERC uart_header | 0 erreurs, 4 warnings (isolated labels) |
| ERC i2s_dac | 0 erreurs, 6 warnings (isolated labels) |
| ERC spi_header (NEW) | 0 erreurs, 9 warnings (isolated labels) |
Actions effectuées:
- Ajout
sym-lib-table+fp-lib-table(chemins absolus) danshardware/esp32_minimal/ethardware/blocks/ - Copie des tables globales KiCad 10 dans
~/.config/kicad/10.0/ - Nouveau block SPI créé :
hardware/blocks/gen_spi_header.py
2. Tests Firmware
| Suite | Result |
|---|---|
| PlatformIO native (Unity) | 39/39 PASSED (0.18s) |
| PlatformIO build ESP32-S3 | Non testé (cross-compilation) |
3. Tests Python
| Suite | Result |
|---|---|
| Stable suite | 26/26 PASSED (après fix test_auto_check_ci_cd.py) |
| validate_specs --json | OK (15 specs, 38 MUST, 12 SHOULD) |
| compliance --strict | OK (prototype profile, 5 standards, 4 evidence) |
Fix appliqué : test/test_auto_check_ci_cd.py — remplacé chemins Mac hardcodés /Users/electron/Kill_LIFE/ par auto_check_ci_cd.ROOT (dynamique, fonctionne sur toutes les machines).
4. Issues identifiées (code quality)
Firmware (C++)
| Sévérité | Fichier | Issue |
|---|---|---|
| Medium | firmware_utils.h:74 |
FwIsValidWavHeader — pas de null check sur data (fonctionne par accident via len < 12) |
| Low | main.cpp:85-86 |
g_backend, g_voice heap-allocated, jamais freed (acceptable ESP32) |
| Medium | http_backend.cpp:136 |
Port 8000 hardcodé dans fallback gateway TCP |
| High | voice_controller.cpp:32-91 |
CompletePushToTalk bloque le main loop — risque WDT reset |
| Low | i2s_audio.cpp.bak |
Dead code — ancien driver monolithique, à supprimer |
| Medium | wifi_manager.cpp:265 |
XSS potentiel via SSID injection dans innerHTML |
Python/Tools
| Sévérité | Fichier | Issue |
|---|---|---|
| Low | schops.py:42-46 |
kicad_cli_path() hardcode chemin macOS en premier |
| Medium | gen_*.py (4 fichiers) |
~100 lignes dupliquées (helpers KiCad) — extraire en module partagé |
| Low | specs/02_arch.md |
Template partiel — ne couvre que WiFi Scanner, pas le système complet |
Paths Mac hardcodés
| Fichier | Issue |
|---|---|
README.md:580-584 |
Liens absolus /Users/electron/Documents/... (Mac) |
README.md:571 |
Chemin mémoire /Users/electron/.codex/memories/... |
test/test_auto_check_ci_cd.py |
CORRIGÉ — utilisait /Users/electron/Kill_LIFE/ |
5. État MCP
mcp.json déclare 10 serveurs locaux + 1 distant :
| Serveur | Status |
|---|---|
| kicad | Script présent |
| validate-specs | Script présent |
| knowledge-base | Script présent |
| github-dispatch | Script présent |
| freecad | Script présent |
| openscad | Script présent |
| ngspice | Script présent |
| platformio | Script présent |
| apify | Script présent (needs API key) |
| huggingface | Remote URL |
Note : Le README dit "7 serveurs MCP" mais il y en a 10+1. README à mettre à jour.
6. Recherche OSS — Projets similaires / utilisables
KiCad Automation
| Projet | Maturité | Usage Kill_LIFE |
|---|---|---|
| KiBot | Haute | Automation Gerber/BOM/DRC/ERC pour CI |
| kicad-skip | Moyenne | Bulk edits programmatiques de schémas |
| circuit-synth/kicad-sch-api | Moyenne | MCP server KiCad schematic (15 tools) |
| KiKit | Haute | Panelization PCB production |
| InteractiveHtmlBom | Haute | BOM visuelle interactive |
ESP32 Frameworks
| Projet | Maturité | Usage Kill_LIFE |
|---|---|---|
| ESP-IDF v6 | Très haute | Framework firmware production |
| ESP-ADF | Haute | Audio pipeline (radio, voice) |
| ESP-RainMaker | Haute | Cloud IoT connectivity |
Hardware Design Automation
| Projet | Maturité | Usage Kill_LIFE |
|---|---|---|
| SKiDL | Moyenne-haute | Schematics-as-code (Python → netlist) |
| PySpice | Moyenne | Interface Python pour ngspice |
Compliance/SBOM
| Projet | Maturité | Usage Kill_LIFE |
|---|---|---|
| CycloneDX | Haute | SBOM standard format |
| SPDX | Haute | License compliance |
7. Prochaines actions recommandées
Priorité haute
- Corriger
FwIsValidWavHeadernull check - Corriger XSS potentiel
wifi_manager.cpp(sanitize SSID HTML) - Extraire helpers KiCad en module partagé
hardware/lib/kicad_gen.py - Bootstrapper Python venv sur kxkm-ai : FAIT
Priorité moyenne
- Compléter
specs/02_arch.md— architecture système complète - Supprimer
i2s_audio.cpp.bak - Corriger chemins Mac dans
README.md - Mettre à jour compteur MCP dans README (10 serveurs, pas 7)
- Intégrer KiBot pour automation CI hardware
- Évaluer kicad-skip pour bulk edits
Priorité basse
- Ajouter tests mock pour VoiceController/OtaManager
- Évaluer PySpice pour piloter ngspice depuis Python
- Compliance evidence — remplir les stubs placeholder