Summary
RefactronPipeline._find_fixer_name iterates every registered fixer and calls fixer.preview(issue, "x = 1\n") on dummy code to see if preview succeeds. This is O(fixers × issues) and may not reflect real file context, so orchestration work is noisy and slow for large issue lists.
Suggested direction
- Central registry: map
IssueCategory / issue type → candidate fixers (or ask AutoFixEngine for the responsible fixer without dummy preview).
- Fallback to preview only when ambiguous.
- Cache per-issue-type resolution.
Acceptance
- No regression in which issues get a fixer assigned.
- Measurable reduction in queue time for large queues (benchmark or unit test with counter).
Code
refactron/core/pipeline.py — _find_fixer_name, queue_issues
refactron/autofix/engine.py (if API changes)
Summary
RefactronPipeline._find_fixer_nameiterates every registered fixer and callsfixer.preview(issue, "x = 1\n")on dummy code to see if preview succeeds. This is O(fixers × issues) and may not reflect real file context, so orchestration work is noisy and slow for large issue lists.Suggested direction
IssueCategory/ issue type → candidate fixers (or askAutoFixEnginefor the responsible fixer without dummy preview).Acceptance
Code
refactron/core/pipeline.py—_find_fixer_name,queue_issuesrefactron/autofix/engine.py(if API changes)