Migrating the GitHub Copilot runtime to Rust, using Copilot by Stephen Toub:

A project that would have taken a whole team of developers a year or two before agents was now completed primarily by a single developer, in only a few months, all while the rest of the team continued to greatly expand the runtime's capabilities and reach.

I would have loved this when I ported DasBlog from Web Forms to ASP.NET Core. My first Core commit was in October 2017. The July 2017 legacy snapshot had roughly 40,000 lines of C#, or 49,000 including Web Forms markup and blog templates, excluding blanks, comments, tests, identified generated code, and bundled libraries. That is the size of the old codebase, not a count of lines ported.

Moving DasBlog to ASP.NET Core meant keeping existing configuration, themes and RSS feeds working. Old .aspx URLs still needed to resolve, and users needed to log in with their existing passwords.

The Copilot runtime migration landed through 128 pull requests, replacing pieces of the TypeScript runtime with Rust rather than waiting for a single cutover. Existing end-to-end tests ran against the replacement code throughout. The work cost approximately $120,000 in tokens, with engineers contributing to interop, builds and review.

The part I keep coming back to is how Toub divided the work between agent sessions:

Each session, parent or child, gets its own worktree, its own branch, and its own agent loop; it's separate from the session that spawned it rather than something running inside it.

For the session orchestration port, that meant 15 child sessions working on separate branches.

I can imagine dividing the DasBlog migration along similar boundaries, one session investigating URL compatibility, another working through publishing, another handling authentication. I would still have needed to reconcile the changes and verify the old behavior, but several pieces of the migration could have moved forward at once. I am honestly not sure that is how my brain is built, but I can see how it could have helped.

When I upgraded DasBlog Core to .NET 10, Copilot helped me add lots of tests and make the repetitive changes needed to upgrade the UI framework confidently.

Toub puts the real opportunity plainly:

Instead, agents made an entire category of project feasible.

I want development tools that help us understand an existing codebase, coordinate changes across it, and validate and review the result. Not just produce code faster, but make improvements to existing software practical to take on.

Toub also discusses the migration in this interview:



Comment Section