dataset: make all 199 features gradeable, and stop wiping prebuilt images - #82
Merged
Conversation
…ages Every feature must fail on the base commit and pass with its gold patch. 24 did not, and none were findable by reading the specs: runner never invoked the feature's tests 12 dependency drift (litellm, pyarrow, scipy) 8 f1's expectations in every test patch 5 tests did not discriminate 2 overlapping hunks 1 Also amends 23 feature.md files where a requirement was unknowable without reading the tests (unnamed API identifiers, verbatim error messages, the typst diagnostic span). No feature.patch is touched anywhere: where a fix had a choice, it went to the spec or the tests, never the reference. sandbox.py cleaned with `git clean -fdx` before each graded feature, deleting the build output the images pre-compile at the base commit -- 335 crate compiles per typst run, against a runner.sh that already said "No -x to preserve target/". Dropped -x here and in the four runners whose EXIT trap did the same. Reasoning per feature is in dataset/SPEC_AUDIT.md.
Grading changed: 24 features that were ungradeable now fail-on-base and pass-on-gold, and sandbox.py no longer deletes the images' prebuilt output before each run. Scores from 0.0.28 and earlier are not comparable.
Collaborator
Author
|
Scope note, to be precise about what "grading" means here:
Measured outcomes do change for the 24 features that were previously ungradeable — that is the intended fix, and the reason 0.0.28 scores should not be compared against 0.0.29. |
Pre-existing on main; CI's format check was already red before this branch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The invariant
Every feature must fail on the base commit and pass with its gold patch. Neither half was safe to assume:
pallets_jinja/1621f5 passed 6/6 on an untouched tree, so it scored 5/5 across archived runs regardless of what the agent wrote.All 199 features were checked by running the real grading path (
runner.sh, one sandbox per feature). 24 were broken, and none were findable by reading the specs:199/199 now verified.
No gold patch is touched
Where a fix had a choice, it went to the spec or the tests — never the reference. 23
feature.mdfiles are amended where a requirement was genuinely unknowable without reading the tests: unnamed API identifiers (three Go features named no identifier at all), verbatim-compared error messages, and typst's diagnostic source range, which the harness compares as strictly as the message text.One defect is logged unfixed:
pillow/290f4's reference does not honour its ownerror_threshold(measured 59.34 at a threshold of 30.0; the old assertions passed only because uint8 arithmetic wrapped). Fixing it would mean editingfeature.patch.Images were recompiling everything, every run
sandbox.pyrangit clean -fdxbefore each graded feature.-xdeletes gitignored paths — which is exactly where the images keep the build output they pre-compile at the base commit:Result: 335 crate compiles per graded run, against a
runner.shthat already saidgit clean -fd # No -x to preserve target/. The dataset author anticipated this and the harness overrode it. Dropped-xhere and in the four runners whose EXIT trap did the same; all four images rebuilt and re-verified (tiktoken OK 10, pillow 25/290/68 OK 5 each).Measured share of pair wall-clock: 12% for typst, 0% for tiktoken and pillow — a real inefficiency, but not the reason runs are slow. That is ~10 s per agent step.
Also
dottxt/1706fetched its fixture models live — a failed download ERRORed 10 tests on base and gold, and the runner fails on any ERROR. Models baked in, plusHF_HUB_DISABLE_XET=1(the repo setsfilterwarnings = ["error"]andhf_xetdrifted ahead ofhuggingface_hub, so any download raised aDeprecationWarningas an error).dataset/SPEC_AUDIT.md.scripts/check_gradeable.pyreproduces the whole sweep.