mayhem-cli 0.9.0__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/CHANGELOG.md +348 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/PKG-INFO +190 -33
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/README.md +189 -32
- mayhem_cli-1.0.0/docs/README.md +85 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/config.md +26 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/drill-spec.md +604 -18
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/fault-catalog/README.md +1 -1
- mayhem_cli-1.0.0/docs/fault-catalog/reliability-matrix.md +118 -0
- mayhem_cli-1.0.0/docs/new-faults/OUTCOME.md +115 -0
- mayhem_cli-1.0.0/docs/new-faults/README.md +129 -0
- mayhem_cli-1.0.0/docs/new-faults/contract-checklist.md +210 -0
- mayhem_cli-1.0.0/docs/new-faults/wave-0-collisions.md +185 -0
- mayhem_cli-1.0.0/docs/new-faults/wave-1-params.md +122 -0
- mayhem_cli-1.0.0/docs/new-faults/wave-2-new-container.md +219 -0
- mayhem_cli-1.0.0/docs/new-faults/wave-3-no-primitive.md +103 -0
- mayhem_cli-1.0.0/docs/new-faults/wave-4-new-domains.md +158 -0
- mayhem_cli-1.0.0/docs/typing-ratchet.md +85 -0
- mayhem_cli-1.0.0/docs/v1.0.0/00-market-landscape.md +197 -0
- mayhem_cli-1.0.0/docs/v1.0.0/01-positioning.md +143 -0
- mayhem_cli-1.0.0/docs/v1.0.0/02-earn-maturity.md +145 -0
- mayhem_cli-1.0.0/docs/v1.0.0/03-steady-state-hypothesis.md +182 -0
- mayhem_cli-1.0.0/docs/v1.0.0/04-dry-run-and-quota.md +220 -0
- mayhem_cli-1.0.0/docs/v1.0.0/05-fault-packs.md +175 -0
- mayhem_cli-1.0.0/docs/v1.0.0/06-debt-and-quality.md +409 -0
- mayhem_cli-1.0.0/docs/v1.0.0/07-release-gates.md +159 -0
- mayhem_cli-1.0.0/docs/v1.0.0/08-withdrawal-audit.md +446 -0
- mayhem_cli-1.0.0/docs/v1.0.0/README.md +186 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/k8s/mayhem.yaml +0 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/docker-compose.mayhem.yml +25 -19
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/mayhem.yaml +83 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/pyproject.toml +8 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/scripts/verify_release_artifacts.py +7 -4
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/executors.py +173 -71
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/impact.py +91 -9
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/k8s_control.py +7 -4
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/k8s_resolve.py +80 -15
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/lease_client.py +4 -4
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/campaign.py +66 -51
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/command_registry.py +11 -0
- mayhem_cli-1.0.0/src/mayhem/cli/completion.py +76 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/coverage_cmd.py +1 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/dependency.py +38 -5
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/doctor.py +1 -1
- mayhem_cli-1.0.0/src/mayhem/cli/execution.py +261 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/experiment.py +12 -6
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/expert.py +4 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/explore.py +14 -14
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/extend.py +3 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/game_day.py +18 -23
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/init.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/inspect.py +105 -61
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/lifecycle.py +329 -28
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/next_cmd.py +18 -10
- mayhem_cli-1.0.0/src/mayhem/cli/pack.py +256 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/render.py +109 -21
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/resolver.py +6 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/services.py +14 -5
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/toolkit.py +4 -5
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/topology.py +15 -10
- mayhem_cli-1.0.0/src/mayhem/cli/verify_bundle.py +142 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/workflows.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/config.py +104 -79
- {mayhem_cli-0.9.0/src/mayhem/infra → mayhem_cli-1.0.0/src/mayhem/controller}/catalog_report.py +225 -51
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/compensation.py +796 -41
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/executor.py +72 -49
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/explore_flow.py +8 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/k8s_runtime.py +5 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/plan_diff.py +4 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/preflight.py +187 -20
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/recovery.py +8 -7
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/resource_manager.py +30 -21
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/safety.py +108 -4
- mayhem_cli-1.0.0/src/mayhem/controller/steady_state.py +1203 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/campaign_checkpoint.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/cancellation.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/capability_status.py +4 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/catalog.py +391 -11
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/common.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/coverage_graph.py +5 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/evidence.py +5 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/evidence_bundle.py +66 -95
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/execution_context.py +11 -14
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/execution_intent.py +5 -11
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/experiments.py +82 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/faults.py +51 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/game_day.py +15 -14
- {mayhem_cli-0.9.0/src/mayhem/toolkit → mayhem_cli-1.0.0/src/mayhem/domain}/hashing.py +11 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/maniac.py +3 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/observations.py +6 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/preflight.py +1 -1
- mayhem_cli-1.0.0/src/mayhem/domain/quota.py +347 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/redaction.py +4 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/runtime_adapter.py +29 -28
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/scenarios.py +122 -74
- mayhem_cli-1.0.0/src/mayhem/domain/steady_state.py +945 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/target_profiles.py +13 -44
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/campaign_checkpoint_repository.py +5 -4
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/campaign_engine.py +4 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/coverage_repository.py +12 -14
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/diagnostics.py +8 -6
- mayhem_cli-1.0.0/src/mayhem/infra/engine_probe.py +58 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/evidence.py +7 -4
- mayhem_cli-1.0.0/src/mayhem/infra/evidence_bundle_io.py +74 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/game_day_repository.py +5 -4
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/kpi.py +4 -6
- mayhem_cli-1.0.0/src/mayhem/infra/promotion.py +1044 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/ranking.py +22 -14
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/replay_repository.py +6 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/report.py +18 -2
- mayhem_cli-1.0.0/src/mayhem/infra/target_profile_io.py +69 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/__init__.py +2 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/base.py +5 -6
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/loki.py +1 -2
- mayhem_cli-1.0.0/src/mayhem/observability/metrics.py +310 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/otel.py +2 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/prometheus.py +7 -8
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/builtin.py +16 -10
- mayhem_cli-1.0.0/src/mayhem/providers/loader.py +1090 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/observation.py +7 -4
- mayhem_cli-1.0.0/src/mayhem/providers/pack.py +347 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/permissions.py +3 -8
- mayhem_cli-1.0.0/src/mayhem/toolkit/hashing.py +14 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/adapter_registry.py +3 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/docker_adapter.py +11 -14
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/docker_runtime.py +52 -39
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/k8s_manifest.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/podman_adapter.py +6 -15
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/resolve.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/e2e/test_cli_e2e.py +7 -6
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_bundle_verifier.py +12 -17
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_campaign_resume.py +3 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_coverage_delta.py +3 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_game_day_approval_flow.py +3 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_recovery_proof.py +9 -3
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_slo_success_criteria.py +18 -4
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/package/test_wheel_smoke.py +5 -2
- mayhem_cli-1.0.0/tests/unit/test_baseline_from_cli.py +595 -0
- mayhem_cli-1.0.0/tests/unit/test_bundle_build_command.py +166 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_campaign_checkpoint.py +8 -14
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_dashboard.py +6 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_truth.py +2 -5
- mayhem_cli-1.0.0/tests/unit/test_catalog_only_refusals.py +106 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli.py +4 -10
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_active_surface.py +2 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_campaign.py +0 -1
- mayhem_cli-1.0.0/tests/unit/test_cli_completion.py +208 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_execution.py +0 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_execution_intent.py +96 -37
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_exhaustive_matrix.py +25 -4
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_resolver.py +1 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_command_inventory.py +3 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_compensation.py +4 -1
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_config_target_profiles.py +2 -6
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_container_fault_matrix.py +7 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_coverage_graph.py +0 -1
- mayhem_cli-1.0.0/tests/unit/test_damage_quota.py +744 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_documentation_consistency.py +0 -7
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_drill_spec.py +18 -13
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_evidence_bundle.py +4 -8
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_execution_intent.py +3 -7
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_executor_admission.py +12 -12
- mayhem_cli-1.0.0/tests/unit/test_executor_undo_contract.py +156 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_expansion_checkpoint.py +19 -13
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_catalog_all.py +3 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_catalog_exhaustive.py +9 -9
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_catalog_metadata.py +5 -5
- mayhem_cli-1.0.0/tests/unit/test_fault_pack_loading.py +812 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_pack_validation.py +6 -10
- mayhem_cli-1.0.0/tests/unit/test_fault_params_wave1.py +294 -0
- mayhem_cli-1.0.0/tests/unit/test_fault_params_wave2_proxy.py +253 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_game_day.py +1 -4
- mayhem_cli-1.0.0/tests/unit/test_http_proxy_wire.py +208 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_impact_gate.py +143 -1
- mayhem_cli-1.0.0/tests/unit/test_import_contracts.py +437 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_manifest.py +1 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_maniac.py +1 -1
- mayhem_cli-1.0.0/tests/unit/test_maturity_promotion.py +578 -0
- mayhem_cli-1.0.0/tests/unit/test_max_faults_deprecation.py +251 -0
- mayhem_cli-1.0.0/tests/unit/test_mypy_baseline.py +171 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observability_connectors.py +8 -10
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observation_contract.py +12 -2
- mayhem_cli-1.0.0/tests/unit/test_preflight_blast_radius.py +376 -0
- mayhem_cli-1.0.0/tests/unit/test_readme_honesty.py +712 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_release_contract.py +4 -95
- mayhem_cli-1.0.0/tests/unit/test_release_workflow_contract.py +24 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_replay_cli.py +2 -5
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_residual_impact.py +16 -15
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_runtime_context.py +14 -14
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_runtime_execution_matrix.py +14 -11
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_scenario_compiler.py +11 -6
- mayhem_cli-1.0.0/tests/unit/test_shell_quoting.py +303 -0
- mayhem_cli-1.0.0/tests/unit/test_steady_state_evaluator.py +1227 -0
- mayhem_cli-1.0.0/tests/unit/test_steady_state_metrics.py +309 -0
- mayhem_cli-1.0.0/tests/unit/test_steady_state_spec.py +1049 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_target_profiles.py +2 -6
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_target_profiles_config.py +2 -5
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_v090_docs_contract.py +0 -8
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_v090_edge_cases.py +21 -19
- mayhem_cli-1.0.0/tests/unit/test_withdrawal_asset.py +123 -0
- mayhem_cli-0.9.0/.github/workflows/ci.yml +0 -146
- mayhem_cli-0.9.0/docs/README.md +0 -74
- mayhem_cli-0.9.0/docs/adr/adr-m7-1-k8s-executor.md +0 -98
- mayhem_cli-0.9.0/docs/adr-adr-m7-1-k8s-executor-flip.md +0 -172
- mayhem_cli-0.9.0/docs/architecture/fault-taxonomy.md +0 -5
- mayhem_cli-0.9.0/docs/architecture/safety.md +0 -12
- mayhem_cli-0.9.0/docs/architecture/toolkit.md +0 -5
- mayhem_cli-0.9.0/docs/fault-catalog/reliability-matrix.md +0 -64
- mayhem_cli-0.9.0/docs/grounding-log.md +0 -69
- mayhem_cli-0.9.0/docs/grounding-rules.md +0 -77
- mayhem_cli-0.9.0/docs/k8s-new.md +0 -5
- mayhem_cli-0.9.0/docs/k8s-plan-1.md +0 -437
- mayhem_cli-0.9.0/docs/k8s-plan-2.md +0 -387
- mayhem_cli-0.9.0/docs/m7-k8s-executor-discovery.md +0 -164
- mayhem_cli-0.9.0/docs/new-plan/00-product-and-cli-roadmap.md +0 -84
- mayhem_cli-0.9.0/docs/new-plan/01-workflow-command-architecture.md +0 -84
- mayhem_cli-0.9.0/docs/new-plan/02-guided-onboarding-and-target-profiles.md +0 -75
- mayhem_cli-0.9.0/docs/new-plan/03-plan-first-execution-and-unified-evidence.md +0 -77
- mayhem_cli-0.9.0/docs/new-plan/04-output-errors-and-script-compatibility.md +0 -77
- mayhem_cli-0.9.0/docs/new-plan/05-configuration-policy-and-environment-safety.md +0 -73
- mayhem_cli-0.9.0/docs/new-plan/06-docker-podman-reliability-slice.md +0 -75
- mayhem_cli-0.9.0/docs/new-plan/07-first-class-kubernetes-engine.md +0 -78
- mayhem_cli-0.9.0/docs/new-plan/08-fault-catalog-reliability-matrix.md +0 -83
- mayhem_cli-0.9.0/docs/new-plan/09-campaigns-coverage-and-explore-loop.md +0 -79
- mayhem_cli-0.9.0/docs/new-plan/10-diagnostics-recovery-and-reporting.md +0 -76
- mayhem_cli-0.9.0/docs/new-plan/11-extension-api-and-packaging.md +0 -88
- mayhem_cli-0.9.0/docs/new-plan/README.md +0 -52
- mayhem_cli-0.9.0/docs/observability.md +0 -44
- mayhem_cli-0.9.0/docs/policy-and-break-glass.md +0 -31
- mayhem_cli-0.9.0/docs/product/cli-product-direction.md +0 -64
- mayhem_cli-0.9.0/docs/product/command-architecture.md +0 -100
- mayhem_cli-0.9.0/docs/provider-sdk.md +0 -253
- mayhem_cli-0.9.0/docs/reference/cli.md +0 -289
- mayhem_cli-0.9.0/docs/reference/experiment-dsl.md +0 -10
- mayhem_cli-0.9.0/docs/reference/fault-catalog.md +0 -92
- mayhem_cli-0.9.0/docs/reference/output-schema.md +0 -76
- mayhem_cli-0.9.0/docs/reference/sqlite-schema.md +0 -15
- mayhem_cli-0.9.0/docs/superpowers/plans/2026-09-24-container-kubernetes-fault-expansion-plan.md +0 -267
- mayhem_cli-0.9.0/docs/superpowers/plans/2026-09-24-documentation-to-implementation-plan.md +0 -406
- mayhem_cli-0.9.0/docs/superpowers/specs/2026-09-24-container-kubernetes-fault-expansion-design.md +0 -61
- mayhem_cli-0.9.0/docs/superpowers/specs/2026-09-24-documentation-to-implementation-design.md +0 -91
- mayhem_cli-0.9.0/docs/v0.9.0/01-vision-and-positioning.md +0 -64
- mayhem_cli-0.9.0/docs/v0.9.0/02-feature-brainstorm.md +0 -173
- mayhem_cli-0.9.0/docs/v0.9.0/03-gaps-and-standards.md +0 -106
- mayhem_cli-0.9.0/docs/v0.9.0/04-architecture-and-decisions.md +0 -115
- mayhem_cli-0.9.0/docs/v0.9.0/05-release-roadmap.md +0 -140
- mayhem_cli-0.9.0/docs/v0.9.0/06-core-implementation-plan.md +0 -276
- mayhem_cli-0.9.0/docs/v0.9.0/07-expansion-implementation-plan.md +0 -274
- mayhem_cli-0.9.0/docs/v0.9.0/08-release-readiness.md +0 -98
- mayhem_cli-0.9.0/docs/v0.9.0/09-decision-log.md +0 -65
- mayhem_cli-0.9.0/docs/v0.9.0/10-repository-evidence.md +0 -97
- mayhem_cli-0.9.0/docs/v0.9.0/README.md +0 -38
- mayhem_cli-0.9.0/examples/testCase/mayhem-safe-docker-podman.yaml +0 -50
- mayhem_cli-0.9.0/src/mayhem/cli/execution.py +0 -143
- mayhem_cli-0.9.0/src/mayhem/cli/verify_bundle.py +0 -70
- mayhem_cli-0.9.0/src/mayhem/providers/loader.py +0 -396
- mayhem_cli-0.9.0/src/mayhem/providers/pack.py +0 -195
- mayhem_cli-0.9.0/tests/unit/test_ci_workflow_contract.py +0 -44
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.coverage +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.github/workflows/conformance.yml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.github/workflows/release.yml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.gitignore +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/Justfile +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/cliff.toml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/compensation.md +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/k8s/README.md +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/k8s/kubernetes.yaml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/providers/test-catalog.json +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/providers/test_provider.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/data/hello.txt +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/data/index.html +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/docker-compose.yml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/nginx.conf +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/__main__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agent/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agent/cli.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/capabilities.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/probes.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/protocol.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/server.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/sinks.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/transports.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/watchdog.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/app.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/commands.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/config_cmd.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/context.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/errors.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/exit_codes.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/output.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/renderers.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/style.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/cell_runner.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/janitor.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/observability_collector.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/observations.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/planner.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/resilience_report.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/target_selector.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/admission.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/campaigns.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/candidates.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/capabilities.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/cell_rules.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/checks.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/coverage.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/decisions.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/errors.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/events.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/execution_loci.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/identity.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/k8s_adapter.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/leases.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/load_strategy.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/m5_campaign.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/observability.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/outcomes.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/policy.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/provider.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/remote_agent_interface.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/replay.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/residual_impact.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/resolution.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/resources.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/risks.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/run_outcome.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/runtime_context.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/success.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/target.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/target_selector.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/topology.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/candidate_gates.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/candidate_generator.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/lease_repository.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/maniac.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/migrations.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/migrator.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/project_detection.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/store.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/protocols.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/registry.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/py.typed +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/schemas/output_v1.json +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/spec.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/fingerprint.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/docker.yaml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/podman.yaml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/stress-ng.yaml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/tc-netem.yaml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/toxiproxy.yaml +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/registry.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/tool_runner.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/base.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/compose.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/kubernetes.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/service.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/conftest.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/e2e/__init__.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/fixtures/cli/commands_show.json +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/fixtures/cli/coverage.json +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/fixtures/cli/doctor.json +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_agent_serve.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_agent_watchdog_e2e.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_artifact_secret_sweep.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_evidence_degradation.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_m5_e2e.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_observability_run.py +2 -2
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_replay_roundtrip.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_scenario_plan_replay.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_store.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_accept_criteria.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_action_outcome_contract.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_additive_schema.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_agent_capabilities.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_agent_protocol.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_agents.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_campaign_run.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_campaigns.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cancellation.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_candidates.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_matrix.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_registry.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_safety.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cell_rules.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cell_runner.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_check_spec.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_config.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_contract.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_doctor.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_errors.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_exit_codes.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_extend.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_init.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_output.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_renderers.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_topology.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_user_regressions.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_command_registry.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_config.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_coverage.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_coverage_repository.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_diagnostics.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_diagnostics_target_profiles.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_domain_properties.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_example_specs_yaml.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_execution_context.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_executor.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_executor_drill.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_expansion_catalog.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_expansion_container.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_expansion_kubernetes.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_faults.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fingerprint.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fork_atomicity.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_janitor.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_cli.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_discovery.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_plan1.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_plan2.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_selection.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kpi.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan1_targets.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan2_topology.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan3_resolver.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan3_runtime.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan5_runtime.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan6_runtime.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_lease_repository.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_leases.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_lifecycle_run_liveness.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_load_strategy.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m12_step1_catalog.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m7_k8s.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m8_operations.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m9_catalog.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_migrations.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_network_path_model.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observability.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observations.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_plan_diff.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_planner.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_policy_explain.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_preflight.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_provider_loader.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_provider_permissions.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_provider_registry.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_ranking.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_recovery.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_redaction_boundary.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_replay_capsule.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_report.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resilience_report.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resolve.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resource_conflict_exec.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resource_manager.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resources.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_risks.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_run_outcome.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_runtime_adapter.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_safety.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_selection_modes.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_success.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_three_locus.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_tool_runner.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_topology.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_topology_ctr.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_topology_providers.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_watchdog.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_workflow_groups.py +0 -0
- {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/uv.lock +0 -0
|
@@ -11,12 +11,358 @@ by conventional-commit type — see the phase map below.
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
### 🚀 Features
|
|
15
|
+
|
|
16
|
+
- **faults**: Wire the db.query_error error param and widen six param sets
|
|
17
|
+
|
|
18
|
+
- **faults**: Add four container-lane faults (thread/child/conn exhaustion, fs corruption)
|
|
19
|
+
|
|
20
|
+
- **faults**: Add three net and five proxy-backed faults
|
|
21
|
+
|
|
22
|
+
- **faults**: Wave 3 refusals, outcome record, and docs for the new faults
|
|
23
|
+
|
|
24
|
+
- **catalog**: Add maturity promotion reporting
|
|
25
|
+
|
|
26
|
+
- **evidence**: Add canonical hashing utilities
|
|
27
|
+
|
|
28
|
+
- **evidence**: Harden portable bundle contract
|
|
29
|
+
|
|
30
|
+
- **evidence**: Add bundle persistence and verification
|
|
31
|
+
|
|
32
|
+
- **config**: Add steady-state and damage-quota drill fields
|
|
33
|
+
|
|
34
|
+
- **observability**: Add steady-state metric measurement
|
|
35
|
+
|
|
36
|
+
- **steady-state**: Add baseline capture and phase evaluation
|
|
37
|
+
|
|
38
|
+
- **cli**: Add steady-state and preflight reporting
|
|
39
|
+
|
|
40
|
+
- **preflight**: Add blast-radius quota and safety gates
|
|
41
|
+
|
|
42
|
+
- **controller**: Harden compensation and recovery flows
|
|
43
|
+
|
|
44
|
+
- **providers**: Harden pack loading and registration
|
|
45
|
+
|
|
46
|
+
- **cli**: Add pack and bundle producer commands
|
|
47
|
+
|
|
48
|
+
- **cli**: Register command and extension surfaces
|
|
49
|
+
|
|
50
|
+
- **runtime**: Centralize engine detection and selection
|
|
51
|
+
|
|
52
|
+
- **cli**: Refine campaign, coverage, and scenario commands
|
|
53
|
+
|
|
54
|
+
- **cli**: Harden residual impact inspection
|
|
55
|
+
|
|
56
|
+
- **config**: Add layered target-profile configuration
|
|
57
|
+
|
|
58
|
+
- **domain**: Expand scenario and game-day models
|
|
59
|
+
|
|
60
|
+
- **catalog**: Define maturity evidence levels
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### 🐛 Bug Fixes
|
|
65
|
+
|
|
66
|
+
- **dependency**: Stop reporting an inert fault as a tooling gap
|
|
67
|
+
|
|
68
|
+
- **dependency**: Report unreachable containers instead of calling them clean
|
|
69
|
+
|
|
70
|
+
- **k8s**: Harden pod and node resolution at runtime
|
|
71
|
+
|
|
72
|
+
- **executor**: Enforce admission and undo contracts
|
|
73
|
+
|
|
74
|
+
- **topology**: Harden container engine providers
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### 💼 Other
|
|
79
|
+
|
|
80
|
+
- Delete .github/workflows/ci.yml
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
### 🚜 Refactor
|
|
85
|
+
|
|
86
|
+
- Ruff fix and format
|
|
87
|
+
|
|
88
|
+
- **domain**: Tighten execution and safety model types
|
|
89
|
+
|
|
90
|
+
- **infra**: Tighten persistence and reporting types
|
|
91
|
+
|
|
92
|
+
- **controller**: Type the explore approval gate
|
|
93
|
+
|
|
94
|
+
- **cli**: Sync command help with the grouped CLI paths
|
|
95
|
+
|
|
96
|
+
- **init**: Stop emitting the unenforced max_faults cap
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
### 📚 Documentation
|
|
101
|
+
|
|
102
|
+
- **new-faults**: Implementation plan for the 72 requested fault ids
|
|
103
|
+
|
|
104
|
+
- Document wave-1 fault params and correct the max_faults claim
|
|
105
|
+
|
|
106
|
+
- Publish v1.0.0 product and release documentation
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
### 🎨 Styling
|
|
111
|
+
|
|
112
|
+
- **tests**: Apply formatter output to test suite
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
### 🧪 Testing
|
|
117
|
+
|
|
118
|
+
- Ci removed and some fixes
|
|
119
|
+
|
|
120
|
+
- Add typing baseline and release contract coverage
|
|
121
|
+
|
|
122
|
+
- **spec**: Cover the max_faults deprecation warning
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
### ⚙️ Miscellaneous Tasks
|
|
127
|
+
|
|
128
|
+
- **examples**: Cover every executable podman/docker fault in testCase drill
|
|
129
|
+
|
|
130
|
+
- **release**: Update v1.0.0 changelog and metadata
|
|
131
|
+
|
|
132
|
+
- **examples**: Drop the unreferenced safe-docker-podman drill
|
|
133
|
+
|
|
134
|
+
- **examples**: Install net and shell tooling in the testCase compose
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
## 1.0.0 - 2026-09-29
|
|
138
|
+
|
|
139
|
+
### ⚠ Breaking changes
|
|
140
|
+
|
|
141
|
+
- **`db.slow_query` now defaults to `mode: latency` (netem).** It previously
|
|
142
|
+
shipped an `iptables DROP` as its default behaviour, so a plan that relied on
|
|
143
|
+
the default was silently injecting packet loss rather than latency. The
|
|
144
|
+
blackhole behaviour is still available, but it must now be asked for
|
|
145
|
+
explicitly with `mode: timeout`. Existing specs that want a drop must add the
|
|
146
|
+
parameter; existing specs that want latency are now correct by default for the
|
|
147
|
+
first time.
|
|
148
|
+
- **Nine `catalog_only` entries are new refusals** (thirteen in the catalog
|
|
149
|
+
today). These fault ids parse, plan, and refuse before mutation instead of
|
|
150
|
+
reaching an executor. A plan that names one is now rejected at compile time;
|
|
151
|
+
a plan that ran under 0.9.x will not run now. The refusal text names the
|
|
152
|
+
mechanism mayhem does not have and points at a documented alternative — the
|
|
153
|
+
refusal is the deliverable, not a placeholder.
|
|
154
|
+
- **`mayhem p` no longer resolves.** The `pack` command made the `p` prefix
|
|
155
|
+
ambiguous, so a bare `mayhem p` invocation now exits `ambiguous_command`
|
|
156
|
+
(exit code 10) and names both candidates. Scripts using the `p` prefix must
|
|
157
|
+
move to `mayhem pre` or `mayhem prep` (both resolve to `prepare`), or spell
|
|
158
|
+
the command out in full.
|
|
159
|
+
- **`blast_radius.forbidden_fault_pairs` now actually fires.** It was silently
|
|
160
|
+
inert: the check compared a `frozenset` of *all* faults seen so far against
|
|
161
|
+
two-element forbidden pairs, so it matched on a two-fault plan by accident and
|
|
162
|
+
matched nothing on any plan of three or more faults. It is now evaluated
|
|
163
|
+
against each `{earlier, new}` pair, which makes it complete — a plan
|
|
164
|
+
containing a forbidden pair is refused no matter where the pair sits in the
|
|
165
|
+
ordering. **This is the most important item in this release: a safety rule
|
|
166
|
+
that used to be decorative is now load-bearing, and plans that ran under
|
|
167
|
+
0.9.x may now be refused.** A safety setting you configured and believed was
|
|
168
|
+
protecting you was not.
|
|
169
|
+
- **`blast_radius.damage_quota` is a new cumulative gate.** The five existing
|
|
170
|
+
`blast_radius` limits are per-step. `damage_quota` is the first budget that
|
|
171
|
+
sees the *sequence*: it charges damage-seconds per target across the whole
|
|
172
|
+
plan and refuses when the cumulative total exceeds `budget_s`, or when any one
|
|
173
|
+
target's total exceeds `per_fault_ceiling_s`, within `window_s`. A plan whose
|
|
174
|
+
every individual step passes the other five limits can now still be refused
|
|
175
|
+
for its total. It is active by default (14400 s budget, 3600 s per-fault
|
|
176
|
+
ceiling, 7-day window) rather than opt-in.
|
|
177
|
+
|
|
178
|
+
### 📚 Documentation
|
|
179
|
+
|
|
180
|
+
- State plainly in the README that mayhem has **no kernel/BPF fault injection**,
|
|
181
|
+
and name the thirteen `catalog_only` faults and the mechanism each one lacks.
|
|
182
|
+
- State that **0 of 141** catalog faults are `verified-live`, and that
|
|
183
|
+
`verified-unit` is a claim about mayhem's own parameter, refusal, and
|
|
184
|
+
compensation code rather than evidence that a fault works.
|
|
185
|
+
- Correct the two places the documentation called a fault pack *signed*. The
|
|
186
|
+
pack format declares a `signature: str` with no key, no algorithm, and no
|
|
187
|
+
trust store; a loader now enforces a SHA-256 *integrity* digest and reports
|
|
188
|
+
`signature NOT VERIFIED`. Authorship is an unverified claim.
|
|
189
|
+
- Add intra-document **anchor** validation. The documentation-consistency test
|
|
190
|
+
validated link *paths* only, so a Markdown link with a bare `#fragment`
|
|
191
|
+
target was invisible to it and a dangling anchor shipped unnoticed.
|
|
192
|
+
- Correct the README claim that `max_faults` caps simultaneous faults. No gate
|
|
193
|
+
reads it; `blast_radius.max_concurrent_faults` is the control that refuses.
|
|
194
|
+
- Document `blast_radius.damage_quota` in the configuration reference.
|
|
195
|
+
|
|
196
|
+
### 🛡 Fixed
|
|
197
|
+
|
|
198
|
+
- `blast_radius.forbidden_fault_pairs` now evaluates each `{earlier, new}` pair
|
|
199
|
+
instead of the set of all faults so far (see the breaking change above).
|
|
200
|
+
|
|
201
|
+
### 📦 Documentation index
|
|
202
|
+
|
|
203
|
+
- The 1.0.0 section above is **hand-written** because the breaking changes are
|
|
204
|
+
not derivable from commit subjects. `git-cliff` regenerates this file from
|
|
205
|
+
git history and will not reproduce it; re-add the section after any
|
|
206
|
+
regeneration.
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
## 0.9.1 - 2026-09-27
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
### 🚀 Features
|
|
215
|
+
|
|
216
|
+
- **cli**: Add mayhem completion to print bash/zsh/fish completion scripts
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
### 🐛 Bug Fixes
|
|
221
|
+
|
|
222
|
+
- **cli**: Emit Click's real completion script instead of a broken wrapper
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
### 💼 Other
|
|
227
|
+
|
|
228
|
+
- Old hanging docs >/dev/null
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
### 📚 Documentation
|
|
233
|
+
|
|
234
|
+
- Prune superseded doc packages and their now-dangling links
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
## 0.9.0 - 2026-09-26
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
### 🚀 Features
|
|
242
|
+
|
|
243
|
+
- Resolve one runtime context per plan
|
|
244
|
+
|
|
245
|
+
- Require explicit execution intent
|
|
246
|
+
|
|
247
|
+
- Integrate target profiles into configuration
|
|
248
|
+
|
|
249
|
+
- Expose capability truth for every fault
|
|
250
|
+
|
|
251
|
+
- Persist replayable run capsules
|
|
252
|
+
|
|
253
|
+
- Enforce one evidence redaction boundary
|
|
254
|
+
|
|
255
|
+
- Render action outcomes in human evidence output
|
|
256
|
+
|
|
257
|
+
- Close v0.9.0 core gaps (redaction metrics, admission ordering, replay CLI)
|
|
258
|
+
|
|
259
|
+
- Add capability truth dashboard
|
|
260
|
+
|
|
261
|
+
- Add resilience coverage graph
|
|
262
|
+
|
|
263
|
+
- Add provider-neutral SLO observations
|
|
264
|
+
|
|
265
|
+
- Compile variable-driven scenarios
|
|
266
|
+
|
|
267
|
+
- Add resumable campaign checkpoints
|
|
268
|
+
|
|
269
|
+
- Verify residual impact after compensation
|
|
270
|
+
|
|
271
|
+
- Add controlled game-day sessions
|
|
272
|
+
|
|
273
|
+
- Sandbox providers and fault packs
|
|
274
|
+
|
|
275
|
+
- Add observability connectors
|
|
276
|
+
|
|
277
|
+
- Add mayhem --version and a module entry point
|
|
278
|
+
|
|
279
|
+
- Add portable evidence bundle verification
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
### 🐛 Bug Fixes
|
|
284
|
+
|
|
285
|
+
- Close release truth drift
|
|
286
|
+
|
|
287
|
+
- Close runtime context propagation gaps
|
|
288
|
+
|
|
289
|
+
- Harden runtime context compatibility
|
|
290
|
+
|
|
291
|
+
- Close execution intent safety gaps
|
|
292
|
+
|
|
293
|
+
- Enforce dry-run precedence for mutations
|
|
294
|
+
|
|
295
|
+
- Make implicit intent evidence honest
|
|
296
|
+
|
|
297
|
+
- Unify target profile overlay resolution
|
|
298
|
+
|
|
299
|
+
- Align config and intent test contracts
|
|
300
|
+
|
|
301
|
+
- Admit typed targets before mutation
|
|
302
|
+
|
|
303
|
+
- Make unsupported actions honest
|
|
304
|
+
|
|
305
|
+
- Enforce redaction at the artifact write boundary
|
|
306
|
+
|
|
307
|
+
- Repair CI gates (duplicate import, e2e capability contract, format fallback)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
14
311
|
### 📚 Documentation
|
|
15
312
|
|
|
16
313
|
- Add v0.9.0 roadmap and implementation plans
|
|
17
314
|
|
|
18
|
-
- Establish
|
|
19
|
-
|
|
315
|
+
- Establish v0.9.0 release truth baseline
|
|
316
|
+
|
|
317
|
+
- Mark v0.9.0 task 1 complete
|
|
318
|
+
|
|
319
|
+
- Mark v0.9.0 task 2 complete
|
|
320
|
+
|
|
321
|
+
- Mark v0.9.0 task 3 implemented
|
|
322
|
+
|
|
323
|
+
- Mark v0.9.0 task 4 complete
|
|
324
|
+
|
|
325
|
+
- Mark v0.9.0 task 5 complete
|
|
326
|
+
|
|
327
|
+
- Mark v0.9.0 task 6 implemented
|
|
328
|
+
|
|
329
|
+
- Mark v0.9.0 task 7 implemented
|
|
330
|
+
|
|
331
|
+
- Mark v0.9.0 task 8 complete
|
|
332
|
+
|
|
333
|
+
- Mark v0.9.0 task 9 implemented
|
|
334
|
+
|
|
335
|
+
- Mark v0.9.0 task 10 implemented
|
|
336
|
+
|
|
337
|
+
- Record v0.9.0 core gate results
|
|
338
|
+
|
|
339
|
+
- Close the v0.9.0 core checkpoint
|
|
340
|
+
|
|
341
|
+
- Record final v0.9.0 gate results
|
|
342
|
+
|
|
343
|
+
- Record the green CI run and the wheel smoke result
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
### 🧪 Testing
|
|
348
|
+
|
|
349
|
+
- Verify the v0.9.0 expansion checkpoint
|
|
350
|
+
|
|
351
|
+
- Make e2e topology discovery deterministic across hosts
|
|
352
|
+
|
|
353
|
+
- Cover v0.9.0 edge cases and pin the docs to the schema
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
### ⚙️ Miscellaneous Tasks
|
|
358
|
+
|
|
359
|
+
- Simplify runtime engine typing
|
|
360
|
+
|
|
361
|
+
- Add v0.9.0 quality gates
|
|
362
|
+
|
|
363
|
+
- Add schema and manual conformance gates
|
|
364
|
+
|
|
365
|
+
- Install uv in the wheel smoke job and assert --version from the wheel
|
|
20
366
|
|
|
21
367
|
|
|
22
368
|
## 0.8.0 - 2026-09-25
|