Skip to content

Deduplicate status repair commands and aggregate reasons - #5023

Merged
Widthdom merged 3 commits into
mainfrom
fix-issue4915
Aug 1, 2026
Merged

Deduplicate status repair commands and aggregate reasons#5023
Widthdom merged 3 commits into
mainfrom
fix-issue4915

Conversation

@Widthdom

@Widthdom Widthdom commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Deduplicate status --check repair commands by structured action identity.
  • Aggregate every triggering check in deterministic order while retaining the compatibility reason field.
  • Keep different targets, options, actions, mutation classes, and safety semantics separate.
  • Use the same ordering in JSON and human output, with platform-aware shell quoting and single-line control-character escaping.

Root cause

status --check previously emitted one repair entry per failed check. Several checks can require the same safe repair action, so the response repeated identical commands without exposing one complete ordered trigger list.

Validation

  • dotnet build CodeIndex.sln -c Release --no-restore -p:UseSharedCompilation=false -m:1 — passed with 0 warnings/errors
  • Final Issue Deduplicate status repair commands and aggregate their reasons #4915 focused tests — net8.0: 3 passed; net9.0: 3 passed
  • Related status/URI focused tests — net8.0: 5 passed; net9.0: 3 passed, 2 production-runtime tests skipped by their existing TFM guard
  • Full net8.0 suite — 11,064 passed, 7 skipped, 0 failed
  • Full net9.0 suite — 10,588 passed, 420 skipped; 2 existing Issue Avoid overhead that makes parallel batch slower than sequential #4872 parallel timing tests timed out under full-suite load. The detached case passed in a paired isolated retry and the direct-session case passed when run alone.
  • dotnet format CodeIndex.sln --verify-no-changes --no-restore — passed
  • dotnet run --project tools/CodeIndex.Changelog -- check — 90 fragments valid
  • Final status --check --jsonindex_matches_workspace=true, failed_checks=[]
  • Codex adversarial review round 1 found unsafe shell-metacharacter quoting; fixed with the existing POSIX sh/PowerShell formatter.
  • Codex adversarial review round 2 found control-character line injection; fixed by visibly escaping controls in human output while leaving structured JSON args unchanged.

Documentation and changelog

  • Updated README, USER_GUIDE, DEVELOPER_GUIDE, and AGENT_GUIDE in English/Japanese sections as applicable.
  • Added changelog.d/unreleased/4915.fixed.md.

Follow-up candidates

  • None.

Fixes #4915

@Widthdom
Widthdom marked this pull request as ready for review August 1, 2026 07:33
@Widthdom
Widthdom merged commit f12e8f8 into main Aug 1, 2026
12 checks passed
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.

Deduplicate status repair commands and aggregate their reasons

1 participant