Skip to content

Deduplicate status repair commands and aggregate their reasons #4915

Description

@Widthdom

Summary

Status repeats the same repair command for multiple failed checks, producing noisy remediation output without aggregating why the command is needed.

Audit IDs: O-15. Reproduced with locally built cdidx v1.40.3 at 404db09489c305f17d94f37026e00564d3ac527a.

Existing issue relationship

No exact existing issue was found.

Expected behavior and PR scope

Normalize/deduplicate identical safe repair actions and attach all triggering check IDs/reasons. Keep underlying health checks unchanged.

Implementation guide for Codex 5.6 sol xhigh

  • Represent remediation as structured action + arguments + safety/mutation class, not rendered-string equality alone.
  • Aggregate reasons while preserving deterministic priority/order and command quoting.
  • Do not merge commands whose DB/path/options or safety semantics differ.
  • Cover repeated/mixed actions, redaction, workspace members, JSON/human, and no-action cases.
  • Add focused regression/contract tests as appropriate, run the full net8.0 and net9.0 suite, and add the required bilingual changelog.d/unreleased/ fragment.

Acceptance criteria

  • Each identical repair action appears once.
  • All triggering reasons/checks remain visible.
  • Distinct targets/actions are never accidentally merged.

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETPull requests that update .NET codebugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions