Repository navigation
mutation: 72 stale entries re-pointed, 15 that stopped compiling fixed - #194
Conversation
The first full run on CI named every entry that could not prove anything. Two kinds are fixed here, and each was run again locally afterwards. - 72 entries whose pattern was gone. Most of the code they break was rewritten in place - messages moved from fmt.Sprintf to core.Says, palette values were recomputed - and three moved to another file. Each now breaks the same behaviour where it lives today. Where a pattern carried a number that changes with the code, the entry takes a shape that does not: the README count gains a leading digit, the file ceiling gains "1 +", the Polish catalogue is addressed by key rather than by hash. 65 caught, 6 not caught (left for the next pull request, with what was found), 1 unjudged here. - 15 entries whose mutant no longer compiled - a variable the mutant orphaned, a string where a core.Said is now asked for, a method that is gone. All 15 caught. One needed a second aim: the guard looks for a title carrying the label, so the break now gives a fragment that title. A BROKEN verdict now carries the compiler's first complaint. On CI the verdict was all there was, and these fifteen had to be built again by hand to learn why. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
There was a problem hiding this comment.
🔇 Additional comments: 2
internal/guard/mutation/entries.py: 1
2223-2224: 🎯 Functional CorrectnessNo change is needed for this mutation.
The replacement changes the dark palette’s success color to its foreground color. It differs from the original success value and matches the mutation description.
internal/guard/mutation/mutate.py-263-264: 1
263-264: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
⚠️ Unverified finding
Verification ran but could not confirm this finding. It is shown for review, not as a verified issue.Compiler detail can contain control characters and local paths.
The detail is the first output line that contains
.go:. Go can emit# packageheader lines and vet output that also contain.go:, so the first match may not be the compile error. The line also goes unescaped into CI logs. It can contain absolute worker-tree paths, which conflicts with the "no local paths" rule for public output. Prefer lines that match\.go:\d+:\d+:. Strip the worker tree prefix before storing the detail.Proposed fix
- complaint = next((line.strip() for line in result.output.splitlines() if ".go:" in line), "") + complaint = next((line.strip().replace(str(tree.path) + os.sep, "") + for line in result.output.splitlines() + if re.search(r"\.go:\d+:\d+:", line)), "")Add
import os, reif they are missing.
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Repository UI (base), Organization UI (inherited)
- Review profile: ASSERTIVE
- Plan: Advanced
- Run ID:
45a1829d-d704-43c3-b4f3-a2d7eb2bf6e6
📒 Files selected for processing: 2
internal/guard/mutation/entries.pyinternal/guard/mutation/mutate.py
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
⏰ Context from checks skipped due to timeout: 33
- GitHub Check: part 12
- GitHub Check: part 13
- GitHub Check: part 11
- GitHub Check: part 4
- GitHub Check: part 1
- GitHub Check: part 14
- GitHub Check: part 0
- GitHub Check: part 5
- GitHub Check: part 6
- GitHub Check: part 2
- GitHub Check: part 8
- GitHub Check: part 15
- GitHub Check: part 9
- GitHub Check: part 7
- GitHub Check: part 3
- GitHub Check: part 10
- GitHub Check: the installer installs and leaves
- GitHub Check: test on ubuntu-latest
- GitHub Check: reference tools actually installed
- GitHub Check: test on macos-latest
- GitHub Check: staticcheck
- GitHub Check: semgrep
- GitHub Check: linters
- GitHub Check: known vulnerabilities
- GitHub Check: test on windows-latest
- GitHub Check: coverage gate
- GitHub Check: import table of the window binary
- GitHub Check: bill of materials
- GitHub Check: the Chocolatey packages install and leave
- GitHub Check: new vulnerabilities (OSV)
- GitHub Check: Analyze (actions)
- GitHub Check: Analyze (go)
- GitHub Check: Analyze (python)
🧰 Additional context used
📓 Path-based instructions: 9
Applies to text shown to the user (labels, buttons, tooltips, placeholders, dialogs, errors, status messages, empty states, translations).
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
These are end-user desktop applications.
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
Performance is a known weak spot of these projects.
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
Applies only to code that builds or styles a GUI.
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
Domain: test file generator (Go; `tfg` CLI and `tfg-gui` Fyne window over one engine).
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
SECURITY, HIGH PRIORITY.
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
These apps are QA/developer tools.
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
Python code.
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
All code in this repository is written by an AI coding agent (Claude Code).
⚙️ CodeRabbit configuration file
Files:
internal/guard/mutation/mutate.pyinternal/guard/mutation/entries.py
What
The first full mutation run on CI (#193) listed every entry that could not prove anything. This pull request fixes two kinds of them.
1 +.core.Saidrather than astring, or a method no longer exists. Each now compiles and breaks the same thing.BROKENverdict now carries the compiler's first complaint. On CI the verdict was all there was.Proven locally, entry by entry
staleness.py), and the coverage guard passes.The six that are not caught, and the 19 that were not caught on CI before this change, are left for the next pull request. This one does not change what they say. The first case looked at shows the shape: the entry finds its pattern and compiles, but the function it breaks is no longer what the guard measures.
The runner itself changed (mutate.py), so the
mutationcheck on this pull request runs every entry, as the first run on #193 did. It is a second full measurement, and it reports as warnings.🤖 Generated with Claude Code
Summary by CodeRabbit