← In the News

Linear rebuilt its CI after agents outran it

AI coding has made CI a bottleneck, so we reworked ours to keep up · Mufeez Amjad, Linear · September 21, 2026

Machine-readable Download Markdown

Linear's CTO assigned Amjad an issue titled "CI costs are high" earlier this year, and wanted CI faster while he was at it. The post reports the outcome in first-party numbers: test suites have almost quadrupled since the start of January, and over the same period pull request wait time fell from more than six minutes to just over five, with runner time per test roughly halved. The individual wins are itemized. Moving off GitHub Actions to third-party runners made jobs 34% faster on average in a like-for-like comparison of the two days either side of the switch, with tsc down 52%. Switching to the native TypeScript compiler cut the weekly median tsc check by 73%. Rewriting custom lint rules to work on the syntax tree instead of type information let ESLint drop TypeScript entirely, cutting API lint time 68% and full-repository lint 55%. Capping fetch depth on change-detection jobs took the slowest of those gates from 94 seconds to 20. Consolidating seven small checks into two jobs saved roughly 87,000 runner-minutes a month on June usage, 11.8% of total CI spend. The single largest saving, about 17% of monthly cost, came from an opt-in Vitest project running with isolate: false, which dropped the slowest shard from between 300 and 379 seconds down to about 195. The Hacker News thread on the post stood at 49 points against 27 comments at 16:57 EDT on September 21.

That last change is also the one Amjad flags as carrying the highest correctness risk, and the way Linear contained it is the part with the widest application: "because agents now write the majority of our tests, we updated our respective agent skills to account for this performance opt-in as well, so generated tests follow the same constraints by default." The repository is currently adding roughly 2,000 tests a week. Without this year's work, the post estimates, the suite would now take about 11 minutes rather than the five developers wait today.

Why it matters: Writing the code stopped being the slow step here, validating it became the slow step, and the fix was ordinary infrastructure work rather than anything agent-specific. The transferable part is the coupling at the end. A performance optimization with real correctness risk had to be written into the agent instruction surface, because the thing generating the tests is the thing that has to honor the constraint. If your test suite is growing at a rate set by agents, your CI budget and your agent instructions are now one system, and changing either alone will not hold.