Walk every issue in an InspectionReport and dispatch each
to the Fix registered under the issue's code in a
FixRegistry — IDE "fix all problems" semantics
with one pass, one strategy per matching issue, and a structured
outcome list.
Resolution per issue (every skipped entry carries a
FixSkipReason):
If params.codes is set and doesn't include the issue's
code → skipped, reason: "filter-excluded" (no strategy
considered).
Otherwise the strategy registered under the issue's code in
params.registry (default
DEFAULT_FIX_REGISTRY) is invoked.
Strategy returns {fixed: true} → issue lands in fixed.
Strategy returns {fixed: false, reason} → issue lands in
skipped with that reason (the strategy declined; not an
error).
Strategy returns {ok: false} → issue lands in errors
with the strategy's error message attached.
No strategy registered for the code → issue lands in
skipped, reason: "no-strategy".
The function does not re-inspect afterwards. Callers that want a
clean post-fix report should call inspectSceneModel again
— the typical pipeline is inspect → applyFixes → inspect again.
Walk every issue in an InspectionReport and dispatch each to the Fix registered under the issue's code in a FixRegistry — IDE "fix all problems" semantics with one pass, one strategy per matching issue, and a structured outcome list.
Resolution per issue (every
skippedentry carries a FixSkipReason):params.codesis set and doesn't include the issue's code → skipped,reason: "filter-excluded"(no strategy considered).params.registry(default DEFAULT_FIX_REGISTRY) is invoked.{fixed: true}→ issue lands infixed.{fixed: false, reason}→ issue lands inskippedwith that reason (the strategy declined; not an error).{ok: false}→ issue lands inerrorswith the strategy's error message attached.skipped,reason: "no-strategy".The function does not re-inspect afterwards. Callers that want a clean post-fix report should call inspectSceneModel again — the typical pipeline is
inspect → applyFixes → inspect again.