CodeMop's review of its own pull request #20, a 1,450-line refactor (a typical pull request costs a few cents). Tick the fix, then Commit the ticked fixes.
CodeMop commented on src/codemop/cli/post.py, lines 143–144
🐛 Bug: Title fallback can resolve another finding's conversation
by_title is built from every CodeMop thread, including ones that carry a finding id. Suppose an addressed finding has no inline comment (it was over max_comments), and a different, still-open finding with the same path and title has a thread. That thread gets resolved, and the nextsync_threads then dismisses the open finding. The path/title fallback should only use threads from before comments carried ids.
Suggested change
- by_title = {(t.path, c.title): t for c, t in conversations(threads)}+ by_title = {(t.path, c.title): t for c, t in conversations(threads) if c.finding_id is None} to_resolve = [by_finding.get(f.id) or by_title.get((f.path, f.title)) for f in addressed]
CodeMop · confidence 0.50 · Not a problem? Resolve this conversation and CodeMop won't raise it again on this PR, or reply /codemop learn <why> to teach it for the whole repository.
CodeMop commented
CodeMop review of 7f67de8
1 open issue(s). Tick the fixes you want, then tick Commit the ticked fixes at the end, and CodeMop commits them to this branch as one commit.
It reads the diff through GitHub's API and never checks out or runs the pull request's code, so it can hold your key on a fork's PR, from anyone. Agents that run tools on the code can't.
Cheap enough for every push
A few cents a review with the default model, and done in under a minute. It was chosen by an eval in which 99% of its comments were right.
Your model, your key
Anthropic, Mistral, OpenAI, OpenRouter, any OpenAI-compatible endpoint, or a local model. No CodeMop server: your code goes only to the provider you choose.
It learns, and you can see what
What it's taught goes in a file in your repository, which you can read and edit. Re-reviews look at the new commits only, and resolve conversations once the code is fixed.
Set up in two minutes
Add your model provider's API key as a repository secret, e.g. ANTHROPIC_API_KEY. For Claude it comes from console.anthropic.com; a Pro or Max subscription isn't one.
Commit CodeMop's workflow, .github/workflows/codemop.yml, from the quick start to your default branch. Its review step is just this.