OpenAI перевела весь свой монорепозиторий на Pando — собственный серверный бэкенд для Git, который принимает push в разные ветки параллельно и раздаёт одни и те же данные тысячам клиентов из кеша. Об этом компания рассказала в инженерном блоге 2 ноября 2026 года. По данным OpenAI, медианная задержка push сократилась почти на 80%, то есть почти в 5 раз, а Pando отдаёт почти петабайт Git-данных в сутки. Инженеры и агенты Codex при этом работают с Git и привычными командами.Для команд, которые активно пишут код агентами, это подробный рецепт масштабирования Git без смены инструмента. В середине октября Anthropic решила ту же проблему иначе и перевела свой монорепозиторий с Git на собственную систему Scion. OpenAI сохранила протокол Git и отправляет исправления клиента в основной проект, так что часть улучшений со временем окажется в обычном git на машине любого разработчика.Пост написали Аарон Фрил, Тейлор Блау и Тед Найман из технического штата OpenAI. Найман, который анонсировал работу в X, отвечает в OpenAI за код, Git и инфраструктуру, а раньше был CTO GitHub. В анонсе он подчеркнул, что совместимость с Git сохранена.Pando обслуживает всю разработку в монорепозитории OpenAI, рабочий трафик он принимает с апреля 2026 года; медианная задержка push упала почти на 80%, выросла надёжность слияний.Система отдаёт почти 1 ПБ Git-данных в сутки на нескольких ядрах CPU; рекорд — больше 57 ТБ за час, из них больше 99% байт из локального кеша.Ключевые решения: причинная согласованность вместо единого снимка всех веток и переиспользование однажды полученных packfile вместо сборки отдельного пакета для каждого клиента.Pando написан на Rust с помощью Codex за 10 недель: ядро спроектировал один инженер, реализовали команды агентов, развернули несколько инженеров.Совместимость с клиентом и протоколом Git сохранена; доработки packfile-uri и загрузки пакетов OpenAI отправляет в основной проект Git, часть уже принята.Почему OpenAI понадобился новый сервер Git?Потому что Codex умножил число параллельных изменений, и прежняя инфраструктура перестала справляться. По словам авторов, у одного инженера теперь одновременно несколько изменений ждут CI, и каждый push запускает несколько задач, которые скачивают один и тот же коммит.Примерно с конца 2025 года системы вокруг монорепозитория начали отставать: fetch и push шли медленно, слияния срывались, а надёжность временами падала ниже 90%. Похожую картину описывал GitHub, который из-за агентного кода сменил план десятикратного роста мощностей на ориентир в 30 раз. OpenAI сочла, что предел у способа обслуживания репозитория, и переписала серверную часть, оставив сам Git.Чем не подошли классические схемы репликации?OpenAI смоделировала два распространённых подхода. В схеме с трёхфазным коммитом (3PC, протокол согласования записи между узлами) каждая реплика хранит полную копию репозитория, а обновление ветки публикуется только после согласия большинства реплик. Клиенты видят единую картину, но каждый push требует нескольких сетевых раундов, а скорость дисков реплик оказывается на пути каждой записи.Во второй схеме обновления упорядочивает общий журнал (write-ahead log, WAL) в объектном хранилище: сервер загружает packfile, дописывает запись в общий манифест и атомарно заменяет его операцией compare-and-swap. Пакеты грузятся параллельно, но даже push в несвязанные ветки конкурируют за один манифест, а реплики должны успевать индексировать каждый пакет.В симуляции на 1000 клиентов, каждый из которых пушит в свою ветку, у 3PC под нагрузкой растёт задержка записи, у WAL — задержка чтения. Авторы оговаривают: это синтетические учебные модели, продакшен-бенчмарком они не являются. При этом они утверждают, что и в симуляции, и на реальном монорепозитории Pando выдерживает многие тысячи одновременно пушащих клиентов без деградации.Как Pando ускоряет push в тысячи веток одновременно?Pando отказывается от двух вещей, которые обычные Git-серверы считают обязательными: от согласованного снимка всех ссылок на один момент времени и от уникального пакета для каждого клиента. Вместо первого используется причинная согласованность (causal consistency): обновления одной ветки строго упорядочены, а разные ветки живут независимо. Клиенты конфликтуют, только если одновременно пушат в одну и ту же ссылку.Когда клиент пушит, Pando проверяет входящий packfile за один проход, параллельно потоком записывая его в объектное хранилище как неизменяемый объект, и ничего не распаковывает в локальный репозиторий. Затем одной транзакцией по нескольким ключам в хранилище метаданных записывается «версия ссылки»: новая вершина ветки, ссылка на пакет и зависимости, относительно которых пакет собирался. Так клиент сразу видит собственную запись (read-your-own-write), а операция требует постоянного числа чтений и записей метаданных, O(1), независимо от размера push. Единственный спорный ключ — указатель ветки, его защищает атомарная операция в духе compare-and-swap.Обычный сервер Git перед push показывает клиенту все свои ветки, чтобы тот не отправлял уже известные объекты. При миллионах веток одно такое объявление ссылок, по данным OpenAI, может превысить 100 МиБ. Pando по умолчанию объявляет только основную ветку (trunk). Пакет получается чуть больше, зато его можно отдать любому, у кого уже есть trunk: медианный пакет в монорепозитории OpenAI меньше 20 КиБ, 99-й перцентиль — меньше 3 МиБ. Цена решения в том, что при повторных push в одну ветку или ветке поверх другой ветки клиент заново отправляет всё, чего нет в trunk.Чем больше веток объявляет сервер, тем меньше пакет при push; почти весь выигрыш даёт объявление одной основной ветки. Изображение: OpenAIКак Pando отдаёт данные на скорости сети?За счёт того, что при fetch сервер ничего не пересчитывает. Обычный Git-сервер вычисляет разницу между объектами, которые есть у клиента (haves) и нужны ему (wants), и сжимает её; такие ответы дорого считать и почти невозможно кешировать. Pando по записям, сделанным при push, сопоставляет haves и wants с версиями ссылок и выбирает уже лежащие в хранилище пакеты, которые покрывают нужные объекты. Число чтений метаданных растёт логарифмически от отставания клиента. Клиент иногда скачивает лишние объекты, зато одни и те же байты уходят многим клиентам почти без вычислений.Push в trunk добавляет инкрементальный пакет; push в тематическую ветку повторно включает её ранние коммиты, чтобы клиент с объявленной версией trunk скачал ветку одним пакетом. Изображение: OpenAIДоставку обеспечивает малоизвестная возможность протокола Git — packfile-uri. Протокол разрешает отдать в HTTP-ответе только один packfile, а packfile-uri позволяет вернуть ссылки на дополнительные пакеты. Pando отдаёт в самом ответе пустой пакет, а данные клиент забирает через сервис Express с региональными кешами. Запросы распределяются консистентным хешированием, доля попаданий в кеш больше 99%. По данным OpenAI, на стандартных облачных виртуальных машинах clone и fetch полностью загружают каналы 10 Гбит/с.Чтобы клиенту не приходилось скачивать десятки тысяч мелких пакетов за день, Pando фоном объединяет их по схеме, похожей на уплотнение в LSM-деревьях. Каждый push даёт пакет уровня L0, фоновые воркеры собирают их в покрытия следующих уровней с геометрическим ростом; в монорепозитории OpenAI сейчас используются уровни до L4. Покрытия одновременно улучшают сжатие и работают как список с пропусками (skip list) по версиям ссылок, поэтому подбор пакетов для fetch растёт сублинейно от отставания клиента. Пакеты всех уровней хранятся и используются, сборки мусора нет.Что OpenAI вернула в основной проект Git?Поскольку пакеты отдаются клиентам готовыми, скорость скачивания и индексации стала критичной. В этой работе OpenAI нашла пограничные случаи при параллельных загрузках, при очистке после прерванной передачи и при возобновлении уже завершённых загрузок. Компания исправила эти пути, добавила проверки при приёме существующего пакета и трассировку загрузок packfile-uri с подсчётом байт, чтобы видеть, тратит ли медленный fetch время на сборку пакета или на передачу. Эти изменения и доработки packfile-uri OpenAI отправила в основной проект Git.В собственной сборке Git клиент умеет скачивать и индексировать независимые пакеты параллельно. Ещё одно новшество — «явные haves» (explicit haves): сервер отдельно сообщает вершину ветки и историю, которую клиент вправе не включать в пакет. На Pando это позволяет пушить с --force-with-lease, проверяя, что ветку никто не сдвинул, и при этом собирать пакет только относительно trunk. По словам авторов, часть доработок уже принята в upstream, остальные лежат в публичном репозитории, а ход работы виден в публичном трекере патчей.Как Pando построили за 10 недель?От старта до продакшена прошло 10 недель, Pando обслуживает реальный трафик с апреля 2026 года. Ядро спроектировал один инженер, реализовали команды агентов Codex, развернули несколько инженеров. Проект написан на Rust без унаследованных зависимостей; агенты проверяли изменения набором тестов на соответствие поведению Git, а гонки искали детерминированным симуляционным тестированием.С помощью GPT-6 Astra агенты написали на Lean и TLA+ формальную «теорию Pando», по которой находили и исправляли ошибки реализации и доказывали свойства системы. Сессии агентов работали сотни часов над пограничными случаями, а другие агенты круглосуточно атакуют Git и Pando в режиме red team.Переезд прошёл без простоя. Сначала Pando поставили прокси на чтение и запись перед старой системой, так что обе оставались синхронными, а трафик переводили по частям. Разработчикам раздали публичную сборку Git от OpenAI, в том числе в десктопном приложении ChatGPT, и перенесли сотни интеграций со старыми API и вебхуками. Среду разработки можно было перевести просьбой к Codex: для этого написали скиллы.Чем подход OpenAI отличается от Scion у Anthropic?Anthropic в посте от 13 октября 2026 года рассказала, что число слияний в её монорепозитории выросло примерно с 2500 в день в мае до более чем 30 000 в день в сентябре. История основной ветки весит почти 100 ГБ, а CI делает около 25 млн checkout в сутки. Команда из семи человек за пять месяцев построила свою систему контроля версий Scion и перевела на неё монорепозиторий: коммиты, слияния и rebase выполняются на сервере, а packfile нет вовсе. По данным Anthropic, инфраструктура стала в 200 раз меньше по CPU и памяти, чем прежние зеркала Git.OpenAI пошла другим путём: протокол и клиент Git остались, изменился только сервер. Поэтому доработки могут дойти до всех пользователей git. Сама Anthropic в том же посте пишет, что Scion не подходит как замена Git для общего использования, и предлагает перенести удачные идеи в Git-серверы: сервер не обязан работать так же, как клиент. По нашей оценке, Pando и есть такой сервер.Что это значит для команд с агентным кодингом?Пока ничего не нужно делать: Pando недоступен вне OpenAI. Компания пишет, что изучает способы поделиться технологией с пользователями, но сроков и формата нет. По нашей оценке, три идеи из поста применимы и без Pando.Узкое место агентного кодинга часто в инфраструктуре вокруг кода: число push, fetch из CI и сред агентов растёт кратно. Трафик clone из CI стоит считать заранее: по данным Business Insider, GitHub привлекал мощности AWS из-за всплеска ИИ-кода.Схема Pando рассчитана на trunk-based разработку: короткие ветки поверх одной основной. Длинные стеки веток друг на друге в ней дороже, так что модель ветвления стоит пересмотреть заранее (сравнение подходов — в нашем разборе Git Flow, GitHub Flow и trunk-based).Изменения в packfile-uri и загрузке пакетов будут приходить в обычный git постепенно. Следить за ними можно в публичном трекере патчей OpenAI и в списке рассылки Git.Ограничения авторы называют сами. Читатель нескольких веток не может считать, что видит их состояние на один момент времени: при одном clone ветка foo может оказаться в версии 1, а bar в версии 2, а у соседнего клиента наоборот. По словам OpenAI, людям и агентам на практике важен только порядок обновлений одной ветки, но инструменты, которые сравнивают несколько веток как единый снимок, на таком сервере надо проверять. Цифры в посте — собственные замеры OpenAI и результаты её симуляции, независимой проверки нет.Источники: OpenAI: Scaling Git at OpenAI, Тед Найман в X, OpenAI: публичная сборка Git, Anthropic: Redesigning source control at AnthropicИзображение на обложке: OpenAI