|
7 | 7 |
|
8 | 8 | --- |
9 | 9 |
|
10 | | -## 🤖 AGENT HANDOFF — Estado actual del proyecto (2026-02-21T11:16 -03:00) |
| 10 | +## 🤖 AGENT HANDOFF — Estado actual del proyecto (2026-02-21T13:59 -03:00) |
11 | 11 |
|
12 | 12 | > [!IMPORTANT] |
13 | | -> **v1.3.2 — CI verde restaurado + 372 tests** (2026-02-21) |
14 | | -> - `ruff format` aplicado en 4 archivos: `arbitrage_engine.py`, `cmg_predictor.py`, `dashboard_api.py`, `test_luna2000_driver_async.py` |
15 | | -> - CI/CD 100% verde: ruff ✅ · mypy ✅ · pytest 372/372 ✅ · Helm ✅ · Terraform ✅ |
16 | | -> - Suite real: **372 tests** (vs 228 documentados en v1.3.1 — la suite creció con nuevas iteraciones) |
17 | | -> - **Auth API CEN confirmada**: `?user_key=TOKEN` (NO Bearer) · endpoint correcto: `/costo-marginal-real/v4/findByDate` |
18 | | -> - **Estado fuentes datos**: CNE públicos (5 módulos) listos sin bloqueo · CEN plan "Mercados" por verificar · DMC no implementado |
19 | | -> - **Próximas acciones**: verificar plan Mercados CEN → ejecutar CNE público → implementar módulo DMC → entrenar ONNX con datos reales |
| 13 | +> **v1.4.0 — Estándares internacionales implementados** (2026-02-21) |
| 14 | +> - Commit `474fb27` → main: 22 archivos, 1.871 lneas nuevas |
| 15 | +> - CI ahora tiene **9 jobs**: lint + typecheck + test + **security** (bandit+pip-audit) + terraform + helm + docker-build + **trivy** (CVE scan SARIF) + docker-push |
| 16 | +> - Dependabot activado: pip + github-actions + docker (semanal, ya creando PRs automáticos) |
| 17 | +> - Release pipeline: SBOM (CycloneDX JSON+XML) + firma imagen cosign (sigstore keyless) |
| 18 | +> - **Gobernanza OSS**: SECURITY.md, CODE_OF_CONDUCT.md, GOVERNANCE.md, CONTRIBUTING.md |
| 19 | +> - **ADRs**: 5 decisiones documentadas en `docs/adr/` (pydantic-settings, struct Modbus, IsolationForest, ONNX, Pub/Sub) |
| 20 | +> - **Compliance**: NTSyCS CEN Chile + IEC 62443 SL-1 mapeados en `docs/compliance/` |
| 21 | +> - **Prometheus**: 12 alert rules en `infrastructure/prometheus/alert_rules.yml` |
| 22 | +> - Tests: 372/372 ✅ · ruff ✅ · Docker stack: gateway healthy en localhost:8000 |
| 23 | +> - **Próximas acciones**: registrar en OpenSSF Best Practices badge · verificar plan Mercados CEN · entrenar ONNX con datos reales |
20 | 24 |
|
21 | 25 |
|
22 | 26 |
|
@@ -144,6 +148,50 @@ Format: [Semantic Versioning](https://semver.org/) · [Conventional Commits](htt |
144 | 148 |
|
145 | 149 | --- |
146 | 150 |
|
| 151 | +## [v1.4.0] — 2026-02-21 |
| 152 | + |
| 153 | +> **Hito:** Nivelación a estándares internacionales de software industrial open source |
| 154 | +
|
| 155 | +### Added |
| 156 | +- **Gobernanza OSS** (requerida por CNCF/Linux Foundation): |
| 157 | + - `SECURITY.md` — responsible disclosure, SLAs, protocolo emergencia ICS, safe harbor |
| 158 | + - `CODE_OF_CONDUCT.md` — Contributor Covenant v2.1 |
| 159 | + - `GOVERNANCE.md` — roles (Maintainer/Contributor/Community), proceso de decisiones, release policy |
| 160 | + - `CONTRIBUTING.md` — setup entorno, convención commits, reglas safety-critical, cómo añadir drivers |
| 161 | +- **GitHub Templates**: |
| 162 | + - `.github/ISSUE_TEMPLATE/bug_report.yml` — 10 campos con componente, OS, logs |
| 163 | + - `.github/ISSUE_TEMPLATE/feature_request.yml` — área, motivación, voluntad de contribuir |
| 164 | + - `.github/pull_request_template.md` — checklist con Safety Impact Assessment |
| 165 | + - `.github/dependabot.yml` — actualizaciones semanal: pip + github-actions + docker |
| 166 | +- **Supply Chain Security en CI** (`ci.yml` a 9 jobs): |
| 167 | + - Job `security`: `bandit -r src/ --severity medium` (SAST) + `pip-audit --requirement requirements.txt` (CVE deps) |
| 168 | + - Job `trivy`: escaneo imagen Docker, resultados subidos al GitHub Security tab (SARIF) |
| 169 | +- **SBOM + Firma de release** (`release.yml`): |
| 170 | + - Job `generate-sbom`: CycloneDX JSON + XML adjuntos como asset del GitHub Release |
| 171 | + - Job `sign-image`: cosign keyless signing (Sigstore) de la imagen Docker en Artifact Registry |
| 172 | +- **Architecture Decision Records** (`docs/adr/`): |
| 173 | + - ADR-0001: pydantic-settings para configuración (vs dynaconf/configparser) |
| 174 | + - ADR-0002: `struct` stdlib para Modbus encoding (vs BinaryPayloadDecoder removido en pymodbus 3.12) |
| 175 | + - ADR-0003: IsolationForest + z-score ensemble para AI-IDS (vs autoencoder/SVM) |
| 176 | + - ADR-0004: ONNX Runtime para inferencia offline en edge (vs PyTorch/TFLite) |
| 177 | + - ADR-0005: GCP Pub/Sub para telemetría (vs MQTT/Kafka/AWS IoT) |
| 178 | +- **Documentación de compliance** (`docs/compliance/`): |
| 179 | + - `ntscys_compliance.md` — mapeo formal NTSyCS CEN Chile (Cap. 4, 6, 8) |
| 180 | + - `iec62443_mapping.md` — IEC 62443-3-3 SL-1: 7 Foundation Requirements mapeados a implementación |
| 181 | +- **Prometheus Alerting** (`infrastructure/prometheus/`): |
| 182 | + - `alert_rules.yml` — 12 reglas en 4 grupos: availability, safety, AI-IDS, connectivity |
| 183 | + - `prometheus.yml` — `rule_files` activado apuntando a `alert_rules.yml` |
| 184 | +- **pyproject.toml**: sección `[tool.bandit]` con skips ajustados al codebase |
| 185 | +- **README.md**: 4 nuevos badges (Security Policy, OpenSSF Best Practices, IEC 62443, NTSyCS) |
| 186 | + |
| 187 | +### Tests |
| 188 | +``` |
| 189 | +372 / 372 passed (sin regresión) |
| 190 | +CI: ruff ✅ · format ✅ · 9 jobs activos |
| 191 | +``` |
| 192 | + |
| 193 | +--- |
| 194 | + |
147 | 195 | ## [v1.3.2] — 2026-02-21 |
148 | 196 |
|
149 | 197 | ### Fixed |
|
0 commit comments