f8616b806e
P1 (Wave 1, feat) — REQ-187, REQ-188, REQ-205 (emitter), REQ-206 (emitter) New components: - core/metrics/event_envelope.py — CloudEvents 1.0 envelope + platform.* conventions - core/metrics/run_manifest.py — per-run manifest writer (nova.run.started/completed/failed) - core/metrics/decision_ledger.py — SQLite append-only hash-chain (ai.decision.made + attestation.recorded) - core/metrics/infracost_adapter.py — Infracost post-processor (degraded mode when CLI absent, A6) - schemas/metrics_event.schema.json — CloudEvents envelope schema - schemas/metrics_run_manifest.schema.json — per-run manifest schema - metrics/README.md — backup/restore doc (REQ-201) - tests/test_metrics_emitters.py — 16 tests (all pass) Modified components: - core/confidence_signal.py — emits nova.confidence.computed + nova.ai.decision.made (D-122) - core/hitl_gates.py — emits nova.attestation.recorded on qa/prod/dr gates (D-132) - adapters/terraform/policy/checkov_adapter.py — emits nova.policy.evaluated - pyproject.toml — addopts gains --junitxml + --json-report + --cov (REQ-206) - .gitignore — metrics runtime artifacts ignored D-120: Nova-native (JSONL + SQLite, no Kafka/OTel) D-121: Decision Ledger = outbox_writer extension → SQLite hash-chain D-122: AI decision = confidence_signal + HITL gate (not LLM) D-128: metrics/ at repo root D-132: Attestation instrumentation ---ci--- project: acdl phase: 1 milestone: v1.17 status: execute ---/ci---
36 lines
995 B
TOML
36 lines
995 B
TOML
[project]
|
|
name = "nova"
|
|
version = "1.14.0"
|
|
description = "Nova — consumers declare intent; the platform delivers safe production deployment."
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"boto3>=1.34",
|
|
"jsonschema>=4.20",
|
|
"pyyaml>=6.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
test = [
|
|
"pytest>=8.0",
|
|
"pytest-cov>=4.0",
|
|
"pytest-json-report>=1.5",
|
|
"moto[dynamodb]>=5.0",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
markers = [
|
|
"offline: tests that run without AWS/Checkov/DynamoDB",
|
|
"slow: tests that invoke the full platform pipeline (long-running)",
|
|
]
|
|
addopts = "-v --tb=short --junitxml=metrics/test-results.xml --json-report --cov=core --cov=adapters --cov-report=json:metrics/coverage.json --json-report-file=metrics/test-report.json"
|
|
filterwarnings = [
|
|
"ignore::DeprecationWarning:botocore.*",
|
|
]
|
|
|
|
[tool.coverage]
|
|
run.source = ["core", "adapters"]
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.backends._legacy:_Backend" |