hecks 3.6.0 → 3.7.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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hecks/bluebook/meta_validator/syntax_boot/disk_cache.rb +28 -3
  3. data/lib/hecks/bluebook/meta_validator/verdict_cache/prebuilt.rb +44 -0
  4. data/lib/hecks/bluebook/meta_validator/verdict_cache.rb +3 -17
  5. data/lib/hecks/cache_dir.rb +10 -0
  6. data/lib/hecks/deploy/bluebook/deploy.bluebook +109 -0
  7. data/lib/hecks/deploy/oidc.json +10 -0
  8. data/lib/hecks/doors/usage_cache.rb +19 -9
  9. data/lib/hecks/fuzzing/coverage_campaign.rb +42 -17
  10. data/lib/hecks/fuzzing/failure_triage.rb +80 -0
  11. data/lib/hecks/fuzzing/form_census/chapter_forms.rb +38 -0
  12. data/lib/hecks/fuzzing/form_census/reference_forms.rb +49 -0
  13. data/lib/hecks/fuzzing/form_census.rb +28 -52
  14. data/lib/hecks/fuzzing/isolated_boot/postgres_scratch.rb +22 -7
  15. data/lib/hecks/fuzzing/isolated_boot/scratch_schema.rb +27 -0
  16. data/lib/hecks/fuzzing/isolated_boot.rb +6 -2
  17. data/lib/hecks/fuzzing/mutation/checks.rb +76 -0
  18. data/lib/hecks/fuzzing/mutation/finders.rb +136 -0
  19. data/lib/hecks/fuzzing/mutation/judge.rb +94 -0
  20. data/lib/hecks/fuzzing/mutation/observation.rb +38 -0
  21. data/lib/hecks/fuzzing/mutation/operators.rb +52 -0
  22. data/lib/hecks/fuzzing/mutation/report.rb +78 -0
  23. data/lib/hecks/fuzzing/mutation/run.rb +99 -0
  24. data/lib/hecks/fuzzing/mutation/selection.rb +32 -0
  25. data/lib/hecks/fuzzing/mutation/site.rb +21 -0
  26. data/lib/hecks/fuzzing/mutation/source_map.rb +59 -0
  27. data/lib/hecks/fuzzing/mutation.rb +12 -0
  28. data/lib/hecks/fuzzing/properties/catalog.rb +10 -59
  29. data/lib/hecks/fuzzing/properties/guaranteed_by_construction.rb +63 -0
  30. data/lib/hecks/fuzzing/properties/read_model_names.rb +50 -0
  31. data/lib/hecks/fuzzing/properties/read_models.rb +138 -0
  32. data/lib/hecks/fuzzing/properties/role_checks.rb +50 -0
  33. data/lib/hecks/fuzzing/properties.rb +7 -0
  34. data/lib/hecks/fuzzing/replay/observation.rb +1 -1
  35. data/lib/hecks/fuzzing/replay/role_check.rb +49 -0
  36. data/lib/hecks/fuzzing/replay/session.rb +22 -6
  37. data/lib/hecks/fuzzing/replay.rb +1 -0
  38. data/lib/hecks/fuzzing/runtime_coverage.rb +70 -0
  39. data/lib/hecks/fuzzing/shrinker/value_simplification.rb +64 -0
  40. data/lib/hecks/fuzzing/shrinker.rb +3 -0
  41. data/lib/hecks/fuzzing.rb +3 -0
  42. data/lib/hecks/gate/stages.yml +1 -1
  43. data/lib/hecks/hecks/adapters/deploy_toolchain/answers.rb +2 -1
  44. data/lib/hecks/hecks/adapters/github_rulesets.rb +7 -5
  45. data/lib/hecks/hecks/adapters/process_pool.rb +26 -4
  46. data/lib/hecks/hecks/custodian.behaviors +6 -0
  47. data/lib/hecks/hecks/custodian.bluebook +37 -0
  48. data/lib/hecks/hecks/hecks.hecksagon +6 -0
  49. data/lib/hecks/language/bluebook/vocabulary.bluebook +3 -0
  50. data/lib/hecks/projections/deploy/box/roll_scripts.rb +6 -4
  51. data/lib/hecks/projections/deploy/box/settings/patterns.rb +4 -0
  52. data/lib/hecks/projections/deploy/box/settings/types.rb +7 -3
  53. data/lib/hecks/projections/deploy/box/settings.rb +18 -0
  54. data/lib/hecks/projections/deploy/box/shared_database.rb +69 -0
  55. data/lib/hecks/projections/deploy/box/templates/Makefile.tmpl +6 -7
  56. data/lib/hecks/projections/deploy/box/templates/deploy-box.sh.tmpl +1 -1
  57. data/lib/hecks/projections/deploy/box/templates/provision-database.sh.tmpl +97 -0
  58. data/lib/hecks/projections/deploy/box/templates/restore-to-rds.sh.tmpl +4 -2
  59. data/lib/hecks/projections/deploy/box/templates/verify-copy.sh.tmpl +2 -1
  60. data/lib/hecks/projections/deploy/box.rb +14 -2
  61. data/lib/hecks/projections/deploy/shared_database_instance/templates/Makefile.tmpl +11 -0
  62. data/lib/hecks/projections/deploy/shared_database_instance/templates/README.md.tmpl +25 -0
  63. data/lib/hecks/projections/deploy/shared_database_instance/templates/rds.yaml.tmpl +180 -0
  64. data/lib/hecks/projections/deploy/shared_database_instance.rb +106 -0
  65. data/lib/hecks/projections/deploy/vercel/settings.rb +83 -0
  66. data/lib/hecks/projections/deploy/vercel.rb +134 -0
  67. data/lib/hecks/projections/site/site_host/templates.rb +12 -4
  68. data/lib/hecks/projections.rb +2 -0
  69. data/lib/hecks/quality_control/adapters/github_checks.rb +9 -2
  70. data/lib/hecks/quality_control/cli/qa_sweep/dials.rb +1 -0
  71. data/lib/hecks/quality_control/cli/qa_sweep/seed_loop.rb +10 -2
  72. data/lib/hecks/rust_build/native_build.rb +29 -1
  73. data/lib/hecks/rust_build/wasm.rb +16 -3
  74. data/lib/hecks/tools/deploy_recipe/generation.rb +59 -0
  75. data/lib/hecks/tools/deploy_recipe/targets.rb +56 -2
  76. data/lib/hecks/tools/deploy_recipe/worlds.rb +2 -1
  77. data/lib/hecks/tools/deploy_recipe.rb +20 -10
  78. data/lib/hecks/tools/fuzz_sweep/options.rb +21 -10
  79. data/lib/hecks/tools/fuzz_sweep/reporting.rb +25 -3
  80. data/lib/hecks/tools/fuzz_sweep.rb +26 -9
  81. data/lib/hecks/tools/lanes/files.rb +2 -4
  82. data/lib/hecks/tools/lanes/live.rb +3 -4
  83. data/lib/hecks/tools/lanes/ruleset.rb +23 -1
  84. data/lib/hecks/tools/lanes.rb +12 -1
  85. data/lib/hecks/tools/mutation_run.rb +73 -0
  86. data/lib/hecks/tools.rb +1 -0
  87. data/lib/hecks/version.rb +1 -1
  88. data/lib/hecks/vocabulary.rb +2 -0
  89. data/prebuilt/945481eefbdb584649d45f256307053558966a868b9c38dee7ee88f8169610f8.marshal +0 -0
  90. data/prebuilt/a0818e2de67364dc1ab22868b6cbf869c62da6f8d9b924c778fa5cce2e76ee94.marshal +0 -0
  91. data/prebuilt/verdicts-be73f0df9eee0abe2f4aadc968321c4b919d19d424a3ccfe1777a71dabf7d9e7.json +1 -0
  92. data/qa/settings.yml +1 -0
  93. data/rust/host/Cargo.toml +2 -2
  94. data/rust/host/HECKS_RELEASE +1 -1
  95. data/rust/host/src/api.rs +28 -5
  96. data/rust/host/src/auth.rs +11 -1
  97. data/rust/host/src/boundary_fuzz/api.rs +260 -0
  98. data/rust/host/src/boundary_fuzz/auth.rs +119 -0
  99. data/rust/host/src/boundary_fuzz/expr_json.rs +158 -0
  100. data/rust/host/src/boundary_fuzz/ir.rs +78 -0
  101. data/rust/host/src/boundary_fuzz/server.rs +227 -0
  102. data/rust/host/src/boundary_fuzz/web.rs +125 -0
  103. data/rust/host/src/fuzz_support.rs +165 -0
  104. data/rust/host/src/ir.rs +4 -0
  105. data/rust/host/src/main.rs +9 -4
  106. data/rust/host/src/secrets.rs +44 -0
  107. data/rust/host/src/server.rs +6 -1
  108. data/rust/host/src/web.rs +12 -2
  109. data/rust/parser/fuzz/.gitignore +4 -0
  110. data/rust/parser/fuzz/Cargo.lock +89 -0
  111. data/rust/parser/fuzz/Cargo.toml +27 -0
  112. data/rust/parser/fuzz/README.md +19 -0
  113. data/rust/parser/fuzz/fuzz_targets/chapter.rs +50 -0
  114. data/rust/parser/fuzz/fuzz_targets/resolve.rs +35 -0
  115. data/rust/parser/src/parse/command.rs +14 -2
  116. data/rust/parser/src/parse/mod.rs +25 -0
  117. data/rust/parser/src/ruby_value.rs +95 -6
  118. data/rust/src/kernel/json.rs +34 -3
  119. metadata +50 -1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hecks
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.0
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Young
@@ -271,6 +271,7 @@ files:
271
271
  - lib/hecks/bluebook/meta_validator/translation_judge.rb
272
272
  - lib/hecks/bluebook/meta_validator/translation_judge/rules.rb
273
273
  - lib/hecks/bluebook/meta_validator/verdict_cache.rb
274
+ - lib/hecks/bluebook/meta_validator/verdict_cache/prebuilt.rb
274
275
  - lib/hecks/bluebook/meta_validator/verdict_cache/tagging.rb
275
276
  - lib/hecks/bluebook/meta_validator/world_judge.rb
276
277
  - lib/hecks/bluebook/model_check.rb
@@ -473,13 +474,28 @@ files:
473
474
  - lib/hecks/fuzzing/domain_generator/rendering.rb
474
475
  - lib/hecks/fuzzing/domain_generator/tokens.rb
475
476
  - lib/hecks/fuzzing/era_boundary.rb
477
+ - lib/hecks/fuzzing/failure_triage.rb
476
478
  - lib/hecks/fuzzing/form_census.rb
479
+ - lib/hecks/fuzzing/form_census/chapter_forms.rb
480
+ - lib/hecks/fuzzing/form_census/reference_forms.rb
477
481
  - lib/hecks/fuzzing/generated_domain_check.rb
478
482
  - lib/hecks/fuzzing/invalid_value_generator.rb
479
483
  - lib/hecks/fuzzing/isolated_boot.rb
480
484
  - lib/hecks/fuzzing/isolated_boot/copying.rb
481
485
  - lib/hecks/fuzzing/isolated_boot/postgres_scratch.rb
486
+ - lib/hecks/fuzzing/isolated_boot/scratch_schema.rb
482
487
  - lib/hecks/fuzzing/isolated_boot/worlds.rb
488
+ - lib/hecks/fuzzing/mutation.rb
489
+ - lib/hecks/fuzzing/mutation/checks.rb
490
+ - lib/hecks/fuzzing/mutation/finders.rb
491
+ - lib/hecks/fuzzing/mutation/judge.rb
492
+ - lib/hecks/fuzzing/mutation/observation.rb
493
+ - lib/hecks/fuzzing/mutation/operators.rb
494
+ - lib/hecks/fuzzing/mutation/report.rb
495
+ - lib/hecks/fuzzing/mutation/run.rb
496
+ - lib/hecks/fuzzing/mutation/selection.rb
497
+ - lib/hecks/fuzzing/mutation/site.rb
498
+ - lib/hecks/fuzzing/mutation/source_map.rb
483
499
  - lib/hecks/fuzzing/nondeterministic.rb
484
500
  - lib/hecks/fuzzing/outside_world.rb
485
501
  - lib/hecks/fuzzing/persistence_parity.rb
@@ -489,6 +505,7 @@ files:
489
505
  - lib/hecks/fuzzing/properties/corrections.rb
490
506
  - lib/hecks/fuzzing/properties/dispatch_and_mutations.rb
491
507
  - lib/hecks/fuzzing/properties/group_by_recompute.rb
508
+ - lib/hecks/fuzzing/properties/guaranteed_by_construction.rb
492
509
  - lib/hecks/fuzzing/properties/guards.rb
493
510
  - lib/hecks/fuzzing/properties/invariants_and_aggregation.rb
494
511
  - lib/hecks/fuzzing/properties/lifecycle_and_replay.rb
@@ -498,7 +515,10 @@ files:
498
515
  - lib/hecks/fuzzing/properties/policy_wiring.rb
499
516
  - lib/hecks/fuzzing/properties/query_rows.rb
500
517
  - lib/hecks/fuzzing/properties/querying.rb
518
+ - lib/hecks/fuzzing/properties/read_model_names.rb
519
+ - lib/hecks/fuzzing/properties/read_models.rb
501
520
  - lib/hecks/fuzzing/properties/references.rb
521
+ - lib/hecks/fuzzing/properties/role_checks.rb
502
522
  - lib/hecks/fuzzing/properties/tenant_scope.rb
503
523
  - lib/hecks/fuzzing/qa_settings.rb
504
524
  - lib/hecks/fuzzing/replay.rb
@@ -508,8 +528,10 @@ files:
508
528
  - lib/hecks/fuzzing/replay/mutation_trace.rb
509
529
  - lib/hecks/fuzzing/replay/observation.rb
510
530
  - lib/hecks/fuzzing/replay/read_only_steps.rb
531
+ - lib/hecks/fuzzing/replay/role_check.rb
511
532
  - lib/hecks/fuzzing/replay/session.rb
512
533
  - lib/hecks/fuzzing/rotation_priority.rb
534
+ - lib/hecks/fuzzing/runtime_coverage.rb
513
535
  - lib/hecks/fuzzing/rust_gap_manifest.rb
514
536
  - lib/hecks/fuzzing/self_consistency.rb
515
537
  - lib/hecks/fuzzing/self_consistency/saga_redelivery.rb
@@ -530,6 +552,7 @@ files:
530
552
  - lib/hecks/fuzzing/sequence_generator/query_binding.rb
531
553
  - lib/hecks/fuzzing/sequence_generator/step_builder.rb
532
554
  - lib/hecks/fuzzing/shrinker.rb
555
+ - lib/hecks/fuzzing/shrinker/value_simplification.rb
533
556
  - lib/hecks/fuzzing/structural_skips.rb
534
557
  - lib/hecks/fuzzing/sweep_depth.rb
535
558
  - lib/hecks/fuzzing/target_capabilities.rb
@@ -793,6 +816,7 @@ files:
793
816
  - lib/hecks/projections/deploy/box/settings/origin.rb
794
817
  - lib/hecks/projections/deploy/box/settings/patterns.rb
795
818
  - lib/hecks/projections/deploy/box/settings/types.rb
819
+ - lib/hecks/projections/deploy/box/shared_database.rb
796
820
  - lib/hecks/projections/deploy/box/stack_yaml.rb
797
821
  - lib/hecks/projections/deploy/box/templates/MIGRATION.md.tmpl
798
822
  - lib/hecks/projections/deploy/box/templates/Makefile.tmpl
@@ -809,6 +833,7 @@ files:
809
833
  - lib/hecks/projections/deploy/box/templates/hosting.mk.tmpl
810
834
  - lib/hecks/projections/deploy/box/templates/mode-summary-services.tmpl
811
835
  - lib/hecks/projections/deploy/box/templates/mode-summary-taskdef.tmpl
836
+ - lib/hecks/projections/deploy/box/templates/provision-database.sh.tmpl
812
837
  - lib/hecks/projections/deploy/box/templates/rds.yaml.tmpl
813
838
  - lib/hecks/projections/deploy/box/templates/render-compose-taskdef.sh.tmpl
814
839
  - lib/hecks/projections/deploy/box/templates/render-compose.sh.tmpl
@@ -879,6 +904,10 @@ files:
879
904
  - lib/hecks/projections/deploy/scripts/smoke-after-deploy.sh.tmpl
880
905
  - lib/hecks/projections/deploy/shared.rb
881
906
  - lib/hecks/projections/deploy/shared/rows.rb
907
+ - lib/hecks/projections/deploy/shared_database_instance.rb
908
+ - lib/hecks/projections/deploy/shared_database_instance/templates/Makefile.tmpl
909
+ - lib/hecks/projections/deploy/shared_database_instance/templates/README.md.tmpl
910
+ - lib/hecks/projections/deploy/shared_database_instance/templates/rds.yaml.tmpl
882
911
  - lib/hecks/projections/deploy/smoke.rb
883
912
  - lib/hecks/projections/deploy/smoke/harness.js
884
913
  - lib/hecks/projections/deploy/smoke/workflow.yml.tmpl
@@ -971,6 +1000,8 @@ files:
971
1000
  - lib/hecks/projections/deploy/templates/shared/plain_db.tmpl
972
1001
  - lib/hecks/projections/deploy/templates/shared/vpc_and_database.tmpl
973
1002
  - lib/hecks/projections/deploy/text_template.rb
1003
+ - lib/hecks/projections/deploy/vercel.rb
1004
+ - lib/hecks/projections/deploy/vercel/settings.rb
974
1005
  - lib/hecks/projections/diagrams.rb
975
1006
  - lib/hecks/projections/diagrams/dispatch.rb
976
1007
  - lib/hecks/projections/diagrams/statecharts.rb
@@ -1375,6 +1406,7 @@ files:
1375
1406
  - lib/hecks/tools/comment_style/walker.rb
1376
1407
  - lib/hecks/tools/corpus_report.rb
1377
1408
  - lib/hecks/tools/deploy_recipe.rb
1409
+ - lib/hecks/tools/deploy_recipe/generation.rb
1378
1410
  - lib/hecks/tools/deploy_recipe/targets.rb
1379
1411
  - lib/hecks/tools/deploy_recipe/worlds.rb
1380
1412
  - lib/hecks/tools/deploy_recipe_lint.rb
@@ -1405,6 +1437,7 @@ files:
1405
1437
  - lib/hecks/tools/lanes/ruleset.rb
1406
1438
  - lib/hecks/tools/lanes/watch_workflow.rb
1407
1439
  - lib/hecks/tools/lanes/workflow.rb
1440
+ - lib/hecks/tools/mutation_run.rb
1408
1441
  - lib/hecks/tools/oidc_manifests.rb
1409
1442
  - lib/hecks/tools/query_ir_run.rb
1410
1443
  - lib/hecks/tools/regeneration_run.rb
@@ -1439,6 +1472,9 @@ files:
1439
1472
  - lib/rubocop/cop/hecks/fallback_hash_lookup.rb
1440
1473
  - lib/rubocop/cop/hecks/sequential_hash_rename_in_loop.rb
1441
1474
  - lib/rubocop/cop/hecks/thread_shared_ivar_mutation.rb
1475
+ - prebuilt/945481eefbdb584649d45f256307053558966a868b9c38dee7ee88f8169610f8.marshal
1476
+ - prebuilt/a0818e2de67364dc1ab22868b6cbf869c62da6f8d9b924c778fa5cce2e76ee94.marshal
1477
+ - prebuilt/verdicts-be73f0df9eee0abe2f4aadc968321c4b919d19d424a3ccfe1777a71dabf7d9e7.json
1442
1478
  - qa/settings.yml
1443
1479
  - rust/.cargo/config.toml
1444
1480
  - rust/.cargo/mutants.toml
@@ -1505,10 +1541,17 @@ files:
1505
1541
  - rust/host/src/bin/expr_harness.rs
1506
1542
  - rust/host/src/bin/lineage_harness.rs
1507
1543
  - rust/host/src/bin/mint_harness.rs
1544
+ - rust/host/src/boundary_fuzz/api.rs
1545
+ - rust/host/src/boundary_fuzz/auth.rs
1546
+ - rust/host/src/boundary_fuzz/expr_json.rs
1547
+ - rust/host/src/boundary_fuzz/ir.rs
1548
+ - rust/host/src/boundary_fuzz/server.rs
1549
+ - rust/host/src/boundary_fuzz/web.rs
1508
1550
  - rust/host/src/checkout.rs
1509
1551
  - rust/host/src/dispatch.rs
1510
1552
  - rust/host/src/expr_json.rs
1511
1553
  - rust/host/src/field_hints.rs
1554
+ - rust/host/src/fuzz_support.rs
1512
1555
  - rust/host/src/ir.rs
1513
1556
  - rust/host/src/journal.rs
1514
1557
  - rust/host/src/lambda_client.rs
@@ -1554,6 +1597,12 @@ files:
1554
1597
  - rust/parser/.gitignore
1555
1598
  - rust/parser/Cargo.lock
1556
1599
  - rust/parser/Cargo.toml
1600
+ - rust/parser/fuzz/.gitignore
1601
+ - rust/parser/fuzz/Cargo.lock
1602
+ - rust/parser/fuzz/Cargo.toml
1603
+ - rust/parser/fuzz/README.md
1604
+ - rust/parser/fuzz/fuzz_targets/chapter.rs
1605
+ - rust/parser/fuzz/fuzz_targets/resolve.rs
1557
1606
  - rust/parser/src/build/closed_sets.rs
1558
1607
  - rust/parser/src/build/identity.rs
1559
1608
  - rust/parser/src/build/mod.rs