All AI briefings
AI development4 min read

OpenAI plans to acquire Pierre, the team behind Codex’s code-review tools

Pierre’s Trees and Diffs libraries already appear in Codex. Alongside the acquisition news, a small araNET test shows how two passing changes can combine into a broken result.

By araNET Studio
Two branches pass separately and merge without conflicts, but the combined receipt test fails. Updating the renamed field makes all three tests pass.

AI briefing. Announcement: Nov 4, 2026 · Reviewed: Nov 4, 2026.

In this article

Introduction

OpenAI announced on November 4 that it plans to acquire Pierre Computer Company. Pierre’s Trees and Diffs libraries already provide file navigation and change review in the Codex app. Pierre also makes Code Storage, a Git-based service for storing code and its history. OpenAI’s announcement

For a team reviewing AI-assisted changes, the useful question is what happens when separate pieces of work meet. We ran a small example to show one failure that a clean merge can miss.

Two passing branches, one broken receipt

We created a synthetic JavaScript project with a user record and a greeting. The user’s name was stored in a field called name. Two branches started from that same version:

  • Rename the field: change name to displayName, update the existing greeting and add a test for the new field.
  • Add a receipt: introduce a receipt function that reads the original name field, with a test expecting the text “For Taylor”.

Each branch passed its own tests. The receipt branch had no knowledge of the rename; the rename branch had no receipt to update.

Git then merged them without a conflict. The receipt branch added new files, so there were no competing edits to reconcile in those files. Git’s merge documentation explains how changes are combined and how conflicting paths are recorded. Our next step was a separate run of the application tests. Git merge documentation

  • Field rename on its own: 2 tests passed, 0 failed.
  • New receipt on its own: 2 tests passed, 0 failed.
  • Combined merge: 2 tests passed, 1 failed.
  • Receipt updated to the new field: 3 tests passed, 0 failed.

In the combined version, the user record returned this:

js
return { displayName: 'Taylor' };

The new receipt still read this:

js
return `For ${getUser().name}`;

The result was For undefined instead of For Taylor. Updating that reader to getUser().displayName made all three tests pass. The merge command had exited successfully, with no unresolved entries in Git’s index, before the failed application test exposed the mismatch.

Review the connection between changes

On a website, the same kind of mismatch could occur between a checkout form and an order summary, or between an account record and an email template. Those are possible applications of the example, not failures we observed in a customer system.

For a field rename, the review should follow both ends: the code producing the value and the code reading it. Search for the old field, inspect the consumers and run a check that exercises the combined behavior. Here, an assertion against the finished receipt caught the problem; the test of the user record alone could not.

When separate coding tasks are underway, keep the test result attached to the version actually tested. “Both branches passed” accurately described our two earlier runs. It did not describe the merged version. For this example, the useful acceptance check was the text the receipt produced after both changes were present.

We ran this fixture on November 4 using Git 2.53.0 and Node.js 22.22.3, with Node’s built-in test runner and no installed dependencies. We authored both branches to demonstrate the mismatch. This was a Git integration example, not an evaluation of Pierre’s libraries, Codex or a production application. Three passing tests cover the three assertions in this small fixture; they do not establish that an arbitrary application is ready to ship.

Availability and limits

The acquisition remains subject to closing conditions and regulatory approvals. OpenAI says Pierre’s open-source projects will remain open-source and Code Storage customers can continue after closing. The announcement gives no delivery date or pricing for the planned Codex additions. Acquisition status and product plans

Developers can find the existing Trees and Diffs projects through Pierre’s open-source directory. Download the original reproduction script and run python3 clean-merge-example.py in an empty working folder with Git, Node and Python available. It creates a new local repository and retains the branch, merge and test logs. It uses no provider account or installed dependencies.

Original sources

Read next

Explore the blog