Stacked sessions and pull requests in the GitHub Copilot app

Disclosure: Some links in this article are affiliate links. AI Maestro may earn a commission if you make a purchase, at no…

By Vane July 30, 2026 4 min read
Stacked sessions and pull requests in the GitHub Copilot app

A GitHub Copilot app update lets users run multiple AI sessions on the same codebase, where each new task builds directly on the previous one.

The feature appears as a vertical stack of work items. The screenshot shows a folder named “Cass-kit” containing a task called “Frontend modernization”. Below that are three specific actions: “modernize frontend styles”, “Style port onto dev”, and “Remove react-bootstrap”.

The author describes this as a series of tasks within a single repository, where every session uses the output of the one before it.

The problem with legacy code

The writer started with a personal project built around the end of 2014. It functions as a dashboard for calendars, smart home devices, and task management. The app has worked for years, but recent updates have become difficult to manage.

Dependencies had become outdated. The code used React 15, which was released in 2016. It also relied on Less for CSS pre-processing and a version of react-bootstrap from that era. The author notes that using Bootstrap was old news by then.

Untangling this mess before AI assistance would have taken weeks. Previous attempts to fix it had failed. The project size was just large enough to make the effort painful, and the return on investment was low.

The author then opened the GitHub Copilot app, added the repository, and began work.

First attempt: A single prompt

The author tried to solve the whole problem in one go.

The prompt used in Plan mode asked to modernise the frontend. It requested a choice between Tailwind or vanilla CSS, the removal of Less, and fixes for accessibility and responsiveness. The focus was initially on styles, with plans to organise React functionality later. The prompt also suggested checking if dependencies needed modernising.

The instructions included specific design rules. Links should change colour and add underlines on hover or focus. Input boxes needed smaller border radii and cleaner labels. Containers required good wrapping and a max-width to prevent inputs from spanning the entire screen.

The author passed this to Claude Opus 4.8 and received a review from GPT-5.5. A significant amount of back-and-forth was needed to make decisions. Once a plan was agreed upon, the author hit “go” to let the app work on the project.

The result was not what was expected, and the author admitted the fault was their own.

Second attempt: Realising a branch already existed

The author remembered a previous attempt to fix the code. An old dev branch existed where parts of the project had already been modernised.

This was actually helpful. The new session was branching off main, but the current deployment used the partially updated version on dev. Some features the author had built for themselves needed to be included in the new changes. Instead of pulling the dev changes into main, the author applied the new styling changes to the dev branch to preserve existing functionality.

Before AI, this situation would have caused frustration. The author had spent time and tokens trying to get the project running with a plan they thought was decent. A simple request allowed them to switch gears and sessions. The GitHub Copilot app created a new session, closed the failed pull request, and ported the styling decisions to the changes being applied to the dev branch.

Third attempt: Finding old warnings

The author had a working branch and a pull request they were happy with. Testing revealed old warnings in the console.

References to findDOMNode and componentWillReceiveProps appeared. These functions had not been touched in years, but they were present in react-bootstrap.

The author opened Plan mode to decide if the library should be removed entirely or if existing components should just be upgraded. The prompt asked whether react-bootstrap should be replaced with a modern alternative or if the current components should be migrated.

The response provided a plan, discussed the options, and recommended replacing the library entirely.

Fourth attempt: Stacking sessions to avoid scope creep

The author needed to ensure changes were safe from existing work. However, replacing react-bootstrap felt like a large amount of scope creep for the current task. Agentic engineering often makes it hard to avoid this issue. Without writing all the code, there is a temptation to create massive pull requests that handle everything at once. This is a new form of procrastination.

Instead of a single mega pull request, the author broke the work into separate sessions. The prompt instructed the app to create a pull request for the existing work and then start a new session for the react-bootstrap replacement. This new session would branch off the existing work and be a separate pull request to merge into dev after the first one.

The GitHub Copilot app then created a pull request for all current changes off dev.

What it means

Users can now isolate specific tasks without losing context from previous AI work. This prevents the accumulation of massive, risky changes in a single commit. The workflow allows for safer iteration on legacy code by treating each modernisation step as a distinct, manageable unit.

Scroll to Top