Історія змін

Кожна версія — і що вона змінила.

Оновлення приходять у застосунок самі. Тут записано, що приніс кожне, від найновішого до першого публічного випуску.

1.14

Остання
1.14

Автоматизації тепер можуть працювати без git. Задача, що лише читає теку й користується сервісом — наприклад, переглянути сьогоднішні мітинги й додати важливе до твого списку задач — працює у власній теці, без репозиторія, без чекпоінта й без звіту, якщо ти його не просив. Чати таких автоматизацій тепер у списку кожного проєкту, згорнуті під ним, щоб не захаращувати, а нові чати — зверху.

Коли прогін завершується, що з ним зробити — влити зміни, позначити готовим, відхилити, прочитати звіт — тепер під останньою відповіддю, де ти це побачиш, і на Mac, і на телефоні, а не сховано в боковій панелі. Прогін, який ти влив сам, поза Bulava, більше не блокує завтрашній.

Екран готовності каже правду: коли чогось потрібного не надано, він пише «готова, з обмеженнями», а не «готова», і перевіряє знову, коли ти повертаєшся з Системних налаштувань. Проєкти показують свою іконку на телефоні. А оновлення тепер надійно несе з собою найновіший двигун — виправлення для серверних змін, які раніше їхали вимкненими.

1.13

1.13

У тижня тепер є віджети: на робочому столі Mac, на головному екрані й екрані блокування iPhone і на Android. Їх вісім, і кожен відповідає на одне питання: скільки агенти працювали без тебе, чим закінчились прогони, скільки тиждень коштував би за цінами API, коли саме вони працювали, скільки змінилось коду, скільки лишилось лімітів Claude і Codex із позначкою рівного темпу, що працює просто зараз, і весь тиждень одним екраном. Ліміти з цією позначкою є також унизу бічної панелі й на телефоні. Раз на тиждень Bulava надсилає авторові підсумок того, як нею користувались: діапазони, а не точні числа, без проєктів, шляхів і тексту. У Налаштуваннях → «Тиждень і віджети» видно, що саме в ньому, і там же його можна вимкнути.

Прогін тепер може поставити перед тобою кілька рішень одразу, поруч зі своїм звітом: з варіантами, власною порадою і місцем для коментаря, на Mac і на телефоні. Якщо відкрити їх знову, там уже стоїть те, що ти надіслав. На телефоні сторінку й питання розділяє один дотик, а кнопки, перемикачі й підтвердження там рідні для телефона, і кожне натискання відчутне. У Bulava є власний браузер, де ти один раз входиш на потрібні прогонам сайти. Google не пускає в браузер, яким керує агент, тож коли прогін доходить до сторінки входу, Bulava передає її тобі у звичайному вікні. Ще прогін може показати тобі сторінку чи файл на телефоні через домашній Wi-Fi, а Mac сам скаже, коли на тебе щось чекає, навіть якщо Bulava у фоні.

Кожен чат тепер знає, що таке Bulava і які її інструменти йому доступні, і створює автоматизацію, коли ти просиш, зокрема й чати, які веде Codex. Виправлено: відповідь, дана саме тоді, коли прогін перестав її чекати, усе одно до нього доходить; порожня тека .git, яку лишив старт, більше не блокує теку як зламану; а злиття в main, яке git не може зробити сам, іде в чат копії з усім, що потрібно, щоб його завершити.

1.12

1.12

Коли щось ламається і повідомлення не може піти, Bulava тепер пробує виправити це сама: Codex шукає причину в теці проєкту, виправляє її там, і повідомлення йде знову. Повторно воно йде лише тоді, коли точно не дійшло, тож нічого не виконується двічі. Про кожен результат надсилається анонімний звіт: код помилки Bulava й текст помилки без імен, шляхів і ключів, нічого про твої проєкти чи чати. Обидва можна вимкнути в Налаштуваннях → Діагностика.

Помилки тепер з'являються картками в правому верхньому куті: повний текст, деталі, які можна скопіювати, і кнопка, що виправляє. «Коміт від твого імені» отримує назву від Claude, який заодно вказує, що краще лишити поза комітом, а файл, схожий на ключ, зупиняє коміт ще до того, як його побачить будь-яка модель.

Виправлено: встановлення движка могло днями відмовлятися через процеси, які лишили тестові прогони; тепер Bulava рахує лише свої й сама зупиняє свої залишки. Рев'ю, зупинене блокером, більше не показується як таке, що ще працює, а чат пише, чому роботу зупинено. Питання, яке Claude Code ставить на власному екрані під час старту чату, тепер приходить у чат і на телефон, а не скасовує старт. Коли виходить новіший Codex, екран готовності пропонує його оновити: так у меню потрапляють нові моделі, як-от GPT-6.1 Sol.

1.11

1.11

Пайплайни. Те, що проходить повідомлення до виконавця і після нього, тепер можна побачити й змінити: бібліотека пайплайнів, полотно, на якому їх редагують, і чат, що пропонує зміни, які ти переглядаєш перед тим, як застосувати. Пайплайном можна поділитися через GitHub і взяти чужий звідти; імпортований спершу перевіряється й приходить вимкненим. Кожен чат і кожна автоматизація можуть мати свій.

Поки запуск працює, смужка під чатом і розділ угорі правої панелі показують його кроки так, як їх записує рушій. Звіт дослідження тепер має власне рев'ю: його приймають, повертають із зауваженнями або віддають тобі.

Виправлено: у довгому чаті вся стрічка могла зникнути, поки Bulava працювала, і поверталась лише після прокрутки рукою. Автоматизації працюють у власній теці, яка лишається між запусками, питають, чого їм бракує, ще поки ти їх налаштовуєш, і більше не чекають уночі на дозвіл, який нікому дати. Запити дозволів, які macOS показує для Bulava, і кілька десятків повідомлень, що були лише англійською чи лише українською, тепер є всіма трьома мовами.

1.10

1.10

Зупинка більше не лишає наступні повідомлення в черзі без відповіді, а «Зупинити і редагувати» повертає текст у поле. Довгий чат прокручується плавно, диктовка не підвішує вікно, а відповідь виділяється й копіюється цілком, разом із таблицями. Модель і глибину тепер вибирають для кожного чату окремо, а з телефона можна диктувати: розпізнає Mac.

1.9

1.9.1

Якщо звичний порт для телефона на Mac уже зайнятий іншою програмою, Bulava тепер бере вільний, і телефон під'єднується як слід. Раніше зв'язок у такому разі тихо не відкривався, а код на екрані вів у нікуди.

1.9

Булава тепер є на телефоні: iPhone — бета через TestFlight, Android — файл із bulava.app/mobile. Натисни значок телефона на панелі інструментів і відскануй код: питання, звіти й чати приходять на телефон, відповідаєш звідти, а Mac працює далі. Ще в цій версії: сесія, яка несподівано зупинилась посеред роботи (скажімо, поки чекала на Codex), піднімається знову сама; PDF звіту зберігає всі картинки, навіть якщо звіт не прогортали; а Bulava відповідає тією мовою, якою ти до неї пишеш.

1.8

1.8.8

Нова версія Булави, відкрита поверх старої, тепер сама її замінює. Раніше вона тихо закривалася, і на екрані лишалася стара копія без нових кнопок. Якщо стара копія натрапить на питання, на яке в неї немає кнопок, вона скаже звичайними словами, що її треба оновити, замість команд для термінала. А коли на незакомічених змінах зупинилось кілька повідомлень, після відповіді йдуть усі, по черзі.

1.8.7

Якщо чат почався з незакоміченими змінами, які ти залишив як є, після перезапуску сесії перевірка все одно рахує лише роботу виконавця, а не твої правки. Файли, які git ігнорував на початку роботи, більше не видаляються, навіть якщо виконавець змінив .gitignore.

1.8.6

Нічна зміна більше не комітить твої незакомічені зміни мовчки. Якщо в теці є незбережена робота, Булава показує список файлів і питає, що з нею робити: почати, не чіпаючи її (про всяк випадок лишається знімок, з якого все відновлюється), закомітити від твого імені з твоїм повідомленням або розібратися самому — тоді повідомлення піде, щойно тека стане чистою. Проєкти з власними MCP-серверами (.mcp.json) більше не зависають на старті з порадою перевстановити хуки: Булава називає ці сервери й питає, вмикати їх чи ні. А перший чат нового користувача більше не застрягає на екрані вибору теми Claude Code, якого у фоні ніхто не бачить.

1.8.5

Чати тепер можна архівувати. Перед архівуванням Булава питає підтвердження, а архівовані чати кожного продукту лежать у групі «Архів» у бічній панелі. Такий чат відкривається лише для читання: на місці поля для повідомлення стоїть кнопка «Повернути з архіву». ⌘K теж відкриває його для читання і більше не повертає з архіву непомітно. Цю функцію зробив @effeto. Ще в цій версії: Булава помічає Claude, який завис, коли в черзі чекає повідомлення; тести, що падали ще до твоєї зміни, більше не зараховуються їй як провал; результати перевірки готовності зберігаються після перезапуску.

1.8.4

Виправлення до відновлення після зависання Claude. Коли перезапуски не допомагали, те саме непередане повідомлення в черзі щоразу давало ще одну «останню» спробу, і якщо перезапуск не міг вдатися взагалі, Булава перезапускала Claude знову і знову. Тепер кожне твоє повідомлення дає рівно одну додаткову спробу. Потім робота чекає на тебе, а в чаті видно, що Claude завис і перезапуск не допоміг.

1.8.3

Головне вікно Булави тепер завжди одне. Якщо закрити вікно, а тоді кілька разів натиснути «Відкрити Bulava», закрите вікно могло з'явитися знову поруч із новим. Тепер повертається те саме вікно — і з меню біля годинника, і з Dock. Розмір вікна та ширина бічної панелі, які ти налаштував, після оновлення лишаються такими самими.

1.8.2

Виправлення до 1.8.1. Якщо Claude завис і перезапуски не допомогли, Булава більше не прибирає таку роботу разом із задачею через чотири години простою. Вона чекає на твоє наступне повідомлення, і саме воно запускає Claude ще раз у тій самій розмові. Спроби перезапуску більше не згоряють, поки в розмову передається інше повідомлення. «Відкрити Bulava» відкриває рівно одне вікно, навіть якщо вікно було закрите, а ти натиснув двічі поспіль.

1.8.1

Нові моделі тепер у меню. Серед моделей Claude з'явився Opus 5.5: свіжий Claude Code почав зберігати список моделей в іншому файлі й в іншому форматі, і Булава його просто не бачила. Серед моделей Codex з'явилися GPT-6 Sol і GPT-6 Luna. Якщо на Mac стоять дві копії Codex CLI, Булава тепер запускає новішу і бере список моделей саме з неї. «Відкрити Bulava» в меню біля годинника показує вікно, яке вже є, а не додає ще одне, кожне з власною копією всієї роботи застосунку. І Claude більше не губить задачу, якщо завис на півдорозі: коли хід стоїть десять хвилин без жодного руху, Булава перезапускає Claude у тій самій розмові й просить продовжити, а в чаті в цей час це видно.

1.8

Дві нові можливості цього випуску приніс Демʼян Юшин. У відкритій розмові тепер працює пошук: ⌘F піднімає панель над стрічкою, як у браузері, і каже, скільки разів фраза тут зустрічається; ⌘G і ⇧⌘G ходять між згадками, а підсвічується сама фраза там, де вона стоїть, а не картка цілком. Колишній ⌘K тепер зветься «Перейти…»: він веде в інше місце. Друга — Dev Learning Mode: увімкни його в Налаштуваннях, і під завершеним результатом зʼявиться кнопка «Поясни, що сталося». Пояснення нічого не змінює й саме ніколи не запускається; скажи, хто ти за фахом, і воно буде написане через те, що ти вже знаєш. І Codex більше не спиняється через українську мову: текст для нього різався по байтах, часом посеред літери, і CLI відхиляв такий виклик ще до початку сесії.

1.7

1.7.13

Підключити теку і дозволити її змінювати — тепер два різні рішення. Bulava більше не створює git сама: у теці з відео чи документами він нікому не потрібен, тож вона зупиняється і питає — кнопкою в чаті, а не командою в терміналі. Тека, всередині якої лежать репозиторії, підключається як набір цих репозиторіїв. Bare-сховища й пошкоджені .git більше не виглядають як звичайні файли, а сканер тепер один на застосунок і рушій, тож вони не можуть показувати різне.

1.7.8–1.7.12

Пʼять швидких випусків за один день, і кожен закривав прогалину в тому самому виправленні. Тека, всередині якої лежать окремі репозиторії, більше не стає одним проєктом: Bulava підключає кожен репозиторій сама, як ви додали б їх руками. Раніше вона робила git поверх усієї теки — на робочому просторі з пʼятнадцяти чекаутів це означало пів гігабайта зайвих обʼєктів, секрети в індексі й нескінченне «Connecting to Night Shift…». Якщо теку не вдалося оглянути до кінця, git у ній теж не зʼявиться. Робота, зроблена в сусідньому підключеному репозиторії, більше не губиться, навіть якщо в ньому ще немає жодного коміту. А старт, який відмовляє, тепер каже чому. Дякуємо Демʼяну Юшину за баг-репорт.

1.7.7

Claude знову може спитати Codex з будь-якої дозволеної теки, а коли Codex мовчить, застосунок каже чому: таймаут, збій чи злетілий вхід замість «код 1». Заявлений результат більше не вдає успіх, коли нічого не записав.

1.7.6

Модель більше не обривають посеред роздумів. Раніше на кожну позицію стояв фіксований годинник, і та, якій бракувало секунди, поверталась порожньою, бо відповідь друкується в кінці. Тепер Булава читає події обох моделей по ходу роботи й зупиняє виклик лише тоді, коли він справді замовк: на максимальному ефорті модель думає стільки, скільки потрібно. Коли виклик усе ж зупинено, сказано чому.

1.7.5

Коли позиції однієї з двох моделей немає, Булава тепер каже чому: не встигла за відведений час, зупинилась з помилкою, нічого не повернула або повернула половину — а половина позиції не позиція. Раніше стояло просто «Позиції Claude немає», і це читалось як збій застосунку.

1.7.4

Запис екрана не працював на жодному Mac, крім того, де Булаву пишуть: у файлі рекордера був рядок, який розуміє тільки новіший Python, ніж той, що стоїть у macOS, тож він навіть не запускався. Виправлено, і тепер кожен реліз перевіряється саме тим Python, який є в системі, а не тим, що випадково стоїть першим у розробника.

1.7.3

Ліміти тепер використовуються до кінця. Булава більше не тримає запас про всяк випадок — ні останні відсотки пʼятигодинного вікна, ні три відсотки тижневого, — тож роботу спиняє тільки справжня відмова провайдера. Перевірку результату теж більше не пропускаємо заради економії квоти: перевірена ніч варта більше за зекономлені відсотки. І сторінка завантаження перестала обіцяти памʼять, якої в рушії давно немає.

1.7.2

Codex більше не вважається недоступним, коли в нього ще є квота: тижневе вікно має власний поріг, і 91% тижня з вільною сесією — це робочий Codex, а не мовчання на пʼять днів. Коли ліміт справді вичерпано, Булава каже, якого дня він повернеться, а не лише о котрій годині. І нова розмова в проєкті більше не впирається в стару роботу, до якої ніхто не повернеться: прогін, що нічого не робить і нічого не чекає, прибирається, а той, що тримає питання чи паузу, — ні.

1.7.1

Якщо рушій треба замінити, а якась робота його тримає, екран готовності більше не заводить у глухий кут: він називає цю роботу ще до натискання і пропонує зупинити саме її та одразу встановити. Раніше кнопка просто відмовляла, а зупинка роботи з іншого екрана лишала відкритою термінальну сесію — і стіна не зникала, хоч ти й зробив усе, що вона просила.

1.7

Робота більше не спиняється через власний рядок статусу: Булава приймала «(reset 01:40)», який сама ж і малює, за вичерпаний ліміт, і черга ставала. Поки обидві моделі читають повідомлення, видно, хто саме ще читає і скільки це вже триває. Прочитане Codex більше не лишається у файлі, який ніхто не відкриває, — воно в чаті. А картки «Codex відповів» показують саме відповідь, а не довідку CLI чи помилку аргументів.

1.6

1.6.4

Якщо застосунок закрити просто під час встановлення, копіювання ще якийсь час триває саме по собі — тепер наступний запуск це бачить і не починає друге копіювання поверх першого. А замок, що лишився від 1.6.1 чи 1.6.2, більше не блокує встановлення назавжди.

1.6.3

Два встановлення водночас більше не можуть обидва вважати, що вони одні: замок тепер тримає система, і він звільняється сам, коли процес, який його тримав, зникає. А якщо старий файл версії не вдається прибрати, копіювання не починається зовсім — краще не почати, ніж лишити половину.

1.6.2

Перше встановлення на машині, де Булави ще не було, відповідало «уже триває інше встановлення» і не відбувалося — ні саме, ні по кнопці. Виправлено. Якщо ти правив /night чи інші команди своєю рукою, установник тепер лишає копію поруч, перш ніж покласти свою. А встановлення, яке обірвалося посередині копіювання, більше не лишає на диску номер версії, якої там немає.

1.6.1

Після оновлення Булава сама ставить свій рушій: червоної стіни з проханням натиснути кнопку більше немає. Якщо саме зараз іде робота, оновлення рушія почекає, поки вона завершиться, і скаже, чого чекає. А встановлення, яке обірвалося посередині, більше не вдає, що завершилося: наступний запуск спробує ще раз.

1.6

Уточнення в тій самій розмові більше не коштує як нова задача: «закоміть і випусти» тепер читається за секунди, а не за хвилини. Коли в однієї з двох моделей закінчується вікно, робота не спиняється — Булава працює далі й прямо каже, кого саме зараз бракує. Ліміт, який уже скинувся, помічається одразу: повідомлення більше не лежать недоторканими годину після того, як Mac прокинувся. У чаті видно, що насправді відбувається — черга, очікування ліміту чи справжнє читання. І сторінка завантаження нарешті називає правильну macOS.

1.5

1.5

Булава більше не веде власної памʼяті. Екран «Памʼять» прибрано, і застосунок більше не домішує в задачі правила, зібрані з твоїх минулих рішень: довготривалі правила тепер читаються там, де й лежать, — у CLAUDE.md, AGENTS.md і документації самого проєкту. Записане раніше лишилось на диску недоторканим.

1.4

1.4

Застосунок називається Bulava скрізь — в образі, в меню, у списку процесів. Екран готовності дає кнопку на кожну стіну: встановити Codex чи gh, увійти в Claude. Коли Claude просить увійти знову, чат каже це своїми словами замість того, щоб пропонувати набрати команду в терміналі, якого немає. Прогін у новій теці більше не звітує, що нічого не змінив. Shift+Return переносить рядок.

1.3

1.3

Ліміти Codex знову в лівій панелі. Тепер їх питають у самого Codex, а не вичитують з його логів, — це перестало працювати, коли файли його сесій виросли. Працювати лише з Claude або лише з Codex поки що не пропонується: кожне повідомлення йде до Claude, а Codex його перевіряє.

1.2

1.2.2

Панель із моделлю й глибиною тепер відкривається з-під слів, а не з краю кнопки, підпис глибини більше не обрізається, а повзунок не впирається в краї доріжки.

1.2.1

Модель тепер вибирають у системному спливному меню — лише назви, — а повзунок глибини більше не прилипає до кінця доріжки.

1.2

Поле вводу тепер каже, на чому піде наступне повідомлення: який рушій, яка модель, яка глибина. Змінюється це в одній панелі з повзунком, а не в меню з меню. Нові моделі Codex зʼявляються самі, разом із глибинами, які приймають лише вони. Диктовка як слід питає дозвіл на мікрофон і розуміє твою мову. Новий екран «Скіли» показує, що проєкту варто використовувати і що він використав насправді. Слова самого Codex видно в чаті, повідомлення можна забрати й дописати, а коли в Codex скінчився тиждень, відповідає Claude. Виконавці можуть керувати іншими програмами через Bulava з одним дозволом, даним один раз.

1.1

1.1

Bulava оновлюється сама. Раз на день вона перевіряє підписану стрічку оновлень, а якщо саме йде робота, лишає тихий рядок у бічній панелі замість того, щоб переривати. Рушій тепер їде всередині застосунку й ставить себе сам під час першого запуску, разом із командами night-shift для термінала.

1.0

1.0

Перший публічний випуск. Claude і Codex працюють у парі: Claude робить, Codex перевіряє й повертає на доробку. Нічна зміна, памʼять про твої рішення, оновлення в один клік.