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.
Files changed (478) hide show
  1. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/CHANGELOG.md +348 -2
  2. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/PKG-INFO +190 -33
  3. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/README.md +189 -32
  4. mayhem_cli-1.0.0/docs/README.md +85 -0
  5. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/config.md +26 -3
  6. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/drill-spec.md +604 -18
  7. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/fault-catalog/README.md +1 -1
  8. mayhem_cli-1.0.0/docs/fault-catalog/reliability-matrix.md +118 -0
  9. mayhem_cli-1.0.0/docs/new-faults/OUTCOME.md +115 -0
  10. mayhem_cli-1.0.0/docs/new-faults/README.md +129 -0
  11. mayhem_cli-1.0.0/docs/new-faults/contract-checklist.md +210 -0
  12. mayhem_cli-1.0.0/docs/new-faults/wave-0-collisions.md +185 -0
  13. mayhem_cli-1.0.0/docs/new-faults/wave-1-params.md +122 -0
  14. mayhem_cli-1.0.0/docs/new-faults/wave-2-new-container.md +219 -0
  15. mayhem_cli-1.0.0/docs/new-faults/wave-3-no-primitive.md +103 -0
  16. mayhem_cli-1.0.0/docs/new-faults/wave-4-new-domains.md +158 -0
  17. mayhem_cli-1.0.0/docs/typing-ratchet.md +85 -0
  18. mayhem_cli-1.0.0/docs/v1.0.0/00-market-landscape.md +197 -0
  19. mayhem_cli-1.0.0/docs/v1.0.0/01-positioning.md +143 -0
  20. mayhem_cli-1.0.0/docs/v1.0.0/02-earn-maturity.md +145 -0
  21. mayhem_cli-1.0.0/docs/v1.0.0/03-steady-state-hypothesis.md +182 -0
  22. mayhem_cli-1.0.0/docs/v1.0.0/04-dry-run-and-quota.md +220 -0
  23. mayhem_cli-1.0.0/docs/v1.0.0/05-fault-packs.md +175 -0
  24. mayhem_cli-1.0.0/docs/v1.0.0/06-debt-and-quality.md +409 -0
  25. mayhem_cli-1.0.0/docs/v1.0.0/07-release-gates.md +159 -0
  26. mayhem_cli-1.0.0/docs/v1.0.0/08-withdrawal-audit.md +446 -0
  27. mayhem_cli-1.0.0/docs/v1.0.0/README.md +186 -0
  28. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/k8s/mayhem.yaml +0 -1
  29. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/docker-compose.mayhem.yml +25 -19
  30. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/mayhem.yaml +83 -2
  31. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/pyproject.toml +8 -1
  32. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/scripts/verify_release_artifacts.py +7 -4
  33. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/executors.py +173 -71
  34. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/impact.py +91 -9
  35. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/k8s_control.py +7 -4
  36. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/k8s_resolve.py +80 -15
  37. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/lease_client.py +4 -4
  38. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/campaign.py +66 -51
  39. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/command_registry.py +11 -0
  40. mayhem_cli-1.0.0/src/mayhem/cli/completion.py +76 -0
  41. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/coverage_cmd.py +1 -3
  42. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/dependency.py +38 -5
  43. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/doctor.py +1 -1
  44. mayhem_cli-1.0.0/src/mayhem/cli/execution.py +261 -0
  45. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/experiment.py +12 -6
  46. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/expert.py +4 -3
  47. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/explore.py +14 -14
  48. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/extend.py +3 -3
  49. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/game_day.py +18 -23
  50. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/init.py +1 -1
  51. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/inspect.py +105 -61
  52. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/lifecycle.py +329 -28
  53. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/next_cmd.py +18 -10
  54. mayhem_cli-1.0.0/src/mayhem/cli/pack.py +256 -0
  55. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/render.py +109 -21
  56. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/resolver.py +6 -2
  57. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/services.py +14 -5
  58. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/toolkit.py +4 -5
  59. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/topology.py +15 -10
  60. mayhem_cli-1.0.0/src/mayhem/cli/verify_bundle.py +142 -0
  61. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/workflows.py +1 -1
  62. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/config.py +104 -79
  63. {mayhem_cli-0.9.0/src/mayhem/infra → mayhem_cli-1.0.0/src/mayhem/controller}/catalog_report.py +225 -51
  64. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/compensation.py +796 -41
  65. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/executor.py +72 -49
  66. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/explore_flow.py +8 -2
  67. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/k8s_runtime.py +5 -2
  68. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/plan_diff.py +4 -1
  69. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/preflight.py +187 -20
  70. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/recovery.py +8 -7
  71. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/resource_manager.py +30 -21
  72. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/safety.py +108 -4
  73. mayhem_cli-1.0.0/src/mayhem/controller/steady_state.py +1203 -0
  74. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/campaign_checkpoint.py +1 -1
  75. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/cancellation.py +1 -1
  76. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/capability_status.py +4 -2
  77. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/catalog.py +391 -11
  78. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/common.py +1 -1
  79. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/coverage_graph.py +5 -3
  80. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/evidence.py +5 -0
  81. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/evidence_bundle.py +66 -95
  82. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/execution_context.py +11 -14
  83. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/execution_intent.py +5 -11
  84. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/experiments.py +82 -1
  85. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/faults.py +51 -0
  86. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/game_day.py +15 -14
  87. {mayhem_cli-0.9.0/src/mayhem/toolkit → mayhem_cli-1.0.0/src/mayhem/domain}/hashing.py +11 -1
  88. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/maniac.py +3 -1
  89. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/observations.py +6 -2
  90. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/preflight.py +1 -1
  91. mayhem_cli-1.0.0/src/mayhem/domain/quota.py +347 -0
  92. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/redaction.py +4 -2
  93. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/runtime_adapter.py +29 -28
  94. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/scenarios.py +122 -74
  95. mayhem_cli-1.0.0/src/mayhem/domain/steady_state.py +945 -0
  96. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/target_profiles.py +13 -44
  97. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/campaign_checkpoint_repository.py +5 -4
  98. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/campaign_engine.py +4 -2
  99. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/coverage_repository.py +12 -14
  100. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/diagnostics.py +8 -6
  101. mayhem_cli-1.0.0/src/mayhem/infra/engine_probe.py +58 -0
  102. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/evidence.py +7 -4
  103. mayhem_cli-1.0.0/src/mayhem/infra/evidence_bundle_io.py +74 -0
  104. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/game_day_repository.py +5 -4
  105. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/kpi.py +4 -6
  106. mayhem_cli-1.0.0/src/mayhem/infra/promotion.py +1044 -0
  107. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/ranking.py +22 -14
  108. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/replay_repository.py +6 -2
  109. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/report.py +18 -2
  110. mayhem_cli-1.0.0/src/mayhem/infra/target_profile_io.py +69 -0
  111. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/__init__.py +2 -2
  112. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/base.py +5 -6
  113. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/loki.py +1 -2
  114. mayhem_cli-1.0.0/src/mayhem/observability/metrics.py +310 -0
  115. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/otel.py +2 -2
  116. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/observability/prometheus.py +7 -8
  117. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/builtin.py +16 -10
  118. mayhem_cli-1.0.0/src/mayhem/providers/loader.py +1090 -0
  119. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/observation.py +7 -4
  120. mayhem_cli-1.0.0/src/mayhem/providers/pack.py +347 -0
  121. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/permissions.py +3 -8
  122. mayhem_cli-1.0.0/src/mayhem/toolkit/hashing.py +14 -0
  123. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/adapter_registry.py +3 -3
  124. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/docker_adapter.py +11 -14
  125. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/docker_runtime.py +52 -39
  126. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/k8s_manifest.py +1 -1
  127. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/podman_adapter.py +6 -15
  128. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/resolve.py +1 -1
  129. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/e2e/test_cli_e2e.py +7 -6
  130. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_bundle_verifier.py +12 -17
  131. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_campaign_resume.py +3 -3
  132. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_coverage_delta.py +3 -1
  133. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_game_day_approval_flow.py +3 -1
  134. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_recovery_proof.py +9 -3
  135. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_slo_success_criteria.py +18 -4
  136. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/package/test_wheel_smoke.py +5 -2
  137. mayhem_cli-1.0.0/tests/unit/test_baseline_from_cli.py +595 -0
  138. mayhem_cli-1.0.0/tests/unit/test_bundle_build_command.py +166 -0
  139. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_campaign_checkpoint.py +8 -14
  140. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_dashboard.py +6 -2
  141. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_truth.py +2 -5
  142. mayhem_cli-1.0.0/tests/unit/test_catalog_only_refusals.py +106 -0
  143. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli.py +4 -10
  144. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_active_surface.py +2 -0
  145. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_campaign.py +0 -1
  146. mayhem_cli-1.0.0/tests/unit/test_cli_completion.py +208 -0
  147. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_execution.py +0 -1
  148. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_execution_intent.py +96 -37
  149. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_exhaustive_matrix.py +25 -4
  150. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_resolver.py +1 -1
  151. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_command_inventory.py +3 -1
  152. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_compensation.py +4 -1
  153. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_config_target_profiles.py +2 -6
  154. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_container_fault_matrix.py +7 -0
  155. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_coverage_graph.py +0 -1
  156. mayhem_cli-1.0.0/tests/unit/test_damage_quota.py +744 -0
  157. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_documentation_consistency.py +0 -7
  158. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_drill_spec.py +18 -13
  159. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_evidence_bundle.py +4 -8
  160. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_execution_intent.py +3 -7
  161. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_executor_admission.py +12 -12
  162. mayhem_cli-1.0.0/tests/unit/test_executor_undo_contract.py +156 -0
  163. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_expansion_checkpoint.py +19 -13
  164. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_catalog_all.py +3 -0
  165. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_catalog_exhaustive.py +9 -9
  166. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_catalog_metadata.py +5 -5
  167. mayhem_cli-1.0.0/tests/unit/test_fault_pack_loading.py +812 -0
  168. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_pack_validation.py +6 -10
  169. mayhem_cli-1.0.0/tests/unit/test_fault_params_wave1.py +294 -0
  170. mayhem_cli-1.0.0/tests/unit/test_fault_params_wave2_proxy.py +253 -0
  171. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_game_day.py +1 -4
  172. mayhem_cli-1.0.0/tests/unit/test_http_proxy_wire.py +208 -0
  173. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_impact_gate.py +143 -1
  174. mayhem_cli-1.0.0/tests/unit/test_import_contracts.py +437 -0
  175. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_manifest.py +1 -2
  176. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_maniac.py +1 -1
  177. mayhem_cli-1.0.0/tests/unit/test_maturity_promotion.py +578 -0
  178. mayhem_cli-1.0.0/tests/unit/test_max_faults_deprecation.py +251 -0
  179. mayhem_cli-1.0.0/tests/unit/test_mypy_baseline.py +171 -0
  180. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observability_connectors.py +8 -10
  181. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observation_contract.py +12 -2
  182. mayhem_cli-1.0.0/tests/unit/test_preflight_blast_radius.py +376 -0
  183. mayhem_cli-1.0.0/tests/unit/test_readme_honesty.py +712 -0
  184. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_release_contract.py +4 -95
  185. mayhem_cli-1.0.0/tests/unit/test_release_workflow_contract.py +24 -0
  186. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_replay_cli.py +2 -5
  187. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_residual_impact.py +16 -15
  188. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_runtime_context.py +14 -14
  189. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_runtime_execution_matrix.py +14 -11
  190. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_scenario_compiler.py +11 -6
  191. mayhem_cli-1.0.0/tests/unit/test_shell_quoting.py +303 -0
  192. mayhem_cli-1.0.0/tests/unit/test_steady_state_evaluator.py +1227 -0
  193. mayhem_cli-1.0.0/tests/unit/test_steady_state_metrics.py +309 -0
  194. mayhem_cli-1.0.0/tests/unit/test_steady_state_spec.py +1049 -0
  195. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_target_profiles.py +2 -6
  196. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_target_profiles_config.py +2 -5
  197. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_v090_docs_contract.py +0 -8
  198. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_v090_edge_cases.py +21 -19
  199. mayhem_cli-1.0.0/tests/unit/test_withdrawal_asset.py +123 -0
  200. mayhem_cli-0.9.0/.github/workflows/ci.yml +0 -146
  201. mayhem_cli-0.9.0/docs/README.md +0 -74
  202. mayhem_cli-0.9.0/docs/adr/adr-m7-1-k8s-executor.md +0 -98
  203. mayhem_cli-0.9.0/docs/adr-adr-m7-1-k8s-executor-flip.md +0 -172
  204. mayhem_cli-0.9.0/docs/architecture/fault-taxonomy.md +0 -5
  205. mayhem_cli-0.9.0/docs/architecture/safety.md +0 -12
  206. mayhem_cli-0.9.0/docs/architecture/toolkit.md +0 -5
  207. mayhem_cli-0.9.0/docs/fault-catalog/reliability-matrix.md +0 -64
  208. mayhem_cli-0.9.0/docs/grounding-log.md +0 -69
  209. mayhem_cli-0.9.0/docs/grounding-rules.md +0 -77
  210. mayhem_cli-0.9.0/docs/k8s-new.md +0 -5
  211. mayhem_cli-0.9.0/docs/k8s-plan-1.md +0 -437
  212. mayhem_cli-0.9.0/docs/k8s-plan-2.md +0 -387
  213. mayhem_cli-0.9.0/docs/m7-k8s-executor-discovery.md +0 -164
  214. mayhem_cli-0.9.0/docs/new-plan/00-product-and-cli-roadmap.md +0 -84
  215. mayhem_cli-0.9.0/docs/new-plan/01-workflow-command-architecture.md +0 -84
  216. mayhem_cli-0.9.0/docs/new-plan/02-guided-onboarding-and-target-profiles.md +0 -75
  217. mayhem_cli-0.9.0/docs/new-plan/03-plan-first-execution-and-unified-evidence.md +0 -77
  218. mayhem_cli-0.9.0/docs/new-plan/04-output-errors-and-script-compatibility.md +0 -77
  219. mayhem_cli-0.9.0/docs/new-plan/05-configuration-policy-and-environment-safety.md +0 -73
  220. mayhem_cli-0.9.0/docs/new-plan/06-docker-podman-reliability-slice.md +0 -75
  221. mayhem_cli-0.9.0/docs/new-plan/07-first-class-kubernetes-engine.md +0 -78
  222. mayhem_cli-0.9.0/docs/new-plan/08-fault-catalog-reliability-matrix.md +0 -83
  223. mayhem_cli-0.9.0/docs/new-plan/09-campaigns-coverage-and-explore-loop.md +0 -79
  224. mayhem_cli-0.9.0/docs/new-plan/10-diagnostics-recovery-and-reporting.md +0 -76
  225. mayhem_cli-0.9.0/docs/new-plan/11-extension-api-and-packaging.md +0 -88
  226. mayhem_cli-0.9.0/docs/new-plan/README.md +0 -52
  227. mayhem_cli-0.9.0/docs/observability.md +0 -44
  228. mayhem_cli-0.9.0/docs/policy-and-break-glass.md +0 -31
  229. mayhem_cli-0.9.0/docs/product/cli-product-direction.md +0 -64
  230. mayhem_cli-0.9.0/docs/product/command-architecture.md +0 -100
  231. mayhem_cli-0.9.0/docs/provider-sdk.md +0 -253
  232. mayhem_cli-0.9.0/docs/reference/cli.md +0 -289
  233. mayhem_cli-0.9.0/docs/reference/experiment-dsl.md +0 -10
  234. mayhem_cli-0.9.0/docs/reference/fault-catalog.md +0 -92
  235. mayhem_cli-0.9.0/docs/reference/output-schema.md +0 -76
  236. mayhem_cli-0.9.0/docs/reference/sqlite-schema.md +0 -15
  237. mayhem_cli-0.9.0/docs/superpowers/plans/2026-09-24-container-kubernetes-fault-expansion-plan.md +0 -267
  238. mayhem_cli-0.9.0/docs/superpowers/plans/2026-09-24-documentation-to-implementation-plan.md +0 -406
  239. mayhem_cli-0.9.0/docs/superpowers/specs/2026-09-24-container-kubernetes-fault-expansion-design.md +0 -61
  240. mayhem_cli-0.9.0/docs/superpowers/specs/2026-09-24-documentation-to-implementation-design.md +0 -91
  241. mayhem_cli-0.9.0/docs/v0.9.0/01-vision-and-positioning.md +0 -64
  242. mayhem_cli-0.9.0/docs/v0.9.0/02-feature-brainstorm.md +0 -173
  243. mayhem_cli-0.9.0/docs/v0.9.0/03-gaps-and-standards.md +0 -106
  244. mayhem_cli-0.9.0/docs/v0.9.0/04-architecture-and-decisions.md +0 -115
  245. mayhem_cli-0.9.0/docs/v0.9.0/05-release-roadmap.md +0 -140
  246. mayhem_cli-0.9.0/docs/v0.9.0/06-core-implementation-plan.md +0 -276
  247. mayhem_cli-0.9.0/docs/v0.9.0/07-expansion-implementation-plan.md +0 -274
  248. mayhem_cli-0.9.0/docs/v0.9.0/08-release-readiness.md +0 -98
  249. mayhem_cli-0.9.0/docs/v0.9.0/09-decision-log.md +0 -65
  250. mayhem_cli-0.9.0/docs/v0.9.0/10-repository-evidence.md +0 -97
  251. mayhem_cli-0.9.0/docs/v0.9.0/README.md +0 -38
  252. mayhem_cli-0.9.0/examples/testCase/mayhem-safe-docker-podman.yaml +0 -50
  253. mayhem_cli-0.9.0/src/mayhem/cli/execution.py +0 -143
  254. mayhem_cli-0.9.0/src/mayhem/cli/verify_bundle.py +0 -70
  255. mayhem_cli-0.9.0/src/mayhem/providers/loader.py +0 -396
  256. mayhem_cli-0.9.0/src/mayhem/providers/pack.py +0 -195
  257. mayhem_cli-0.9.0/tests/unit/test_ci_workflow_contract.py +0 -44
  258. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.coverage +0 -0
  259. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.github/workflows/conformance.yml +0 -0
  260. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.github/workflows/release.yml +0 -0
  261. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/.gitignore +0 -0
  262. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/Justfile +0 -0
  263. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/cliff.toml +0 -0
  264. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/docs/compensation.md +0 -0
  265. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/k8s/README.md +0 -0
  266. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/k8s/kubernetes.yaml +0 -0
  267. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/providers/test-catalog.json +0 -0
  268. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/providers/test_provider.py +0 -0
  269. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/data/hello.txt +0 -0
  270. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/data/index.html +0 -0
  271. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/docker-compose.yml +0 -0
  272. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/examples/testCase/nginx.conf +0 -0
  273. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/__main__.py +0 -0
  274. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agent/__init__.py +0 -0
  275. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agent/cli.py +0 -0
  276. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/__init__.py +0 -0
  277. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/capabilities.py +0 -0
  278. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/probes.py +0 -0
  279. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/protocol.py +0 -0
  280. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/server.py +0 -0
  281. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/sinks.py +0 -0
  282. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/transports.py +0 -0
  283. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/agents/watchdog.py +0 -0
  284. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/__init__.py +0 -0
  285. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/app.py +0 -0
  286. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/commands.py +0 -0
  287. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/config_cmd.py +0 -0
  288. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/context.py +0 -0
  289. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/errors.py +0 -0
  290. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/exit_codes.py +0 -0
  291. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/output.py +0 -0
  292. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/renderers.py +0 -0
  293. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/cli/style.py +0 -0
  294. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/__init__.py +0 -0
  295. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/cell_runner.py +0 -0
  296. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/janitor.py +0 -0
  297. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/observability_collector.py +0 -0
  298. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/observations.py +0 -0
  299. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/planner.py +0 -0
  300. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/resilience_report.py +0 -0
  301. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/controller/target_selector.py +0 -0
  302. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/__init__.py +0 -0
  303. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/admission.py +0 -0
  304. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/campaigns.py +0 -0
  305. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/candidates.py +0 -0
  306. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/capabilities.py +0 -0
  307. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/cell_rules.py +0 -0
  308. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/checks.py +0 -0
  309. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/coverage.py +0 -0
  310. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/decisions.py +0 -0
  311. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/errors.py +0 -0
  312. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/events.py +0 -0
  313. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/execution_loci.py +0 -0
  314. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/identity.py +0 -0
  315. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/k8s_adapter.py +0 -0
  316. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/leases.py +0 -0
  317. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/load_strategy.py +0 -0
  318. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/m5_campaign.py +0 -0
  319. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/observability.py +0 -0
  320. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/outcomes.py +0 -0
  321. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/policy.py +0 -0
  322. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/provider.py +0 -0
  323. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/remote_agent_interface.py +0 -0
  324. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/replay.py +0 -0
  325. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/residual_impact.py +0 -0
  326. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/resolution.py +0 -0
  327. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/resources.py +0 -0
  328. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/risks.py +0 -0
  329. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/run_outcome.py +0 -0
  330. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/runtime_context.py +0 -0
  331. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/success.py +0 -0
  332. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/target.py +0 -0
  333. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/target_selector.py +0 -0
  334. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/domain/topology.py +0 -0
  335. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/__init__.py +0 -0
  336. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/candidate_gates.py +0 -0
  337. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/candidate_generator.py +0 -0
  338. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/lease_repository.py +0 -0
  339. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/maniac.py +0 -0
  340. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/migrations.py +0 -0
  341. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/migrator.py +0 -0
  342. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/project_detection.py +0 -0
  343. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/infra/store.py +0 -0
  344. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/__init__.py +0 -0
  345. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/protocols.py +0 -0
  346. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/providers/registry.py +0 -0
  347. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/py.typed +0 -0
  348. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/schemas/output_v1.json +0 -0
  349. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/spec.py +0 -0
  350. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/__init__.py +0 -0
  351. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/fingerprint.py +0 -0
  352. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/docker.yaml +0 -0
  353. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/podman.yaml +0 -0
  354. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/stress-ng.yaml +0 -0
  355. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/tc-netem.yaml +0 -0
  356. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/manifests/toxiproxy.yaml +0 -0
  357. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/registry.py +0 -0
  358. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/toolkit/tool_runner.py +0 -0
  359. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/__init__.py +0 -0
  360. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/__init__.py +0 -0
  361. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/base.py +0 -0
  362. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/compose.py +0 -0
  363. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/providers/kubernetes.py +0 -0
  364. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/src/mayhem/topology/service.py +0 -0
  365. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/conftest.py +0 -0
  366. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/e2e/__init__.py +0 -0
  367. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/fixtures/cli/commands_show.json +0 -0
  368. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/fixtures/cli/coverage.json +0 -0
  369. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/fixtures/cli/doctor.json +0 -0
  370. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_agent_serve.py +0 -0
  371. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_agent_watchdog_e2e.py +0 -0
  372. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_artifact_secret_sweep.py +0 -0
  373. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_evidence_degradation.py +0 -0
  374. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_m5_e2e.py +0 -0
  375. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_observability_run.py +2 -2
  376. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_replay_roundtrip.py +0 -0
  377. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_scenario_plan_replay.py +0 -0
  378. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/integration/test_store.py +0 -0
  379. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_accept_criteria.py +0 -0
  380. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_action_outcome_contract.py +0 -0
  381. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_additive_schema.py +0 -0
  382. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_agent_capabilities.py +0 -0
  383. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_agent_protocol.py +0 -0
  384. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_agents.py +0 -0
  385. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_campaign_run.py +0 -0
  386. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_campaigns.py +0 -0
  387. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cancellation.py +0 -0
  388. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_candidates.py +0 -0
  389. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_matrix.py +0 -0
  390. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_registry.py +0 -0
  391. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_capability_safety.py +0 -0
  392. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cell_rules.py +0 -0
  393. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cell_runner.py +0 -0
  394. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_check_spec.py +0 -0
  395. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_config.py +0 -0
  396. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_contract.py +0 -0
  397. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_doctor.py +0 -0
  398. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_errors.py +0 -0
  399. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_exit_codes.py +0 -0
  400. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_extend.py +0 -0
  401. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_init.py +0 -0
  402. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_output.py +0 -0
  403. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_renderers.py +0 -0
  404. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_topology.py +0 -0
  405. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_cli_user_regressions.py +0 -0
  406. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_command_registry.py +0 -0
  407. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_config.py +0 -0
  408. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_coverage.py +0 -0
  409. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_coverage_repository.py +0 -0
  410. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_diagnostics.py +0 -0
  411. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_diagnostics_target_profiles.py +0 -0
  412. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_domain_properties.py +0 -0
  413. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_example_specs_yaml.py +0 -0
  414. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_execution_context.py +0 -0
  415. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_executor.py +0 -0
  416. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_executor_drill.py +0 -0
  417. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_expansion_catalog.py +0 -0
  418. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_expansion_container.py +0 -0
  419. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fault_expansion_kubernetes.py +0 -0
  420. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_faults.py +0 -0
  421. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fingerprint.py +0 -0
  422. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_fork_atomicity.py +0 -0
  423. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_janitor.py +0 -0
  424. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_cli.py +0 -0
  425. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_discovery.py +0 -0
  426. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_plan1.py +0 -0
  427. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_plan2.py +0 -0
  428. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_k8s_selection.py +0 -0
  429. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kpi.py +0 -0
  430. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan1_targets.py +0 -0
  431. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan2_topology.py +0 -0
  432. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan3_resolver.py +0 -0
  433. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan3_runtime.py +0 -0
  434. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan5_runtime.py +0 -0
  435. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_kplan6_runtime.py +0 -0
  436. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_lease_repository.py +0 -0
  437. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_leases.py +0 -0
  438. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_lifecycle_run_liveness.py +0 -0
  439. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_load_strategy.py +0 -0
  440. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m12_step1_catalog.py +0 -0
  441. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m7_k8s.py +0 -0
  442. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m8_operations.py +0 -0
  443. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_m9_catalog.py +0 -0
  444. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_migrations.py +0 -0
  445. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_network_path_model.py +0 -0
  446. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observability.py +0 -0
  447. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_observations.py +0 -0
  448. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_plan_diff.py +0 -0
  449. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_planner.py +0 -0
  450. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_policy_explain.py +0 -0
  451. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_preflight.py +0 -0
  452. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_provider_loader.py +0 -0
  453. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_provider_permissions.py +0 -0
  454. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_provider_registry.py +0 -0
  455. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_ranking.py +0 -0
  456. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_recovery.py +0 -0
  457. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_redaction_boundary.py +0 -0
  458. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_replay_capsule.py +0 -0
  459. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_report.py +0 -0
  460. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resilience_report.py +0 -0
  461. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resolve.py +0 -0
  462. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resource_conflict_exec.py +0 -0
  463. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resource_manager.py +0 -0
  464. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_resources.py +0 -0
  465. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_risks.py +0 -0
  466. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_run_outcome.py +0 -0
  467. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_runtime_adapter.py +0 -0
  468. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_safety.py +0 -0
  469. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_selection_modes.py +0 -0
  470. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_success.py +0 -0
  471. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_three_locus.py +0 -0
  472. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_tool_runner.py +0 -0
  473. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_topology.py +0 -0
  474. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_topology_ctr.py +0 -0
  475. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_topology_providers.py +0 -0
  476. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_watchdog.py +0 -0
  477. {mayhem_cli-0.9.0 → mayhem_cli-1.0.0}/tests/unit/test_workflow_groups.py +0 -0
  478. {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 the v0.9.0 release truth baseline: checked command inventory, install
19
- dependency contract, version metadata, and Justfile recipe paths
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