Крок пайплайна тепер можна віддати тріажу: познач його «Коли тріаж вирішить», і для кожної задачі Codex прочитає, для чого цей крок, і вирішить, чи він потрібен. Для опечатки бізнес-аналітика не кличуть, для нового екрана кличуть дизайнера, а чат показує, які кроки пропущено і чому. Новий крок «Codex робить частину»: Codex пише частину змін, найчастіше дизайн, готовим патчем. Claude застосовує його, робить решту, а Codex перевіряє все разом. Claude може попросити такий патч і посеред роботи, коли ти просиш, щоб дизайн робив Codex.
Історія змін
Кожна версія — і що вона змінила.
Оновлення приходять у застосунок самі. Тут записано, що приніс кожне, від найновішого до першого публічного випуску.
1.15
ОстанняРедактор пайплайнів перевіряє пайплайн за правилами тієї Bulava, яка в тебе запущена. Після оновлення рушій замінюється лише тоді, коли ним ніхто не користується, і доти редактор питав старий: рольовий пайплайн, зібраний у 1.15, показував помилки, яких у ньому немає. А ще Bulava тепер сама повторює спробу оновити рушій і робить це, щойно його ніщо не тримає.
Дріт у редакторі пайплайнів тепер тягнеться з усієї точки. Вихідні точки сидять на краю кроку, і їхня зовнішня половина не відповідала, тож на меншому масштабі натискання на точку часто нічого не починало. Агенти тепер уміють і перетягувати в інших застосунках — провести дріт чи пересунути блок, — а дерево елементів, яке вони читають, показує, де кожен елемент на екрані.
Пайплайни тепер можна збирати з ролей. Кроки йдуть фазами: аналітик і тестувальник паралельно, потім два архітектори, які читають висновки обох, потім домовленість. Вона стає планом, за яким працює Claude і за яким Codex перевіряє роботу, разом із тест-кейсами. У кожного кроку свій промпт і своя модель. Познач крок обов'язковим, і якщо він не вдасться, повідомлення почекає, а не піде виконавцю без підготовки; чат скаже, на якому кроці зупинилось. Екран Пайплайнів більше не з'їжджає під заголовок вікна.
Браузером, у якому ти увійшов на сайти, тепер можуть користуватися кілька чатів одночасно, кожен у своїх вкладках. Bulava раз на кілька годин у фоні перевіряє входи, каже, коли якийсь злетів, і закриває браузер, коли він нікому не потрібен.
Видалення продукту спершу питає і його можна скасувати, а якщо додати ту саму теку знову, її чати повертаються. «Відкрити звіт» знаходить звіт, який перезібрали після виправлення. Чат, у якому ще працюють фонові команди, тримає свою теку, доки вони не скінчаться. Посилання для телефону веде на Wi-Fi, а не на мережу віртуальної машини. Вікно автоматизації вміщається, вікна відкриваються швидше, а Mac без інструментів командного рядка Apple чує про це, замість того щоб вважатися готовим.
1.14
Автоматизації тепер можуть працювати без git. Задача, що лише читає теку й користується сервісом — наприклад, переглянути сьогоднішні мітинги й додати важливе до твого списку задач — працює у власній теці, без репозиторія, без чекпоінта й без звіту, якщо ти його не просив. Чати таких автоматизацій тепер у списку кожного проєкту, згорнуті під ним, щоб не захаращувати, а нові чати — зверху.
Коли прогін завершується, що з ним зробити — влити зміни, позначити готовим, відхилити, прочитати звіт — тепер під останньою відповіддю, де ти це побачиш, і на Mac, і на телефоні, а не сховано в боковій панелі. Прогін, який ти влив сам, поза Bulava, більше не блокує завтрашній.
Екран готовності каже правду: коли чогось потрібного не надано, він пише «готова, з обмеженнями», а не «готова», і перевіряє знову, коли ти повертаєшся з Системних налаштувань. Проєкти показують свою іконку на телефоні. А оновлення тепер надійно несе з собою найновіший двигун — виправлення для серверних змін, які раніше їхали вимкненими.
1.13
У тижня тепер є віджети: на робочому столі Mac, на головному екрані й екрані блокування iPhone і на Android. Їх вісім, і кожен відповідає на одне питання: скільки агенти працювали без тебе, чим закінчились прогони, скільки тиждень коштував би за цінами API, коли саме вони працювали, скільки змінилось коду, скільки лишилось лімітів Claude і Codex із позначкою рівного темпу, що працює просто зараз, і весь тиждень одним екраном. Ліміти з цією позначкою є також унизу бічної панелі й на телефоні. Раз на тиждень Bulava надсилає авторові підсумок того, як нею користувались: діапазони, а не точні числа, без проєктів, шляхів і тексту. У Налаштуваннях → «Тиждень і віджети» видно, що саме в ньому, і там же його можна вимкнути.
Прогін тепер може поставити перед тобою кілька рішень одразу, поруч зі своїм звітом: з варіантами, власною порадою і місцем для коментаря, на Mac і на телефоні. Якщо відкрити їх знову, там уже стоїть те, що ти надіслав. На телефоні сторінку й питання розділяє один дотик, а кнопки, перемикачі й підтвердження там рідні для телефона, і кожне натискання відчутне. У Bulava є власний браузер, де ти один раз входиш на потрібні прогонам сайти. Google не пускає в браузер, яким керує агент, тож коли прогін доходить до сторінки входу, Bulava передає її тобі у звичайному вікні. Ще прогін може показати тобі сторінку чи файл на телефоні через домашній Wi-Fi, а Mac сам скаже, коли на тебе щось чекає, навіть якщо Bulava у фоні.
Кожен чат тепер знає, що таке Bulava і які її інструменти йому доступні, і створює автоматизацію, коли ти просиш, зокрема й чати, які веде Codex. Виправлено: відповідь, дана саме тоді, коли прогін перестав її чекати, усе одно до нього доходить; порожня тека .git, яку лишив старт, більше не блокує теку як зламану; а злиття в main, яке git не може зробити сам, іде в чат копії з усім, що потрібно, щоб його завершити.
1.12
Коли щось ламається і повідомлення не може піти, Bulava тепер пробує виправити це сама: Codex шукає причину в теці проєкту, виправляє її там, і повідомлення йде знову. Повторно воно йде лише тоді, коли точно не дійшло, тож нічого не виконується двічі. Про кожен результат надсилається анонімний звіт: код помилки Bulava й текст помилки без імен, шляхів і ключів, нічого про твої проєкти чи чати. Обидва можна вимкнути в Налаштуваннях → Діагностика.
Помилки тепер з'являються картками в правому верхньому куті: повний текст, деталі, які можна скопіювати, і кнопка, що виправляє. «Коміт від твого імені» отримує назву від Claude, який заодно вказує, що краще лишити поза комітом, а файл, схожий на ключ, зупиняє коміт ще до того, як його побачить будь-яка модель.
Виправлено: встановлення движка могло днями відмовлятися через процеси, які лишили тестові прогони; тепер Bulava рахує лише свої й сама зупиняє свої залишки. Рев'ю, зупинене блокером, більше не показується як таке, що ще працює, а чат пише, чому роботу зупинено. Питання, яке Claude Code ставить на власному екрані під час старту чату, тепер приходить у чат і на телефон, а не скасовує старт. Коли виходить новіший Codex, екран готовності пропонує його оновити: так у меню потрапляють нові моделі, як-от GPT-6.1 Sol.
1.11
Пайплайни. Те, що проходить повідомлення до виконавця і після нього, тепер можна побачити й змінити: бібліотека пайплайнів, полотно, на якому їх редагують, і чат, що пропонує зміни, які ти переглядаєш перед тим, як застосувати. Пайплайном можна поділитися через GitHub і взяти чужий звідти; імпортований спершу перевіряється й приходить вимкненим. Кожен чат і кожна автоматизація можуть мати свій.
Поки запуск працює, смужка під чатом і розділ угорі правої панелі показують його кроки так, як їх записує рушій. Звіт дослідження тепер має власне рев'ю: його приймають, повертають із зауваженнями або віддають тобі.
Виправлено: у довгому чаті вся стрічка могла зникнути, поки Bulava працювала, і поверталась лише після прокрутки рукою. Автоматизації працюють у власній теці, яка лишається між запусками, питають, чого їм бракує, ще поки ти їх налаштовуєш, і більше не чекають уночі на дозвіл, який нікому дати. Запити дозволів, які macOS показує для Bulava, і кілька десятків повідомлень, що були лише англійською чи лише українською, тепер є всіма трьома мовами.
1.10
Зупинка більше не лишає наступні повідомлення в черзі без відповіді, а «Зупинити і редагувати» повертає текст у поле. Довгий чат прокручується плавно, диктовка не підвішує вікно, а відповідь виділяється й копіюється цілком, разом із таблицями. Модель і глибину тепер вибирають для кожного чату окремо, а з телефона можна диктувати: розпізнає Mac.
1.9
Якщо звичний порт для телефона на Mac уже зайнятий іншою програмою, Bulava тепер бере вільний, і телефон під'єднується як слід. Раніше зв'язок у такому разі тихо не відкривався, а код на екрані вів у нікуди.
Булава тепер є на телефоні: iPhone — бета через TestFlight, Android — файл із bulava.app/mobile. Натисни значок телефона на панелі інструментів і відскануй код: питання, звіти й чати приходять на телефон, відповідаєш звідти, а Mac працює далі. Ще в цій версії: сесія, яка несподівано зупинилась посеред роботи (скажімо, поки чекала на Codex), піднімається знову сама; PDF звіту зберігає всі картинки, навіть якщо звіт не прогортали; а Bulava відповідає тією мовою, якою ти до неї пишеш.
1.8
Нова версія Булави, відкрита поверх старої, тепер сама її замінює. Раніше вона тихо закривалася, і на екрані лишалася стара копія без нових кнопок. Якщо стара копія натрапить на питання, на яке в неї немає кнопок, вона скаже звичайними словами, що її треба оновити, замість команд для термінала. А коли на незакомічених змінах зупинилось кілька повідомлень, після відповіді йдуть усі, по черзі.
Якщо чат почався з незакоміченими змінами, які ти залишив як є, після перезапуску сесії перевірка все одно рахує лише роботу виконавця, а не твої правки. Файли, які git ігнорував на початку роботи, більше не видаляються, навіть якщо виконавець змінив .gitignore.
Нічна зміна більше не комітить твої незакомічені зміни мовчки. Якщо в теці є незбережена робота, Булава показує список файлів і питає, що з нею робити: почати, не чіпаючи її (про всяк випадок лишається знімок, з якого все відновлюється), закомітити від твого імені з твоїм повідомленням або розібратися самому — тоді повідомлення піде, щойно тека стане чистою. Проєкти з власними MCP-серверами (.mcp.json) більше не зависають на старті з порадою перевстановити хуки: Булава називає ці сервери й питає, вмикати їх чи ні. А перший чат нового користувача більше не застрягає на екрані вибору теми Claude Code, якого у фоні ніхто не бачить.
Чати тепер можна архівувати. Перед архівуванням Булава питає підтвердження, а архівовані чати кожного продукту лежать у групі «Архів» у бічній панелі. Такий чат відкривається лише для читання: на місці поля для повідомлення стоїть кнопка «Повернути з архіву». ⌘K теж відкриває його для читання і більше не повертає з архіву непомітно. Цю функцію зробив @effeto. Ще в цій версії: Булава помічає Claude, який завис, коли в черзі чекає повідомлення; тести, що падали ще до твоєї зміни, більше не зараховуються їй як провал; результати перевірки готовності зберігаються після перезапуску.
Виправлення до відновлення після зависання Claude. Коли перезапуски не допомагали, те саме непередане повідомлення в черзі щоразу давало ще одну «останню» спробу, і якщо перезапуск не міг вдатися взагалі, Булава перезапускала Claude знову і знову. Тепер кожне твоє повідомлення дає рівно одну додаткову спробу. Потім робота чекає на тебе, а в чаті видно, що Claude завис і перезапуск не допоміг.
Головне вікно Булави тепер завжди одне. Якщо закрити вікно, а тоді кілька разів натиснути «Відкрити Bulava», закрите вікно могло з'явитися знову поруч із новим. Тепер повертається те саме вікно — і з меню біля годинника, і з Dock. Розмір вікна та ширина бічної панелі, які ти налаштував, після оновлення лишаються такими самими.
Виправлення до 1.8.1. Якщо Claude завис і перезапуски не допомогли, Булава більше не прибирає таку роботу разом із задачею через чотири години простою. Вона чекає на твоє наступне повідомлення, і саме воно запускає Claude ще раз у тій самій розмові. Спроби перезапуску більше не згоряють, поки в розмову передається інше повідомлення. «Відкрити Bulava» відкриває рівно одне вікно, навіть якщо вікно було закрите, а ти натиснув двічі поспіль.
Нові моделі тепер у меню. Серед моделей Claude з'явився Opus 5.5: свіжий Claude Code почав зберігати список моделей в іншому файлі й в іншому форматі, і Булава його просто не бачила. Серед моделей Codex з'явилися GPT-6 Sol і GPT-6 Luna. Якщо на Mac стоять дві копії Codex CLI, Булава тепер запускає новішу і бере список моделей саме з неї. «Відкрити Bulava» в меню біля годинника показує вікно, яке вже є, а не додає ще одне, кожне з власною копією всієї роботи застосунку. І Claude більше не губить задачу, якщо завис на півдорозі: коли хід стоїть десять хвилин без жодного руху, Булава перезапускає Claude у тій самій розмові й просить продовжити, а в чаті в цей час це видно.
Дві нові можливості цього випуску приніс Демʼян Юшин. У відкритій розмові тепер працює пошук: ⌘F піднімає панель над стрічкою, як у браузері, і каже, скільки разів фраза тут зустрічається; ⌘G і ⇧⌘G ходять між згадками, а підсвічується сама фраза там, де вона стоїть, а не картка цілком. Колишній ⌘K тепер зветься «Перейти…»: він веде в інше місце. Друга — Dev Learning Mode: увімкни його в Налаштуваннях, і під завершеним результатом зʼявиться кнопка «Поясни, що сталося». Пояснення нічого не змінює й саме ніколи не запускається; скажи, хто ти за фахом, і воно буде написане через те, що ти вже знаєш. І Codex більше не спиняється через українську мову: текст для нього різався по байтах, часом посеред літери, і CLI відхиляв такий виклик ще до початку сесії.
1.7
Підключити теку і дозволити її змінювати — тепер два різні рішення. Bulava більше не створює git сама: у теці з відео чи документами він нікому не потрібен, тож вона зупиняється і питає — кнопкою в чаті, а не командою в терміналі. Тека, всередині якої лежать репозиторії, підключається як набір цих репозиторіїв. Bare-сховища й пошкоджені .git більше не виглядають як звичайні файли, а сканер тепер один на застосунок і рушій, тож вони не можуть показувати різне.
Пʼять швидких випусків за один день, і кожен закривав прогалину в тому самому виправленні. Тека, всередині якої лежать окремі репозиторії, більше не стає одним проєктом: Bulava підключає кожен репозиторій сама, як ви додали б їх руками. Раніше вона робила git поверх усієї теки — на робочому просторі з пʼятнадцяти чекаутів це означало пів гігабайта зайвих обʼєктів, секрети в індексі й нескінченне «Connecting to Night Shift…». Якщо теку не вдалося оглянути до кінця, git у ній теж не зʼявиться. Робота, зроблена в сусідньому підключеному репозиторії, більше не губиться, навіть якщо в ньому ще немає жодного коміту. А старт, який відмовляє, тепер каже чому. Дякуємо Демʼяну Юшину за баг-репорт.
Claude знову може спитати Codex з будь-якої дозволеної теки, а коли Codex мовчить, застосунок каже чому: таймаут, збій чи злетілий вхід замість «код 1». Заявлений результат більше не вдає успіх, коли нічого не записав.
Модель більше не обривають посеред роздумів. Раніше на кожну позицію стояв фіксований годинник, і та, якій бракувало секунди, поверталась порожньою, бо відповідь друкується в кінці. Тепер Булава читає події обох моделей по ходу роботи й зупиняє виклик лише тоді, коли він справді замовк: на максимальному ефорті модель думає стільки, скільки потрібно. Коли виклик усе ж зупинено, сказано чому.
Коли позиції однієї з двох моделей немає, Булава тепер каже чому: не встигла за відведений час, зупинилась з помилкою, нічого не повернула або повернула половину — а половина позиції не позиція. Раніше стояло просто «Позиції Claude немає», і це читалось як збій застосунку.
Запис екрана не працював на жодному Mac, крім того, де Булаву пишуть: у файлі рекордера був рядок, який розуміє тільки новіший Python, ніж той, що стоїть у macOS, тож він навіть не запускався. Виправлено, і тепер кожен реліз перевіряється саме тим Python, який є в системі, а не тим, що випадково стоїть першим у розробника.
Ліміти тепер використовуються до кінця. Булава більше не тримає запас про всяк випадок — ні останні відсотки пʼятигодинного вікна, ні три відсотки тижневого, — тож роботу спиняє тільки справжня відмова провайдера. Перевірку результату теж більше не пропускаємо заради економії квоти: перевірена ніч варта більше за зекономлені відсотки. І сторінка завантаження перестала обіцяти памʼять, якої в рушії давно немає.
Codex більше не вважається недоступним, коли в нього ще є квота: тижневе вікно має власний поріг, і 91% тижня з вільною сесією — це робочий Codex, а не мовчання на пʼять днів. Коли ліміт справді вичерпано, Булава каже, якого дня він повернеться, а не лише о котрій годині. І нова розмова в проєкті більше не впирається в стару роботу, до якої ніхто не повернеться: прогін, що нічого не робить і нічого не чекає, прибирається, а той, що тримає питання чи паузу, — ні.
Якщо рушій треба замінити, а якась робота його тримає, екран готовності більше не заводить у глухий кут: він називає цю роботу ще до натискання і пропонує зупинити саме її та одразу встановити. Раніше кнопка просто відмовляла, а зупинка роботи з іншого екрана лишала відкритою термінальну сесію — і стіна не зникала, хоч ти й зробив усе, що вона просила.
Робота більше не спиняється через власний рядок статусу: Булава приймала «(reset 01:40)», який сама ж і малює, за вичерпаний ліміт, і черга ставала. Поки обидві моделі читають повідомлення, видно, хто саме ще читає і скільки це вже триває. Прочитане Codex більше не лишається у файлі, який ніхто не відкриває, — воно в чаті. А картки «Codex відповів» показують саме відповідь, а не довідку CLI чи помилку аргументів.
1.6
Якщо застосунок закрити просто під час встановлення, копіювання ще якийсь час триває саме по собі — тепер наступний запуск це бачить і не починає друге копіювання поверх першого. А замок, що лишився від 1.6.1 чи 1.6.2, більше не блокує встановлення назавжди.
Два встановлення водночас більше не можуть обидва вважати, що вони одні: замок тепер тримає система, і він звільняється сам, коли процес, який його тримав, зникає. А якщо старий файл версії не вдається прибрати, копіювання не починається зовсім — краще не почати, ніж лишити половину.
Перше встановлення на машині, де Булави ще не було, відповідало «уже триває інше встановлення» і не відбувалося — ні саме, ні по кнопці. Виправлено. Якщо ти правив /night чи інші команди своєю рукою, установник тепер лишає копію поруч, перш ніж покласти свою. А встановлення, яке обірвалося посередині копіювання, більше не лишає на диску номер версії, якої там немає.
Після оновлення Булава сама ставить свій рушій: червоної стіни з проханням натиснути кнопку більше немає. Якщо саме зараз іде робота, оновлення рушія почекає, поки вона завершиться, і скаже, чого чекає. А встановлення, яке обірвалося посередині, більше не вдає, що завершилося: наступний запуск спробує ще раз.
Уточнення в тій самій розмові більше не коштує як нова задача: «закоміть і випусти» тепер читається за секунди, а не за хвилини. Коли в однієї з двох моделей закінчується вікно, робота не спиняється — Булава працює далі й прямо каже, кого саме зараз бракує. Ліміт, який уже скинувся, помічається одразу: повідомлення більше не лежать недоторканими годину після того, як Mac прокинувся. У чаті видно, що насправді відбувається — черга, очікування ліміту чи справжнє читання. І сторінка завантаження нарешті називає правильну macOS.
1.5
Булава більше не веде власної памʼяті. Екран «Памʼять» прибрано, і застосунок більше не домішує в задачі правила, зібрані з твоїх минулих рішень: довготривалі правила тепер читаються там, де й лежать, — у CLAUDE.md, AGENTS.md і документації самого проєкту. Записане раніше лишилось на диску недоторканим.
1.4
Застосунок називається Bulava скрізь — в образі, в меню, у списку процесів. Екран готовності дає кнопку на кожну стіну: встановити Codex чи gh, увійти в Claude. Коли Claude просить увійти знову, чат каже це своїми словами замість того, щоб пропонувати набрати команду в терміналі, якого немає. Прогін у новій теці більше не звітує, що нічого не змінив. Shift+Return переносить рядок.
1.3
Ліміти Codex знову в лівій панелі. Тепер їх питають у самого Codex, а не вичитують з його логів, — це перестало працювати, коли файли його сесій виросли. Працювати лише з Claude або лише з Codex поки що не пропонується: кожне повідомлення йде до Claude, а Codex його перевіряє.
1.2
Панель із моделлю й глибиною тепер відкривається з-під слів, а не з краю кнопки, підпис глибини більше не обрізається, а повзунок не впирається в краї доріжки.
Модель тепер вибирають у системному спливному меню — лише назви, — а повзунок глибини більше не прилипає до кінця доріжки.
Поле вводу тепер каже, на чому піде наступне повідомлення: який рушій, яка модель, яка глибина. Змінюється це в одній панелі з повзунком, а не в меню з меню. Нові моделі Codex зʼявляються самі, разом із глибинами, які приймають лише вони. Диктовка як слід питає дозвіл на мікрофон і розуміє твою мову. Новий екран «Скіли» показує, що проєкту варто використовувати і що він використав насправді. Слова самого Codex видно в чаті, повідомлення можна забрати й дописати, а коли в Codex скінчився тиждень, відповідає Claude. Виконавці можуть керувати іншими програмами через Bulava з одним дозволом, даним один раз.
1.1
Bulava оновлюється сама. Раз на день вона перевіряє підписану стрічку оновлень, а якщо саме йде робота, лишає тихий рядок у бічній панелі замість того, щоб переривати. Рушій тепер їде всередині застосунку й ставить себе сам під час першого запуску, разом із командами night-shift для термінала.
1.0
Перший публічний випуск. Claude і Codex працюють у парі: Claude робить, Codex перевіряє й повертає на доробку. Нічна зміна, памʼять про твої рішення, оновлення в один клік.