Skip to content

Arc 3: commit_runtime — 52 verified envs + filter/leak/artifact fixes - #47

Merged
adithya-s-k merged 5 commits into
mainfrom
v083-arc3-commit_runtime
May 28, 2026
Merged

adithya-s-k merged 5 commits into
mainfrom
v083-arc3-commit_runtime

Conversation

@adithya-s-k

@adithya-s-k adithya-s-k commented May 28, 2026 •

Copy link
Copy Markdown
Collaborator

Arc 3 of the v0.8.3 pipeline-by-pipeline optimization. Closes #46. Predecessors: Arc 1 pr_diff (#40), Arc 2 pr_runtime (#45) — both merged.

What shipped

Dataset: AdithyaSK/repo2rlenv-commit-runtime — 52 oracle-verified envs across 12 repos (Python + Go). Added to the Verifiable RL Environments collection.

Count %
resolved (tracked SWE-bench-style) 52 100%
command_resolved (clean test command) 47 90%
eval_grade (cmd_resolved + has P2P guard) 47 90%

Kept experimental — not promoting to stable yet. The structural limitation (commits without Closes #N give thinner instructions than pr_runtime does) hasn't fully gone away. README/at-a-glance table updated accordingly.

Code changes

  1. Mining filters (2549b0f) — non-bugfix conventional-commit-type rejection (chore: / docs: / feat: / refactor: / …) + bugfix positive-signal requirement (fix: prefix OR Closes #N OR keyword in subject).
  2. Instruction quality (5db9d2d) — issue-fetch fallback when Closes #N is present (sources problem statement from the issue body, not the leak-prone commit message), body reflow, reward_calibration metadata stamping for manifest parity with pr_runtime.
  3. Critical Arc 2 inheritance fix (758b56d) — commit_runtime was calling build_eval_script without fail_to_pass / pass_to_pass, hitting the binary-reward fallback path; reward.json was never written across the whole pipeline. Plus emitted tasks shipped only test.sh, missing the plain tests/{verifier.py,f2p.json,p2p.json} artifacts. Both fixed. Extended _strip_info_leak to catch trailing (#NNNN) squash trailers + cross-repo repo#N refs (shared with pr_runtime).
  4. README + manifest enricher (e7e5613) — dataset link in the experimental list; hardened the trial-ID matcher in plans/build_enriched_manifest.py so harbor's SHA truncation doesn't drop tasks from the count.
  5. Docs (07b0b2a) — rewrote docs/pipelines/commit_runtime.md to match the current pipeline (the old doc still claimed an LLM authors instruction text). Added docs/release_notes/v0.8.3/findings-commit_runtime.md.

Audit / validation

  • Full 100-task-style oracle gate: 52/52 resolved, 47/52 command_resolved (5 untracked-failure tail: 3 cobra single-test, 2 testify Go-subtest parser over-count), 47/52 eval_grade.
  • Stratified qualitative audit of 9 tasks: 5 gold-standard, 3 mediocre (thin no-linked-issue instructions), 1 weak (also one of the dropped broken-oracle tasks).
  • 4 broken-oracle tasks dropped pre-publish (psf/requests-6404f3, testify-15f682, cli-195aaf, cli-b4f42d — all single flaky P2P, 0.97-0.999 on gold).
  • 723 tests pass · ruff lint + format clean · CI green.

Out of scope (deliberately)

  • 100-env target. Arc 2 hit 100 because pallets repos let pr_runtime mine 30+ per repo. For commit_runtime those same repos merge-commit their PRs and yield ~0 directly mineable bugfix commits (correctly filtered out). 52 is what the pipeline's natural fit produces on the bootstrap-cached repo set; the remaining ~50 would require new bootstraps which is out of Arc 3's scope.
  • Promote to stable. Not yet — the no-linked-issue instruction tail and the Go-subtest parser issue should land first.
  • Flaky-P2P prune on the 4 dropped tasks. Could be salvaged Arc-2-style; left for a polish round.
  • commit_stream / continuous variant. pr_stream was already removed as scope-creep; if needed it's flags on commit_runtime, not a separate pipeline.

P0 audit fixes from Arc 3:

- Reject conventional-commit types that are not bugfixes
  (chore/docs/feat/refactor/style/test/ci/build/perf/revert). The existing
  `_CC_PREFIX_RE` only stripped the prefix; a feature/refactor commit would
  then walk into bootstrap + validation and waste cycles.

- Require at least one bugfix-positive signal: a `fix:` prefix, a
  `Closes #N` / `Fixes #N` issue trailer, or a bugfix keyword in the subject
  (fix/bug/regression/crash/broken/incorrect/fail/...). Stops bare-subject
  feature commits with no type prefix from sailing through.

- Strip solution leaks from the instruction. Commit subjects and bodies
  routinely name the function being fixed and link to companion fix-PRs /
  commit SHAs; `_strip_info_leak` (ported from pr_runtime) removes them.

- Extend `_CLOSES_RE` to catch the markdown form (`fixes [#N](url)`) so
  these don't leak through after the subject strip.
…on parity

Three P1 instruction-quality + metadata wins from Arc 3:

- Issue-fetch fallback. When a commit has `Closes #N`, source the problem
  statement from the linked issue body (via github.fetch_issue) instead of
  the commit message. This is Arc 2's biggest leak-reduction lesson applied
  to commits: the bug *report* doesn't usually name the function being
  fixed; the commit *message* does. Commits without a linked issue fall
  back to the leak-stripped subject + body as before.

- Reflow long bodies. Port `_reflow_pr_body` from pr_runtime so commit
  bodies get the same template-noise stripping (HTML comments, checklist
  headers, multi-blank collapse, length cap) as PR bodies do. Commit
  messages can be just as verbose as PRs in practice.

- Stamp `reward_calibration`. Add the same `[metadata.repo2env.
  reward_calibration]` block pr_runtime writes (`f2p_count`, `p2p_count`,
  `source_files`, `loc_changed`, `difficulty`) and use the computed
  difficulty bucket on the HarborTask instead of the hard-coded "medium".
  This gives the launch-side manifest enricher (`eval_grade` = command-
  resolved AND p2p_count > 0) the fields it needs without re-parsing.

3 new tests cover issue-fetch override, reflow on template-noisy bodies,
and the reward_calibration stamping (28 commit_runtime tests pass; full
suite 723).
Audit on the first 56-env scale sweep surfaced three concrete issues:

- The emitted test.sh fell back to the binary exit-code reward because
  build_eval_script was called without fail_to_pass/pass_to_pass — and so
  reward.json was never written, tracked / command_resolved / the parser
  breakdown were silently lost. Pass the lists in so the graded path
  triggers.

- Tasks shipped test.sh only, missing tests/{verifier.py,f2p.json,p2p.json}.
  Arc 2's plain-artifacts refactor wasn't inherited; add the same
  aux_files=_runtime_aux_files(...) wiring pr_runtime uses, gated on f2p
  presence so --skip-validation tasks still build.

- Extend _strip_info_leak (pr_runtime, shared by commit_runtime) to catch
  two soft-leak patterns the audit found in ~5/56 tasks: trailing squash
  trailers like `(#1234)` and cross-repo issue refs without a closes
  keyword (`gorilla#739`). Existing pattern only caught the
  closes/fixes-prefixed and the markdown-with-url forms.
commit_runtime is still experimental (instructions are thinner than
pr_runtime's when no linked issue exists, and Go-subtest parsing on
stretchr/testify still over-reports untracked failures). But we now have
52 oracle-verified envs published at AdithyaSK/repo2rlenv-commit-runtime
— added to the HF "Verifiable RL Environments" collection.

build_enriched_manifest also got the trial-id matcher hardened so harbor's
SHA truncation (12-char commit SHA -> 9-char in trial dir names) no longer
drops tasks from the count.
- Rewrote docs/pipelines/commit_runtime.md to match the current pipeline
  (issue-fetch fallback + leak strip + reward_calibration + plain artifacts;
  the old doc still claimed an LLM authors instruction text, which was never
  the case in shipped code).
- Added docs/release_notes/v0.8.3/findings-commit_runtime.md following Arc
  2's findings template: published dataset link, what changed, validation
  evidence (52/52 resolved, 47/52 command_resolved, 47/52 eval_grade),
  honest limitations (thin no-linked-issue instructions, Go-subtest parser
  over-counting, lower yield on PR-driven repos), and the critical Arc 2
  inheritance bug we caught at oracle-gate time.
@adithya-s-k adithya-s-k changed the title Arc 3: commit_runtime — filter/leak fixes + 100 verified envs + promote to stable Arc 3: commit_runtime — 52 verified envs + filter/leak/artifact fixes May 28, 2026
@adithya-s-k
adithya-s-k marked this pull request as ready for review May 28, 2026 12:54
@adithya-s-k
adithya-s-k merged commit 6cf803a into main May 28, 2026
5 checks passed
@adithya-s-k
adithya-s-k deleted the v083-arc3-commit_runtime branch May 28, 2026 12:56
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.

Arc 3: commit_runtime — filter/leak fixes + 100 verified envs + promote to stable

1 participant