Build1 publisher3 min readPublished
Directory batching restored CI throughput after per-file AI commits overloaded an industrial C++ repo
CI and reviewer attention set the pace when one developer's AI tool pushed hundreds of commits into an industrial C++ repo over 15 days. The remaining delay sits in how changes are sliced into commits and CI jobs, a part of the cycle GitHub's sub-30-second Copilot review does not shorten.
The Engineer · Build desk

What happened
- Andreas Bexell, Lo Gullstrand Heander and Emma Söderberg posted a 15-day single-case study of AI-assisted remediation in a closed-source industrial C++ codebase on 24 Sep 2026.
- One experienced developer, using a command-line AI coding assistant, generated hundreds of commits touching thousands of lines.
- Committing one file at a time overloaded the repo's build-on-commit CI, because every commit triggered its own build.
- Batching changes by directory and capping the number of files per change restored CI throughput.
- Reviewer attention saturated too, so the developer had to solicit reviews, negotiate commit granularity with the team and chase build and static-analysis failures.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- decision Teams trying to shorten open-to-merge time have to set commit batching and per-change file caps themselves; swapping in a faster AI reviewer changes only the reading step.
- constraint Under build-on-commit CI, an AI tool that splits work finely adds one build per commit, so commit policy has to be fixed before the tool runs a repo-wide sweep.
- cost The human cost moves to soliciting reviews, arguing over granularity and re-reviewing follow-up fixes, and a quicker automated reviewer removes none of that work.
- contradiction A vendor's sub-30-second review and a reported 441% rise in review time can both hold, because they time different intervals, so any 'review got faster' claim needs its interval named.
Build-on-commit CI has a one-line cost model. Build count equals commit count, so a tool that commits file by file schedules one build for every file it touches [1]. According to the dev.to write-up of the paper, the per-file approach turned CI into a backlog machine [10]. Queue length and rerun cost dominated elapsed time, however fast any single review finished [10].
Directory batching is a pipeline setting. It changes how many builds a given volume of change triggers, and no reviewer is involved in choosing it [11]. The write-up does not give the file cap the developer chose or the build counts before and after, so the size of the recovery cannot be checked from it.
The paper lists CI capacity, review effort and change orchestration as the primary bottlenecks once mechanical editing is cheap [8]. In the write-up's account, the AI never slowed down while CI and the reviewers did [4].
GitHub's documentation describes the other end of the pipeline. Copilot code review runs through GitHub Actions, offers Lite and Balanced effort levels, and "usually takes less than 30 seconds" [9]. A reviewer that fast brings the human reading minutes close to zero. The open-to-merge interval is mostly waiting, batching, CI runs and follow-up, the write-up argues, and a fast AI reviewer barely moves it [12]. It cites telemetry, surveyed in what it calls the vibe-coding review, showing review time up 441% under AI-assisted development [13]. It also cites a Salesforce finding that review time on its largest pull requests plateaued because reviewers had stopped engaging deeply [14]. Neither figure comes from the paper.
The design idea I would adopt first is the semantic change set. "Fix all instances of warning X" is one meaningful unit, and the authors argue the developer should not be forced to ship it as one massive commit or as hundreds of per-file commits [15]. Each consumer wants a different slice of it. CI wants bounded jobs, the reviewer wants a coherent change, and the developer wants to verify progressively [16]. Letting those slices diverge is what allows a large remediation to move without stalling [16]. I think this is the right abstraction. It separates what CI needs from what a reviewer needs, and the per-file experiment showed what happens when one commit has to be both [5].
Whether this transfers depends on the pipeline. The evidence is one developer, one closed-source C++ repository and 15 days [1][2]. The CI result applies where every commit triggers a build and the AI work is a mechanical sweep across many files [5][2]. A team whose CI already batches commits is running a different workload, and this study did not measure where its limit sits.
What to watch
- Whether the full arXiv paper reports the per-change file cap, build counts or queue times behind the throughput recovery.
- A replication on a repository whose CI already batches commits, to show where the bottleneck sits once build-on-commit is gone.
- Review and CI tooling that lets one semantic change set ship as different slices for CI jobs and for human reviewers.