Skip to content

test(bench): external repo benchmark - plain grep wins on a small repo - #110

Merged
ManSio merged 1 commit into
mainfrom
exp/bench-external
Nov 10, 2026
Merged

ManSio merged 1 commit into
mainfrom
exp/bench-external

Conversation

@ManSio

@ManSio ManSio commented Nov 10, 2026

Copy link
Copy Markdown
Owner

test(bench): the benchmark on an external repo — plain grep wins

B1 lives in our own repository, so B2 runs the same construction on
psf/requests: the repo, its history, its commit messages and the gold all come
from other people. Corpus pinned at e331a288 (2026-03-24), 64 files, 786 chunks.

25 commits (40 asked; no merges, <=20 files, >=1 .py outside tests/docs)

arm           hit@1  hit@5   95% CI
grep              6     19   [0.57, 0.89]
search            5     15   [0.41, 0.77]
neighbours        9     13   [0.33, 0.70]
tool              8     10   [0.23, 0.59]

On a 64-file repository a term-count ranking over file text is simply good:
messages name modules and functions, and there are few files to confuse it. The
tool's demotions, gate and merge add nothing here and take something away.

This corrects an earlier claim. "We beat grep 157/160 vs 147/160" was about
symbol lookup on the generated panel; it says nothing about commit localization
and does not generalise to a small external repo.

Caveats, stated rather than buried: n=25 (one task = 4 points, intervals overlap
between search and tool, but grep's lower bound is above the tool's upper); the
grep baseline reads corpus files by path from the repo's ls-files, so files
created after the base are empty for it - that biases grep down and it still
wins; one repository and one base are not a claim about small repos in general.

The harness is experiments/bench_2026_11/external.py; the result file records
repo, base, task count and the table, with no commit messages stored.

B1 lives in our own repository, so B2 runs the same construction on
psf/requests: the repo, its history, its commit messages and the gold all come
from other people. Corpus pinned at e331a288 (2026-03-24), 64 files, 786 chunks.

    25 commits (40 asked; no merges, <=20 files, >=1 .py outside tests/docs)

    arm           hit@1  hit@5   95% CI
    grep              6     19   [0.57, 0.89]
    search            5     15   [0.41, 0.77]
    neighbours        9     13   [0.33, 0.70]
    tool              8     10   [0.23, 0.59]

On a 64-file repository a term-count ranking over file text is simply good:
messages name modules and functions, and there are few files to confuse it. The
tool's demotions, gate and merge add nothing here and take something away.

This corrects an earlier claim. "We beat grep 157/160 vs 147/160" was about
symbol lookup on the generated panel; it says nothing about commit localization
and does not generalise to a small external repo.

Caveats, stated rather than buried: n=25 (one task = 4 points, intervals overlap
between search and tool, but grep's lower bound is above the tool's upper); the
grep baseline reads corpus files by path from the repo's ls-files, so files
created after the base are empty for it - that biases grep down and it still
wins; one repository and one base are not a claim about small repos in general.

The harness is `experiments/bench_2026_11/external.py`; the result file records
repo, base, task count and the table, with no commit messages stored.
@coderabbitai

coderabbitai Bot commented Nov 10, 2026

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 01a3f275-5ce9-4cda-9bf6-997c20b2514b
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@ManSio
ManSio merged commit 53b0944 into main Nov 10, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant