{"slug": "making-the-migration-affordable", "title": "Making the migration affordable", "summary": "GitHub migrated its Copilot runtime from TypeScript to Rust using Copilot agents, landing the work through 128 pull requests at a cost of approximately $120,000 in tokens, according to a GitHub blog post by Stephen Toub. Toub wrote that the project, which would have taken a team of developers a year or two before agents, was completed primarily by a single developer in only a few months while the rest of the team continued expanding the runtime's capabilities. Each agent session ran in its own worktree and branch, with 15 child sessions working on separate branches for the session orchestration port, and existing end-to-end tests ran against the replacement code throughout.", "body_md": "[Migrating the GitHub Copilot runtime to Rust, using Copilot](https://github.blog/ai-and-ml/generative-ai/migrating-the-github-copilot-runtime-to-rust-using-copilot/) by Stephen Toub:\n\nA 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.\n\nI would have loved this when I ported DasBlog from Web Forms to ASP.NET Core. My [first Core commit](https://github.com/poppastring/dasblog-core/commit/d1e592849f1387e4f4dbe7d1c90535ef936d53e0) 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.\n\nMoving DasBlog to ASP.NET Core meant keeping [existing configuration, themes and RSS feeds](https://github.com/poppastring/dasblog-core/pull/14) working. [Old .aspx URLs](https://www.poppastring.com/blog/addiisurlrewrite-from-web-forms-to-web-core) still needed to resolve, and users needed to log in with their [existing passwords](https://github.com/poppastring/dasblog-core/pull/43).\n\nThe 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.\n\nThe part I keep coming back to is how Toub divided the work between agent sessions:\n\nEach 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.\n\nFor the session orchestration port, that meant 15 child sessions working on separate branches.\n\nI 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.\n\nWhen I [upgraded DasBlog Core to .NET 10](https://www.poppastring.com/blog/upgrading-old-code-with-copilot), Copilot helped me add lots of tests and make the repetitive changes needed to upgrade the UI framework confidently.\n\nToub puts the real opportunity plainly:\n\nInstead, agents made an entire category of project feasible.\n\nI want [development tools](https://visualstudio.microsoft.com/vs/) 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](https://www.poppastring.com/blog/ai-splits-the-market).\n\nToub also discusses the migration in this interview:", "url": "https://wpnews.pro/news/making-the-migration-affordable", "canonical_source": "https://www.poppastring.com/blog/making-the-migration-affordable", "published_at": "2026-11-02 17:29:30+00:00", "updated_at": "2026-11-03 03:49:46.245225+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "generative-ai", "artificial-intelligence"], "entities": ["GitHub", "GitHub Copilot", "Stephen Toub", "Rust", "TypeScript", "DasBlog"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/making-the-migration-affordable", "markdown": "https://wpnews.pro/news/making-the-migration-affordable.md", "text": "https://wpnews.pro/news/making-the-migration-affordable.txt", "jsonld": "https://wpnews.pro/news/making-the-migration-affordable.jsonld"}}