Skip to content

MIT-618: three verified GitHub tasks (first batch, partial) - #164

Merged
ZachFara merged 6 commits into
feature/eval-setupfrom
feat/MIT-618
Nov 8, 2026
Merged

ZachFara merged 6 commits into
feature/eval-setupfrom
feat/MIT-618

Conversation

@ZachFara

@ZachFara ZachFara commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

What changed

tools/eval/github_tasks.py now holds 3 verified GitHub tasks, not the 10 this batch asked for. I stopped at the turn limit and kept the bar where it was. Each task has every record field and a source comment citing the issue, the fix and the upstream release notes:

Task Repo Upstream release upstream_change
gh-pytest-bdd-fixturedefs pytest-dev/pytest-bdd (MIT) pytest 9.2.0, 2026-10-27 pytest-9.2-arg2node2fixturedefs
gh-tekore-enum-missing felix-hilden/tekore (MIT) pydantic 2.14.0, 2026-10-08 pydantic-2.14-enum-missing-called
gh-mloda-join-order mloda-ai/mloda (Apache-2.0) polars 2.0.0, 2026-10-06 polars-2.0-streaming-join-order
  • Cutoff: Anthropic's models overview (https://platform.claude.com/docs/en/about-claude/models/overview, read 2026-11-08) lists a training data cutoff of June 2026 for Claude Sonnet 5.5 and Claude Opus 5.5. Every release above came out after it. Every issue and fix came after its release, and every upstream change merged after June 2026.
  • Pairs: 0. Each upstream_change has one task, so all three fall in the same-task set. The one pair I verified, Veridelta with mloda on polars join order, lost Veridelta (see below).
  • Setup: every setup resolves with --exclude-newer=2026-11-08T00:00:00Z, so installs stay the same over time. The pins then install the release that broke the project, plus pytest==9.1.1 where the setup pulls pytest in.
  • Rebase-merged fixes: tekore's base is the parent of the fix's first commit, not of the merge sha.
  • Version check: for tekore, check with pydantic 2.13.5 pinned reports that the base tests already pass. So those tests really depend on 2.14.
  • mloda, test files: only the fix's new row-order test is laid over. Its other test edit adds maintain_order="left" to a fixture, which would show the agent the fix.
  • mloda, cause words: cause_words are maintain_order and streaming, which name the cause: polars 2's lazy collect runs on the streaming engine, which keeps a join's order only when asked. Neither word appears in the laid-over test (lowercase substring match, as the grader does).
  • pytest-bdd, cause words: 9.2, per node, per-node and by node, phrasings of the change (name -> node -> defs). _arg2node2fixturedefs was dropped, because the error's "Did you mean" names it. That same hint points at the rename, so this task is not a hard-set task under decision 0023, and its comment says so.
  • tekore, cause words: enum constructor, calls the enum and 2.14. _missing_ was dropped, because the traceback ends in it and every fix edits it.
  • Where the cause words were checked: none of the new words appears in the laid-over test files (tests/feature/test_report.py, tests/model.py), lowercased and as substrings. They also don't appear in the base source each traceback shows, or in the parts of the base failing output this session captured. _missing_ does appear in tekore's base serialise.py.
  • README: one line for a format detail. When a repo has no issue for the bug, issue_url is the fix's pull request, which reports it.

Rejected candidates

Why

Ticket: MIT-618 (first batch), the GitHub-task eval. These are the real post-cutoff tasks the arms run measures.

How it was tested

  • agent_eval.py check, the containerized default, run over every scenario before this fix round: each task here printed "fails before, passes after", and the command exited 0. It ran one container at a time, and none were left behind. Since then only mloda's discovery words changed, so the containerized check wasn't run again.
  • server/tests/test_eval_repos.py and test_eval_grader.py pass.
  • make check passes after merging origin/feature/eval-setup again (docs changes only).

Learned

  • Several fixes are rebase-merged, so merge_commit_sha is the PR's last commit, and its parent can be the fix itself. Set base_commit to the parent of the PR's first commit.
  • A record setup can resolve with --exclude-newer, which keeps installs the same over time.
  • Fix PRs' new test docstrings often state the cause, and sometimes the fix. Read every laid-over test file before accepting a task, and check cause_words against it and against the error message as the grader matches them (lowercase substring).
  • cause_words must name the cause, never restate the symptom the issue describes, and never be a name the error message or traceback gives away (a "Did you mean" hint, the function the traceback ends in).
  • A project's [tool.uv] required-version makes uv venv refuse to run, and projects with a coverage floor in addopts need --no-cov.
  • github.com DNS failed for a few minutes in this session: git fetch failed while gh api still worked. Retry rather than treat the task as broken.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Qc1CQTb8r67J32HpkhS43y

ZachFara and others added 5 commits November 8, 2026 14:17
pytest-bdd, tekore, veridelta, mloda and ismember, each checked in
containers: fails before, passes after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qc1CQTb8r67J32HpkhS43y
Veridelta's ordering test names the fix in its docstring, so it is
dropped; mloda lays over only its new row-order test, since the fix's
other test edit adds maintain_order to a fixture. The README says what
issue_url holds when a repository has no issue.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qc1CQTb8r67J32HpkhS43y
The ismember test's docstring states the cause, and "read-only" was both
a symptom and a cause word. mloda's cause words were the symptom; they
are now maintain_order and streaming, neither in its laid-over test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qc1CQTb8r67J32HpkhS43y
@ZachFara ZachFara changed the title MIT-618: four verified GitHub tasks (first batch, partial) MIT-618: three verified GitHub tasks (first batch, partial) Nov 8, 2026
pytest-bdd drops _arg2node2fixturedefs, which the error's "Did you mean"
names, for phrasings of the per-node keying. tekore drops _missing_,
where the traceback ends, and adds "calls the enum".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qc1CQTb8r67J32HpkhS43y
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