Linter service clears lint results too greedily
Metadata
Current evaluation
LinterService.run() clears collected issues on each call, losing PRE stage results when POST is also run. Valid bug, untriaged for 53 days.
Suggested action: needs triage
Reason: The issue describes a valid bug confirmed by the source code: `LinterService.run()` unconditionally calls `self._issues.clear()` and `self._issues_by_linter.clear()` at lines 194-195, discarding results from prior stage runs. However, the issue has no labels, no maintainer comments, and no assignee after 53 days, so it requires triage before any action can be taken.
Impact:
55
Quick Win:
41.25
Staleness:
65
Complexity:
25
Confidence:
75
Support Request:
15
Issue body
### Bug Description
When implementing a full lint lifecycle, both pre and post linters are run on an artifact. This requires `LinterService.run()` to be called twice, since each stage must be invoked individually (`LinterService.run(Stage.PRE, ctx); LinterService.run(Stage.POST, ctx)`).
This means:
- Lint results are broken up in a manner that appears arbitrary to users; pre/post really are implementation details.
- `LinterService.summary()` forgets the results of the first run, which could result in false positives for `0` return codes.
### To Reproduce
Implement two custom linters, one pre- and one post-, and then try to run both of them as you might during a pack command's final steps.
### part yaml
```shell
N/A
```
### Relevant log output
```shell
N/A
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen3.6-35b-a3b-mtp-q6 |
Impact:
55
Quick Win:
41.25
Staleness:
65
Complexity:
25
Confidence:
75
Support Request:
15
|
needs triage | LinterService.run() clears collected issues on each call, losing PRE stage results when POST is also run. Valid bug, untriaged for 53 days. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
10
Complexity:
40
Confidence:
85
Support Request:
5
|
needs triage | LinterService.run() clears results when called for PRE and POST stages, causing LinterService.summary() to lose data and produce incorrect return codes. Awaiting triage. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
5
Complexity:
40
Confidence:
85
Support Request:
5
|
needs triage | Bug report describing how LinterService.summary() discards pre-stage lint results when run() is called twice, causing false zero return codes. Unlabelled and awaiting maintainer triage. |
Update history
No update history recorded yet.
Related issues
No related issues found above the similarity threshold.