Skip to content

feat(cargo-gamma): improve campaign reliability and mutation detection - #282

Open
Martin Taillefer (geeknoid) wants to merge 1 commit into
mainfrom
gamma
Open

Martin Taillefer (geeknoid) wants to merge 1 commit into
mainfrom
gamma

Conversation

@geeknoid

Copy link
Copy Markdown
Member

Improves cargo-gamma's mutation validity, compiler isolation, test scheduling, campaign recovery, and diagnostics, and expands regression coverage to kill thousands of discovered mutants.

Copilot AI balanced review requested due to automatic review settings October 20, 2026 15:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Four unresolved moderate findings affect alias resolution, conditional-let instrumentation, and test-fixture policy compliance.

No open issues 🎉

What changed in this PR

Improves cargo-gamma’s mutation validity, compiler isolation, test scheduling, campaign recovery, and diagnostics, with expanded regression coverage.

Changes:

  • Adds type-preserving mutation helpers and richer source/type identity handling.
  • Updates execution interfaces, progress reporting, and population-completeness metadata.
  • Expands regression fixtures, updates reliability documentation, and removes obsolete mutation suppressions.

Unresolved findings:

  • Moderate · 1 vote — crates/cargo-gamma-engine/src/ops/collect/collector/indexes.rs:195: Inherited aliases can resolve bare primitive targets through later shadowing, suppressing valid decrement mutants. Freeze primitive identities at declaration scope and add regression coverage.
  • Moderate · 1 vote — crates/cargo-gamma-engine/src/ops/collect/collector/indexes.rs:180: Alias canonicalization omits file-module prefixes, potentially using unrelated root declarations and suppressing valid return-value mutants. Preserve file-relative identity.
  • Moderate · 1 vote — crates/cargo-gamma-engine/src/ops/collect/collector/temporaries.rs:31: Temporary-consumer lifting can separate if let and while let bindings from their bodies. Preserve the enclosing construct or omit these sites, with regressions for both.
  • Moderate · 3 votes — crates/cargo-gamma-lib/src/discover/modules.rs:230: The new test writes source-input fixtures during setup, contrary to test-review policy. Use checked-in fixtures or injected in-memory inputs while retaining the assertions.
File Description
gamma.toml Excludes immutable mutation fixtures.
crates/​cargo-heather/​src/​comment.rs Removes mutation suppression.
crates/​cargo-gamma/​docs/​MUTATORS.md Clarifies floating-point range mutations.
crates/​cargo-gamma/​docs/​MIGRATION.md Documents revised test selection.
crates/​cargo-gamma/​docs/​IMPLEMENTATION.md Updates convergence and scheduling documentation.
crates/​cargo-gamma/​docs/​gamma.toml Updates configuration examples.
crates/​cargo-gamma-unsafe/​docs/​IMPLEMENTATION.md Documents cleanup ownership and test oracles.
crates/​cargo-gamma-unsafe/​docs/​DESIGN.md Clarifies interrupt lifecycle guarantees.
crates/​cargo-gamma-rt/​src/​mutation.rs Adds type-preserving mutation helpers.
crates/​cargo-gamma-rt/​src/​lib.rs Exports helpers and updates protocol documentation.
crates/​cargo-gamma-process/​src/​lib.rs Clarifies containment limitations.
crates/​cargo-gamma-process/​src/​faults.rs Adds registration-refusal fault injection.
crates/​cargo-gamma-process/​README.md Updates containment documentation.
crates/​cargo-gamma-process/​docs/​IMPLEMENTATION.md Documents lifecycle test oracles.
crates/​cargo-gamma-process/​docs/​DESIGN.md Specifies registry-release ordering.
crates/​cargo-gamma-lib/​tests/​schema_conformance.rs Tests population-completeness serialization.
crates/​cargo-gamma-lib/​tests/​regressions.rs Supplies completeness metadata.
crates/​cargo-gamma-lib/​tests/​instrumented_compiles.rs Reuses runtime helper sources.
crates/​cargo-gamma-lib/​tests/​fixtures/​report.golden.json Updates report metadata.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​ordinary/​src/​main.rs Adds ordinary binary fixture.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​ordinary/​src/​lib.rs Adds ordinary dependency consumer.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​ordinary/​Cargo.toml Defines ordinary fixture package.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​dependency/​src/​lib.rs Adds feature-gated dependency API.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​dependency/​Cargo.toml Defines dependency feature.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​Cargo.toml Defines isolation fixture workspace.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​Cargo.lock Locks fixture dependency graph.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​application/​tests/​integration.rs Checks dev-feature visibility.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​application/​src/​lib.rs Consumes dev-feature API.
crates/​cargo-gamma-lib/​tests/​fixtures/​isolation-graph/​application/​Cargo.toml Configures dev-feature unification.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​temporal_operators.rs Adds temporal operator controls.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​resource-dependencies.json Adds resolved dependency metadata.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​reader_api_identity.rs Distinguishes reader and iterator methods.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​selected.rs Adds relocated nominal type.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​lib.rs Defines module identity graph.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​inactive.rs Adds inactive defaultable type.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​features.rs Adds custom enum controls.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​dependency.rs Adds standard Option alias.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​consumers.rs Exercises aliases and default evidence.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​catalog/​mod.rs Defines re-export chain.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​catalog/​bridge.rs Re-exports nominal type.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​catalog/​artifact.rs Adds nondefaultable type.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​package_identities/​alternate.rs Adds alternate default controls.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​optional-features.rs Exercises conditional feature branches.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​optional-features.json Supplies optional-dependency metadata.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​metadata_features/​lib.rs Distinguishes custom Some constructors.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​iterators.rs Adds wrapped iterator inputs.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​iterators.expected.rs Pins iterator guard output.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​inference.rs Adds inference-sensitive inputs.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​inference.expected.rs Pins type-preserving helper output.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​identities.rs Adds identity and scope inputs.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​identities.expected.rs Pins identity-sensitive guards.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​generation.rs Adds generation regression inputs.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​generation.expected.rs Pins generated replacements.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​edges.rs Adds lifetime and scope edge cases.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​custom_operators.rs Adds overloaded operator controls.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​conditional_modules/​selected.rs Adds selected module type.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​conditional_modules/​model.rs Adds alternate module type.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​conditional_modules/​lib.rs Exercises conditional module relocation.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​campaign.rs Adds campaign regression inputs.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​campaign.expected.rs Pins campaign guard output.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​ambiguous_modules/​shared.rs Adds multiply mounted source.
crates/​cargo-gamma-lib/​tests/​fixtures/​correctness/​ambiguous_modules/​lib.rs Defines ambiguous module mounts.
crates/​cargo-gamma-lib/​tests/​fixtures/​completed-recovery/​lib.rs Adds original recovery source.
crates/​cargo-gamma-lib/​tests/​fixtures/​completed-recovery/​legacy-record.json Adds legacy recovery record.
crates/​cargo-gamma-lib/​tests/​fixtures/​completed-recovery/​changed.toml Adds changed manifest generation.
crates/​cargo-gamma-lib/​tests/​fixtures/​completed-recovery/​changed.rs Adds changed source generation.
crates/​cargo-gamma-lib/​tests/​fixtures/​completed-recovery/​Cargo.toml Defines recovery fixture manifest.
crates/​cargo-gamma-lib/​tests/​cli.rs Updates removed-option and phase assertions.
crates/​cargo-gamma-lib/​tests/​agreement.rs Strengthens index-nesting agreement.
crates/​cargo-gamma-lib/​src/​report/​progress.rs Tracks confirmed unviable counts.
crates/​cargo-gamma-lib/​src/​paths.rs Preserves symlink suffix semantics.
crates/​cargo-gamma-lib/​src/​ops/​collect.rs Re-exports dependency evidence type.
crates/​cargo-gamma-lib/​src/​model/​mutant.rs Describes wrapped iterator mutations.
crates/​cargo-gamma-lib/​src/​merge/​read.rs Tests conservative legacy metadata.
crates/​cargo-gamma-lib/​src/​merge/​merged.rs Clarifies incomplete populations.
crates/​cargo-gamma-lib/​src/​fixtures.rs Supplies fixture completeness metadata.
crates/​cargo-gamma-lib/​src/​exec/​verdict/​hubs.rs Removes synchronization mutation suppression.
crates/​cargo-gamma-lib/​src/​exec/​test_binary.rs Restricts old narrowing helpers to tests.
crates/​cargo-gamma-lib/​src/​exec/​resources.rs Uses dedicated listing and simpler selections.
crates/​cargo-gamma-lib/​src/​exec/​nextest.rs Updates probe documentation.
crates/​cargo-gamma-lib/​src/​exec/​mod.rs Updates execution modules and exports.
crates/​cargo-gamma-lib/​src/​exec/​manifest.rs Updates runtime-state terminology.
crates/​cargo-gamma-lib/​src/​exec/​loader.rs Clarifies resource-listing loader requirements.
crates/​cargo-gamma-lib/​src/​exec/​killers.rs Exposes internal killer iteration.
crates/​cargo-gamma-lib/​src/​exec/​harness_filters.rs Updates listing-purpose documentation.
crates/​cargo-gamma-lib/​src/​exec/​events.rs Adds activity events and simplifies tiers.
crates/​cargo-gamma-lib/​src/​exec/​config.rs Removes census optimization option.
crates/​cargo-gamma-lib/​src/​exec/​build/​mutation_outcome_tests.rs Updates isolation negative cases.
crates/​cargo-gamma-lib/​src/​exec/​build/​messages.rs Simplifies compiler diagnostic representation.
crates/​cargo-gamma-lib/​src/​exec/​build/​invoke.rs Removes queue mutation suppression.
crates/​cargo-gamma-lib/​src/​exec/​build/​fixtures/​ownership_interaction.rs Adds ownership interaction input.
crates/​cargo-gamma-lib/​src/​exec/​build/​fixtures/​mandatory_exit.rs Adds divergent control-flow input.
crates/​cargo-gamma-lib/​src/​exec/​build/​fixtures/​inference_interaction.rs Adds inference interaction input.
crates/​cargo-gamma-lib/​src/​exec/​build/​fixtures/​enclosing_type_error.json Adds diagnostic-span fixture.
crates/​cargo-gamma-lib/​src/​exec/​baseline.rs Removes census attempt state.
crates/​cargo-gamma-lib/​src/​estimate.rs Simplifies execution cost categories.
crates/​cargo-gamma-lib/​src/​elements/​publication.rs Cleans staging after comparison errors.
crates/​cargo-gamma-lib/​src/​elements/​mod.rs Exposes internal not-built prefix.
crates/​cargo-gamma-lib/​src/​discover/​survey/​resource_evidence_tests.rs Tests declaration evidence generations.
crates/​cargo-gamma-lib/​src/​discover/​modules.rs Normalizes module graph identities.
crates/​cargo-gamma-lib/​src/​discover/​mod.rs Registers new discovery modules.
crates/​cargo-gamma-lib/​src/​discover/​hints.rs Clarifies historical compiler identities.
crates/​cargo-gamma-lib/​src/​commands/​merge.rs Updates report fixture metadata.
crates/​cargo-gamma-lib/​src/​commands/​list.rs Publishes population completeness.
crates/​cargo-gamma-lib/​src/​commands/​dashboard.rs Tracks resumed and deferred activity.
crates/​cargo-gamma-lib/​src/​commands/​cli.rs Removes optimization flag.
crates/​cargo-gamma-lib/​src/​cfg/​probe.rs Documents unbounded probe supervision.
crates/​cargo-gamma-lib/​src/​cfg/​cfgs.rs Preserves uncertain feature predicates.
crates/​cargo-gamma-lib/​src/​cfg/​build.rs Documents discovery process boundaries.
crates/​cargo-gamma-lib/​docs/​IMPLEMENTATION.md Updates hint ranking and scheduling contracts.
crates/​cargo-gamma-lib/​Cargo.toml Adds correctness test registration and chrono.
crates/​cargo-gamma-engine/​src/​parse/​nesting.rs Accumulates nested expression costs.
crates/​cargo-gamma-engine/​src/​ops/​collect/​tests.rs Expands qualified-alias regression.
crates/​cargo-gamma-engine/​src/​ops/​collect/​source_identities.rs Adds file-labeled declaration identities.
crates/​cargo-gamma-engine/​src/​ops/​collect/​shape.rs Adds wrapped iterator body shape.
crates/​cargo-gamma-engine/​src/​ops/​collect/​resource_dependency.rs Defines resolved dependency evidence.
crates/​cargo-gamma-engine/​src/​ops/​collect/​mod.rs Registers identity and evidence modules.
crates/​cargo-gamma-engine/​src/​ops/​collect/​definitions.rs Includes stated replacements in identities.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​values.rs Instantiates aliases and refines confidence.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​temporaries.rs Maps temporary borrows to consumers.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​state.rs Adds state-progress analysis inputs.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​helpers.rs Adds helper-effect analysis inputs.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​guarded.rs Adds guarded progress controls.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​grouping.rs Adds grouping progress controls.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​effects.rs Adds pure and volatile effect controls.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​survey.rs Adds graph traversal analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​shard.rs Adds shard-loop analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​report/​text.rs Adds text-scanning analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​lib.rs Defines fixture module graph.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​isolation.rs Adds minimization analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​glob.rs Adds tokenizer analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​engine.rs Supplies fixture map alias.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​discover/​hints.rs Adds hint-grouping analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​diff.rs Adds diff-loop analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​commands/​dashboard.rs Adds panel-padding analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​resource/​fixtures/​campaign/​baseline.rs Adds artifact-naming analysis input.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​noop.rs Handles verified resource scopes and wrappers.
crates/​cargo-gamma-engine/​src/​ops/​collect/​collector/​indexes.rs Canonicalizes aliases and refines signatures.
crates/​cargo-gamma-engine/​src/​model/​identity.rs Documents stated-value identity discrimination.
crates/​cargo-gamma-attrs/​docs/​DESIGN.md Specifies cumulative nesting budget.
crates/​cargo-gamma-attrs-impl/​tests/​agreement.rs Tests cumulative budgets and diagnostics.
crates/​cargo-gamma-attrs-impl/​docs/​DESIGN.md Documents inherited parser budgets.
crates/​cargo-each/​src/​substitute.rs Removes token mutation suppressions.
crates/​cargo-aprz-lib/​src/​reports/​excel.rs Removes propagation mutation suppression.
crates/​cargo-aprz-lib/​src/​facts/​crates/​tables/​table_mgr.rs Removes default-assignment suppressions.
crates/​cargo-aprz-lib/​src/​facts/​crates/​provider.rs Removes capacity mutation suppressions.
crates/​cargo-aprz-lib/​src/​commands/​progress_reporter.rs Removes draw-target mutation suppression.
crates/​cargo-aprz-lib/​src/​commands/​deps.rs Removes default-call suppressions.
crates/​cargo-anvil/​src/​region.rs Removes obsolete mutation suppressions.
crates/​cargo-anvil/​src/​emit/​toml_array_region.rs Expands array-region regression coverage.
Cargo.lock Records gamma-lib’s chrono dependency.

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Resolve the alias-identity defect and replace filesystem-written test inputs before approval.

No open issues 🎉

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 20, 2026 16:25
@geeknoid

Copy link
Copy Markdown
Member Author

Addressed the review findings in 5cf6ef9: aliases now retain declaration-scope primitive and file-module identities; temporary-borrow guards preserve complete if let/while let constructs and let chains; the module-alias regression uses in-memory inputs and checked-in file identities instead of writing source fixtures. Added regressions for shadowing, generic substitution, module identity, and conditional-let guard spans.

Also repaired manifest ordering, 25 fixture license headers, and stale scheduler/session assertions. The session regressions now explicitly distinguish compiler-unbuilt islands from compiled-but-uncovered code. Local verification passed: 1,185 engine and 3,147 library unit tests, 15 schema/behavior integration tests, both failing session regressions, strict Clippy, and changed-file formatting. CI is pending on the amended single commit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Final human review is needed, and two moderate immutable-input fixture violations remain unresolved.

No open issues 🎉

Review effort: Balanced

@psandana

Copy link
Copy Markdown
Contributor

🤖 Pato's Pull Request Agent: Linux ARM Fast Checks currently fail in anvil-spellcheck on five changed prose terms: unsharded (crates/cargo-gamma-lib/src/merge/union.rs:304), quiesces (crates/cargo-gamma-unsafe/src/interrupt.rs:224), unvalidated (crates/cargo-gamma-lib/src/exec/build/tests.rs:2700), unselected (crates/cargo-gamma-lib/src/cfg/features.rs:12), and journaled (crates/cargo-gamma-lib/src/exec/session.rs:371). Please reword them (for example, “not sharded,” “allows ... to become quiescent,” “not validated,” “not selected,” and “recorded in the journal”) or add the intended terms to the project spellcheck dictionary so this required check passes.

@geeknoid

Copy link
Copy Markdown
Member Author

Fixed the spellcheck failure in b2585c1: added the five intended terms to .spelling; just anvil-spellcheck passes. The first diagnostic is unmerged (unsharded was already in the dictionary).

The latest review summary mentions two remaining immutable-input fixture violations, but provides no paths/lines and there are no inline review comments or threads. Please provide those locations so the remaining findings can be addressed precisely; the previously identified module-alias test no longer writes source fixtures.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Unbounded alias substitution can exhaust discovery memory and must be bounded before cloning.

No open issues 🎉

Review effort: Balanced

Comment thread crates/cargo-gamma-lib/src/discover/compiler_exclusions.rs
@codecov-commenter

Codecov Comments Bot (codecov-commenter) commented Oct 20, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.08887% with 57 lines in your changes missing coverage. Please review.
✅ Project coverage is 99.4%. Comparing base (0a41deb) to head (975bc9e).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
...engine/src/ops/collect/collector/resource/fixed.rs 98.5% 16 Missing ⚠️
...es/cargo-gamma-engine/src/ops/collect/collector.rs 98.8% 10 Missing ⚠️
...ps/collect/collector/resource/source_acceptance.rs 96.9% 6 Missing ⚠️
...go-gamma-engine/src/ops/collect/collector/calls.rs 99.2% 5 Missing ⚠️
...e/src/ops/collect/collector/resource/provenance.rs 97.4% 5 Missing ⚠️
...-gamma-engine/src/ops/collect/collector/lexical.rs 99.2% 4 Missing ⚠️
...go-gamma-engine/src/ops/collect/collector/types.rs 99.0% 4 Missing ⚠️
...ine/src/ops/collect/collector/resource/grouping.rs 99.2% 3 Missing ⚠️
...amma-engine/src/ops/collect/collector/operators.rs 99.2% 1 Missing ⚠️
...src/ops/collect/collector/resource/fixed/ranges.rs 98.9% 1 Missing ⚠️
... and 2 more
Additional details and impacted files
@@           Coverage Diff           @@
##            main    #282     +/-   ##
=======================================
- Coverage   99.5%   99.4%   -0.2%     
=======================================
  Files        311     337     +26     
  Lines      50555   60209   +9654     
=======================================
+ Hits       50348   59873   +9525     
- Misses       207     336    +129     
Flag Coverage Δ
linux 99.4% <99.0%> (-0.1%) ⬇️
linux-arm 99.4% <99.0%> (-0.1%) ⬇️
scheduled ?
windows ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread crates/cargo-gamma-engine/src/ops/collect/collector/types.rs Outdated
Copilot AI balanced review requested due to automatic review settings October 20, 2026 17:56
@geeknoid

Copy link
Copy Markdown
Member Author

Repaired alias expansion and the coverage-gate failures in da27a32. Native pinned-nightly measurements pass in both feature configurations: engine 99.4193% (16,264/16,359 lines), runtime 99.3%. Added behavioral tests without lowering thresholds or excluding production code. Engine tests, library tests and integration regressions, strict Clippy, changed-file formatting, headers, and spelling pass locally; cross-platform CI is pending on the amended single commit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Four unresolved moderate issues affect identity compatibility, fixture isolation, and campaign population accuracy.

No open issues 🎉

Review effort: Balanced

@psandana

Pato Sandaña (psandana) commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

🤖 Pato's Pull Request Agent: [correctness · low] gamma-hints.yaml:4 — Keep the generated context reproducible

The regenerated hints record repo_sha: d8b6336c9ecbd18fa3ab3ce1033004f21b98c480, but GitHub cannot resolve that commit in microsoft/ox-tools; the PR head is da27a321a6176ad580a868ce79a935f7fa429e7d. The design docs say this field records the generating HEAD. Please regenerate the artifact from the committed PR tree, or ensure the actual generating commit is available, so the checked-in snapshot's provenance is reproducible.

@geeknoid

Martin Taillefer (geeknoid) commented Oct 20, 2026 •

Copy link
Copy Markdown
Member Author

The hints provenance SHA d8b6336c9ecbd18fa3ab3ce1033004f21b98c480 is a real local pre-squash commit; I verified the object. repo_sha records the generating HEAD, not the importing PR head. The requested squash removed that commit from published history. Replacing it with the current head by hand would mislabel the historical generation. A promotion-only path (cargo gamma hints) exists, so a fresh mutation campaign is not inherently required, but the monitoring instructions explicitly prohibit invoking cargo-gamma against this repository. I will not bypass that restriction, force a replacement that could discard cumulative hints, or publish an extra ref without approval. Leaving provenance regeneration blocked.

The latest review summary mentions four moderate findings but supplies no paths/lines or mechanisms, and no corresponding inline threads were posted. Please provide those details so the identity-compatibility, fixture-isolation, and population findings can be addressed precisely.

Comment thread crates/cargo-gamma-lib/src/discover/survey.rs Outdated
Comment thread crates/cargo-gamma-lib/src/discover/survey.rs Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Four moderate issues remain: quadratic alias indexing, a nesting-budget bypass, unnecessary CLI-test fixture writes, and a missing alias-fixture exclusion.

1 open issue

Review effort: Balanced

Comment thread crates/cargo-gamma-engine/src/ops/collect/collector/indexes.rs Outdated
Copilot AI balanced review requested due to automatic review settings October 20, 2026 19:43
@geeknoid

Copy link
Copy Markdown
Member Author

5d6f9d5 updates only rustls-webpki (0.103.16) and webpki-root-certs (1.0.10) to address RUSTSEC-2026-0382/0383; just anvil-deny passes. The previous linux-arm mutation job failed before testing any mutants: three unmutated cargo-anvil baseline tests hit a PowerShell System.IO.FileLoadException. No speculative Anvil changes were made; the new head starts a fresh CI run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Broad execution changes and unresolved fixture-exclusion and source-generation test issues require correction and human review.

1 open issue
1 resolved since last review

Review effort: Balanced

Comment thread crates/cargo-gamma-lib/src/discover/survey/resource_evidence_tests.rs Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Alias name capture and two immutable-input test-policy violations remain unresolved.

1 open issue
1 resolved since last review

Review effort: Balanced

Comment thread crates/cargo-gamma-engine/src/ops/collect/collector/indexes.rs Outdated
Copilot AI balanced review requested due to automatic review settings October 20, 2026 20:31
@geeknoid

Copy link
Copy Markdown
Member Author

The previous-head Azure build 42928357 failed SBOM generation because /mnt/vss/_work/_temp/ClippySarif_x86_64-unknown-linux-gnu_dev was missing. GitHub exposes only those downstream annotations; the Azure timeline/log endpoint requires sign-in, so the upstream cause is not established. No speculative pipeline changes were made. Fresh CI is starting on 7378c89.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The critical identity-version mismatch must be fixed to prevent incompatible reports from double-counting mutations.

1 open issue
1 resolved since last review

Review effort: Balanced

Comment thread crates/cargo-gamma-engine/src/ops/collect/definitions.rs
harness
.command(work, binary, &only.names(), fail_fast, resource_bearing)
.command(work, binary, only.names(), fail_fast, true)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Pato's Pull Request Agent: [perf · medium] crates/cargo-gamma-lib/src/exec/verdict.rs:781 — Avoid serializing every Nextest suite

Passing true here forces --test-threads 1 for every binary delegated to Nextest, including binaries with no resource constraints; previously this was conditional on work.required_resources(...). test_all relaunches suites across many mutants, so large suites lose internal parallelism on every campaign run and can substantially increase wall time. Can the serial flag remain conditional on resource-bearing binaries unless globally serial execution is required for correctness?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is intentional scheduling policy, not a resource-lock requirement: the agreed four-phase model runs at most one Nextest test process per mutant, including full-binary phases, with parallelism across mutants controlled by --jobs. The contract is documented in crates/cargo-gamma-lib/docs/DESIGN.md:228-231; the launcher regression covers resource-free/resource-bearing binaries and baseline/active-mutant launches. I am preserving that policy rather than silently restoring nested parallelism. Leaving this thread open if the throughput tradeoff should be reconsidered.

Improve compiler-guided exclusions and isolation, exact-first scheduling,
kill-ranked inferred tests, campaign recovery, and execution diagnostics.

Expand regression coverage to kill thousands of discovered mutants.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: af5dec1b-7970-4411-8a3c-c32d8e491236

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The critical nesting-budget bypass remains unresolved; two test-fixture nits also remain.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants