evilution 0.20.0 → 0.22.0

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/.beads/.gitignore +4 -0
  3. data/.beads/.migration-hint-ts +1 -1
  4. data/.beads/interactions.jsonl +12 -0
  5. data/.beads/issues.jsonl +22 -19
  6. data/CHANGELOG.md +35 -0
  7. data/README.md +17 -11
  8. data/comparison_results/baseline_2026-04-09.md +35 -0
  9. data/comparison_results/operator_classification.md +79 -0
  10. data/comparison_results/operator_prioritization.md +68 -0
  11. data/docs/mutation_density_benchmark.md +91 -0
  12. data/lib/evilution/ast/parser.rb +2 -1
  13. data/lib/evilution/baseline.rb +14 -11
  14. data/lib/evilution/cli.rb +13 -3
  15. data/lib/evilution/config.rb +27 -5
  16. data/lib/evilution/disable_comment.rb +2 -1
  17. data/lib/evilution/integration/base.rb +98 -1
  18. data/lib/evilution/integration/minitest.rb +145 -0
  19. data/lib/evilution/integration/minitest_crash_detector.rb +55 -0
  20. data/lib/evilution/integration/rspec.rb +33 -92
  21. data/lib/evilution/isolation/fork.rb +3 -6
  22. data/lib/evilution/mcp/mutate_tool.rb +6 -6
  23. data/lib/evilution/mutator/base.rb +5 -1
  24. data/lib/evilution/mutator/operator/bitwise_complement.rb +1 -1
  25. data/lib/evilution/mutator/operator/block_pass_removal.rb +30 -0
  26. data/lib/evilution/mutator/operator/ensure_removal.rb +1 -1
  27. data/lib/evilution/mutator/operator/index_to_at.rb +30 -0
  28. data/lib/evilution/mutator/operator/index_to_dig.rb +3 -3
  29. data/lib/evilution/mutator/operator/index_to_fetch.rb +2 -2
  30. data/lib/evilution/mutator/operator/keyword_argument.rb +1 -1
  31. data/lib/evilution/mutator/operator/regex_simplification.rb +169 -0
  32. data/lib/evilution/mutator/operator/rescue_body_replacement.rb +1 -1
  33. data/lib/evilution/mutator/operator/rescue_removal.rb +1 -1
  34. data/lib/evilution/mutator/operator/string_literal.rb +18 -0
  35. data/lib/evilution/mutator/registry.rb +12 -2
  36. data/lib/evilution/reporter/html.rb +2 -2
  37. data/lib/evilution/reporter/json.rb +2 -2
  38. data/lib/evilution/reporter/suggestion.rb +659 -2
  39. data/lib/evilution/runner.rb +59 -13
  40. data/lib/evilution/spec_resolver.rb +24 -16
  41. data/lib/evilution/temp_dir_tracker.rb +39 -0
  42. data/lib/evilution/version.rb +1 -1
  43. data/lib/evilution.rb +4 -0
  44. data/scripts/benchmark_density +261 -0
  45. data/scripts/benchmark_density.yml +19 -0
  46. data/scripts/compare_mutations +404 -0
  47. data/scripts/compare_mutations.yml +24 -0
  48. data/scripts/mutant_json_adapter +224 -0
  49. metadata +17 -2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evilution
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Kiselev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-04-08 00:00:00.000000000 Z
11
+ date: 2026-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -76,7 +76,11 @@ files:
76
76
  - README.md
77
77
  - Rakefile
78
78
  - claude-swarm.yml
79
+ - comparison_results/baseline_2026-04-09.md
80
+ - comparison_results/operator_classification.md
81
+ - comparison_results/operator_prioritization.md
79
82
  - docs/ast_pattern_syntax.md
83
+ - docs/mutation_density_benchmark.md
80
84
  - exe/evilution
81
85
  - lib/evilution.rb
82
86
  - lib/evilution/ast.rb
@@ -111,6 +115,8 @@ files:
111
115
  - lib/evilution/integration.rb
112
116
  - lib/evilution/integration/base.rb
113
117
  - lib/evilution/integration/crash_detector.rb
118
+ - lib/evilution/integration/minitest.rb
119
+ - lib/evilution/integration/minitest_crash_detector.rb
114
120
  - lib/evilution/integration/rspec.rb
115
121
  - lib/evilution/isolation.rb
116
122
  - lib/evilution/isolation/fork.rb
@@ -136,6 +142,7 @@ files:
136
142
  - lib/evilution/mutator/operator/bitwise_complement.rb
137
143
  - lib/evilution/mutator/operator/bitwise_replacement.rb
138
144
  - lib/evilution/mutator/operator/block_param_removal.rb
145
+ - lib/evilution/mutator/operator/block_pass_removal.rb
139
146
  - lib/evilution/mutator/operator/block_removal.rb
140
147
  - lib/evilution/mutator/operator/boolean_literal_replacement.rb
141
148
  - lib/evilution/mutator/operator/boolean_operator_replacement.rb
@@ -157,6 +164,7 @@ files:
157
164
  - lib/evilution/mutator/operator/global_variable_write.rb
158
165
  - lib/evilution/mutator/operator/hash_literal.rb
159
166
  - lib/evilution/mutator/operator/index_assignment_removal.rb
167
+ - lib/evilution/mutator/operator/index_to_at.rb
160
168
  - lib/evilution/mutator/operator/index_to_dig.rb
161
169
  - lib/evilution/mutator/operator/index_to_fetch.rb
162
170
  - lib/evilution/mutator/operator/inline_rescue.rb
@@ -181,6 +189,7 @@ files:
181
189
  - lib/evilution/mutator/operator/receiver_replacement.rb
182
190
  - lib/evilution/mutator/operator/redo_statement.rb
183
191
  - lib/evilution/mutator/operator/regex_capture.rb
192
+ - lib/evilution/mutator/operator/regex_simplification.rb
184
193
  - lib/evilution/mutator/operator/regexp_mutation.rb
185
194
  - lib/evilution/mutator/operator/rescue_body_replacement.rb
186
195
  - lib/evilution/mutator/operator/rescue_removal.rb
@@ -218,9 +227,15 @@ files:
218
227
  - lib/evilution/session/store.rb
219
228
  - lib/evilution/spec_resolver.rb
220
229
  - lib/evilution/subject.rb
230
+ - lib/evilution/temp_dir_tracker.rb
221
231
  - lib/evilution/version.rb
222
232
  - lib/tasks/memory_check.rake
223
233
  - script/memory_check
234
+ - scripts/benchmark_density
235
+ - scripts/benchmark_density.yml
236
+ - scripts/compare_mutations
237
+ - scripts/compare_mutations.yml
238
+ - scripts/mutant_json_adapter
224
239
  - sig/evilution.rbs
225
240
  homepage: https://github.com/marinazzio/evilution
226
241
  licenses: