← Назад на morningdev.aiЗміни

Що ми випустили.

Кожен реліз, найновіші згори. Morning оновлюється сам — ось що прибуло.

v0.1.402026-08-25

Нове

  • Явно вказаний рівень Standard тепер застосовується, а не залишається мертвою конфігурацією
  • Впроваджено напрацювання DeepSeek-harness — захист від зациклення, очищення оточення, керування обсягом виводу, кон'юнктивні вердикти та еталонні промпти

Виправлено

  • Єдине спільне правило перемикання чипів платформ (мобільна група — взаємовиключна)
  • Токени кеша промптів тепер потрапляють в облік використання з SDK-адаптерів
v0.1.392026-08-24

Нове

  • На боці застосунку — вибір місць, інтерфейс запрошень, назва компанії, онбординг
  • Встановлення залежностей при їх розбіжності, а bash-виправлення від Brain знову зараховуються

Виправлено

  • Виправлення після рев'ю — застаріле замикання при повторній відправці, переходи за посиланнями AC-14, закріплення діапазону
  • Зміни плану доходять до застосунку без перезапуску
v0.1.382026-08-22

Нове

  • Іконки платформ на чипах платформ доставки (налаштування проєкту + майстер створення проєкту); для mobile показується пара Apple+Android
  • Контурний знак Apple і суцільний знак Android (контури Tabler, товщина ліній як у lucide)
  • Знаки Apple/Android на картці; для mobile завжди обидва; результати гейтів по кожній платформі при наведенні
  • Оновлений дизайн картки задачі — смуга заголовка, результати гейтів на іконках платформ, теги з прокруткою, прогрес врівень
  • Окремий плаский крок «Налаштування» після створення; перший екран лишається мінімальним
  • Один екран, багато станів — панелі data-screen-state, навігація data-nav з урахуванням стану, стани в реєстрі
  • Запам'ятовування останніх результатів e2e-гейта на картці задачі; скидання при старті нового запуску
  • Дрібні доробки виправляються там, де їх знайшли — типово в межах задачі, явні відкладення пропонуються окремо, заголовки лише про симптом
  • Паралельність виконання — одне чесне число; ліміти по етапах завжди увімкнені

Виправлено

  • Картки статистики використовують токен рамки з теми (звичайний `border` виглядав майже чорним)
  • Світіння палітри у верхній панелі задається сервером, а не вгадується
  • Приховано смугу прокрутки в рядку тегів (глобальні стилі ::-webkit-scrollbar перебивали довільний варіант)
  • Останні результати e2e лишаються видимими, доки не завершиться перший етап нового запуску
  • Збережені результати e2e містять усі гілки запуску
  • Тривалості окремих спроб складаються у загальний підсумок
  • Переривання за лімітом часу — це помилки запуску (blocked, а не «зупинено користувачем»); прибирання процесів робочої копії при аварійному завершенні; заборона запуску всього набору тестів у сесіях навичок
v0.1.372026-08-20

Нове

  • Domain-research знаходить офіційні специфікації протоколів, а Morning зберігає їх знімки як довідкові документи
  • Витягування тексту з PDF у вкладеннях (unpdf); довідкові матеріали беруться цілими документами
  • Прив'язка до першоджерел — вкладення й посилання доходять до кожного skill, а план фіксує контракти протоколів
  • Підказки наступних кроків, треки створення проєкту (362), менше тертя на першій задачі (364), живий прогрес етапів gate
  • Багатший контекст генерації, рівні покриття, придатні до діагностики запуски
  • Прибирання застарілих XCTest-вкладень симулятора (сміття testmanagerd)
  • Переосмислена дизайн-система: галерея токенів, нотатки з використання, бібліотека та флоу створення, клікабельні прототипи
  • Виявлення моделей у Claude SDK — реальний набір акаунта, а не жорстко зашитий список
  • Каталог моделей Copilot оновлено до актуального набору; виправлено типові значення зі знятих моделей
  • Каталог моделей Codex оновлено до актуальної лінійки GPT-5

Покращено

  • Прибрано вибір дизайн-системи для окремого флоу з панелі інструментів
  • Прибрано картки Plan і Design; список вкладень типово згорнутий

Виправлено

  • Акаунт Claude із рядка провайдера доходить до кожного викликача, а 401 називає, які саме облікові дані не спрацювали
  • Аварія Maestro під час прибирання після запуску більше не вважається вердиктом; повторні падіння gate рахуються як окремі раунди
  • Wip-знімок суперпроєкту виключає внутрішні каталоги Morning через pathspec
  • Ревʼю показує кожен субмодуль, що належить задачі, з трибічним diff; wip-знімок ніколи не комітить у застарілий клон
  • Паралельність між фазами — барʼєри «пропустити й продовжити» та ліміти на етап тепер увімкнені типово
  • Гонитва settle/flush, підсвітка поза екраном, хибний маршрут provision, приховування URL при імпорті
  • Ревʼю r2 — захист від помилок спавну, обмежений рядок проєкту в GET за jobId, ідентичність коміту скафолду
  • ЄДИНА домовленість про ключі палітри — прості назви, нормалізовані на кожній межі
  • Вбудовані setup-токени перевіряються наживо, а не приймаються на віру за фактом наявності
  • Перевірки з'єднання враховують вбудовані облікові дані самого РЯДКА
  • QA-тріаж групує падіння зі спільною причиною; skill-и поза e2e не можуть керувати пристроями
  • Зібрані скріншоти замінюють попередні раунди — більше не накопичуються
  • Повідомлення CLI про протермінований OAuth — це ПОМИЛКА з перемиканням на резерв, а не звичайний вивід
  • Миттєві прев'ю відкочуються до типових сцен; прибрано кнопку Feedback для групи
  • Пошук маршрутів дочікується гідратації, перш ніж фіксувати доступні елементи
  • Виявлення змін у субмодулі перевіряє ВЛАСНУ базу, а не назву батьківської
  • Diff береться від найсвіжішої точки розгалуження базової гілки, а не від застарілої локальної бази
  • Обробник виходу обирає той потік, у якому є ПРИЧИНА
  • ПРАВИЛО CHROME — інтерфейсна обгортка застосунку ніколи не є ціннісним моментом у сюжеті іншого сценарію
v0.1.362026-08-18

Нове

  • Редактор пайплайна — полотно на всю ширину, підказка знизу, футер «Скасувати/Зберегти»
  • Вкладка Pipeline показує редактор потоку вбудовано + перейменування flow→Pipeline для користувача
  • Непрочитане на Brain FAB — райдужна хвиля, що проходить крізь контури іконки
  • Сигнал активності, показ вартості/терміну дії, видалення за згодою
  • Правила створення демо з повним відеорядом + Flow отримує власну вкладку проєкту
  • Одна картка на сценарій — список і сітка результатів об'єднані
  • Сценарії доводять дію до видимого результату; регенерація враховує поламки й прив'язана до збою
  • Проби взаємодій розкривають шар діалогів; сценарії мають бути різними
  • Сценарії використовують лише помічені елементи керування; малі набори розширюються
  • Озвучення продає з першого слова; чернетки з нуля покривають 4–7 ціннісних моментів
  • Видалені сценарії більше не воскресають + Morning постачає власний демо-сід
  • Обрізання початку, чесне видалення відео, перемикач озвучення
  • Засіяні облікові дані роблять демо-автентифікацію повністю автономною
  • Створення auth.demo.yaml із форми входу, коли застосунок за автентифікацією
  • Brain сам лагодить поламані демо, а не через задачі пайплайна
  • Автентифікація поза кадром — auth.demo.yaml входить один раз, відео починається вже з сесією
  • Швидка зупинка на стіні автентифікації, справжній перезапис по рядку, інформативні зупинки Brain
  • Живий рядок статусу, спінер і зупинка в активному рядку, блокування інших рядків
  • Пільговий період холодної компіляції для шуму app-network + збережений хвіст останніх рядків
  • Захист від перезапуску, тріаж після Stop і непорожні причини
  • Gate позначає хостові Metro-проксі / переспрямування IPv4↔IPv6
  • Смуги прогресу, таймер поточного flow, чипи QA/docs у списку проєктів, редагування у верхній панелі
  • Паралельні комплексні прогони iOS+Android за бажанням (лінії Metro)
  • Жива таблиця статусів по кожному flow для комплексних прогонів
  • Docs і Demos стають вкладками проєкту верхнього рівня; Automation — це просто Autopilots
  • Наскрізне виправлення однотипних конфігів у сусідніх сервісах
  • Паралельні етапи мобільного gate на ізольованих лініях (за бажанням)
  • Детерміновані виправлення після генерації
  • Попередня збірка для запуску задачі + генерація враховує свіжість
  • Цілі запуску для кожного сервісу (main чи task)
  • Попередження про запуск задач на стеках із готових образів
  • Читати ВСІ попередження й помилки; класифікувати; виправити або ПРИГЛУШИТИ
  • QA-прогони показують свою фазу на картці
  • Чат рівня робочої області сам прив'язується до проєкту
  • Загальний рівень «проблеми зі зв'язком» у прийманні логів
  • Вибір коміта + бічна панель зі зміною розміру
  • Видимість недосяжного брокера Kafka (інцидент wms)
  • Швидкий шлях для зависання демона Docker + перезапуск в один клік
  • Нотатки як окрема вкладка деталей задачі (після Chat, перед Cost)
  • Двопанельна оболонка майстра — кроки ліворуч, просторий вміст
  • Нотатки задачі замінюють steer і додаються до кожного skill
  • Перенесення вибору мови з Account до Settings → Appearance
  • Перезапис/видалення для кожного сценарію + завантаження/видалення для кожного відео

Покращено

  • Непрочитане на Brain FAB — анімація спалахів нейронів замість крапки в кутку
  • Приглушення олівця редагування проєкту, роздільник перед кнопкою запуску

Виправлено

  • Останні відсталі набори тестів + чипи перерваних інструментів у завершених повідомленнях
  • Прибирання застарілих тестових пінів + генерація сценаріїв більше не повертає порожнечу
  • Реєстри в пам'яті між бандлами живуть у globalThis
  • Переривання посеред gate не має закривати рядок фази (друга частина Spec 344b)
  • Захист від деструктивного кліку в пробах + миготіння індикатора відновлення
  • Маршрутизація WS у межах проєкту + залишки
  • Огляд надійності — відновлення після переpідключення, вартовий напіввідкритого сокета, покриття подій
  • Картки зберігають свої відео, поки прогін триває
  • Генерація застосовує демо-сід перед виявленням маршрутів
  • Порт WS слідує за портом застосунку — PORT+1
  • Видалення відео очищає й знімок прогону
  • Виявлення маршрутів теж використовує закадрову сесію
  • Двигун Webpack + окрема тека dist для npm run dev
  • Відкриття Simulator.app завжди вказує пристрій
  • Рядки інтеграції з базою більше не читаються як заявка стадії
  • Перерваний прогін ніколи не закриває кроки gate
  • Вилучення з черги на дошках з авторежимом лишає задачу на ПАУЗІ
  • Harness-lib v19 — Metro живе у власній групі процесів
  • Колонки поза потоком повертаються в потік, а не тихо його завершують
  • Підпроцеси проєкту не успадковують NODE_ENV від Morning
  • Повтор до 3 разів при гонці з Gatekeeper під час збірки
  • Кнопка редагування проєкту у верхній панелі використовує іконку Pencil (як у списку)
  • Комплексний прогін сам закріплює iOS-бандлер (червоний екран No script URL)
  • Запасне завантаження iOS не піднімає закріплений симулятор іншого проєкту
  • Запуск iOS не відбувається на запущеному симуляторі іншого проєкту
  • Перезбірка Expo використовує `run:<platform>`, а не хибний `launch:` (помилка --device)
  • Runner відкриває ВСТАНОВЛЕНИЙ iOS-застосунок замість перезбірки (розбіжність bundle-id)
  • Проба рендеру iOS розпізнає червоний екран «No script URL» (більше не зелений поверх нього)
  • Стійке закріплення iOS bundle-id (червоний екран (null) «No script URL») + рядок прогресу паралельного QA
  • Проба рендеру більше не вважає екрани входу та форми порожніми
  • WaitForPorts узгоджується з compose у корені прогону
  • Перевірка готовності не позначає помилкою зайнятий процес (м'який вердикт)
  • Оновлення живого рядка на місці підживлюють перевірку зависань
  • Рядки підфаз gate згорнуті в живий рядок етапу
  • Очікування dependsOn продовжується, поки залежність стартує
  • Видалення першої ручної конфігурації більше не відкочується
  • Відкидання дубльованих згенерованих сервісів (однакові cwd+command)
  • Інваріант генерації: жодної порожньої цілі запуску
  • Фільтр цілей став видимим
  • Попередження про кореневі залежності без сигналу готовності
  • Відхилення скасовує кожну робочу колонку від призначення до gate
  • Перегляд одного коміта приховує сабмодулі, успадковані з бази
  • Веб-етап несе справжні докази
  • Гонка з Gatekeeper на свіжих чекаутах: xattr + один повтор
  • Стабільна тека базового worktree + вільна класифікація prepare
  • Список комітів не включає коміти інтеграції з базою
  • Збої prepare показують справжню помилку, а не npm warn
  • Помилки відсутнього топіка Kafka отримують ідентичність
  • QA-етапи запускають maestro-prepare + однакове з gate середовище + швидку зупинку
  • Пакетне розслідування перезапускає застосунок після виправлення файлів
  • Останній крок майстра читається «Завершити», а не «Продовжити»
  • Панель diff, що застрягала на «0/0 files» + зациклені git-логи

Швидше

  • Збереження кешу .next між збірками; пропуск дубльованого лінту під час збірки
v0.1.352026-08-12

Нове

  • Відновлення Brain після невдалого злиття; помилки доставки більше не ламають main
  • Додавання сценарію за промптом — створіть один точний сценарій із довільного опису
  • UX генерації сценаріїв — індикатор, видимий список, регенерація кожного сценарію, деградація при завантаженні
  • Згрупована навігаційна панель і пласка секційна картка для налаштувань застосунку та проєкту
  • Автономність — зупиняємо те, що запустили, зберігаємо стартери, одноразове звіряння сценаріїв
  • Запуск docs/demos навіть за відсутності даних (автовиявлення маршрутів)
  • Гучна гігієна untrack — підозрілі untrack і розбіжності з ігнорованими джерелами називаються разом із правилом ignore, що їх спричинило
  • Контракт скіла Seed/, сумісність capture.json, під'єднання лінтера структури
  • Контракт структури проєкту + документація специфікації demo-runs
  • Життєвий цикл демосценаріїв (M3c зі Spec 315)
  • Рендер демо + багатомовна озвучка (M3a зі Spec 315)
  • Веб-демозапуски на шасі docs-run (M2 зі Spec 315)
  • Контракт структури проєкту (M1 з концепції Spec 315)

Виправлено

  • Заборона загальних «наповнювачів» в озвучці; сценарії спираються на PRODUCT.md і назву
  • Реєстрація demos_automation_enabled як перемикача Labs
  • 1 — відновлено файл gate з develop; лінтер застосовано точково
  • Каталоги збірки (target/, node_modules/, …) більше ніколи не потрапляють у коміти
v0.1.342026-08-11

Нове

  • "Push changes to the remote" now gates ALL pushes (incl. wip)
  • Full-width left sidebar with icons + selected-tab header
  • Delivery is its own tab; project tabs move to a left rail
  • Per-project "push merged changes to the remote" setting
  • Fix-first triage — investigate, fix, verified retry; inline session-end facts
  • Improve the code review screen ISSUES (#6)

Виправлено

  • Classify Higgsfield's underscore not_enough_credits as the typed credits error
  • Total task time counts every phase VISIT, not one per phase name
  • No background-task wake exists — never notification-wait or end a turn with backgrounded work
  • Make the merge-mode control an explicit two-option choice
v0.1.332026-08-10

Виправлено

  • Precise ENOENT message in mixed build results + boot PATH-patch source pin
  • Resolve the GUI-launch PATH once onto process.env — every spawn inherits it
  • Toolchain PATH resolution everywhere Morning spawns project tools; bare Brain retries are propose-only
v0.1.322026-08-10

Нове

  • Layered, submodule-aware repo map for every codebase scan
  • Add IDE-style code review screen with sidebar and evidence

Виправлено

  • Loop guards hold — one failure signature per root error, Brain retries grant one round instead of resetting the budget
  • Pre-review gate resolves the node toolchain and never fabricates a lint error from its own crash
  • Keep the model's buffered doc when a repo scan exhausts turns
v0.1.312026-08-10

Нове

  • RBAC-gated cross-project reads+writes for global/ops threads
  • Multi-round text-protocol loop for narrating models
  • Context-fit fuse — warn when a local model will truncate the prompt
  • Make narrated-tool-call handling visible in the task timeline
  • Recover tool calls a model narrates as text instead of calling them

Виправлено

  • Wip snapshot no longer skips a submodule when .morning-artifacts leaks in
  • Scope hint reflects the OPEN thread, not the selected project
  • Salvage reads the saved review, not narration; no false FAIL on "no blocking issues"
  • Recover bare-name narrated calls; auto-commit only this turn's edits
  • Execute tool calls a model narrates as text, then answer
  • Persist a whole assistant turn as one ai_output card, not per line
  • Coalesce streamed ai_output into whole lines (no more one-token cards)
v0.1.302026-08-08

Нове

  • Discover models for custom/local (Ollama) endpoints
  • Dedicated Ollama card + lock provider/transport on type-specific add
  • Add a project language selector to the new-project wizard
  • Move the Flows editor from the board top panel into project Settings
  • View back in bar, blocked→menu, grouped dividers, leaner rows
  • Reorder to Auto·Path·Design·Provider + Appearance menu group
  • Remove the "System logs" execution dock
  • "View diff" on the task panel → inline comments → backtracking
  • Show pipeline progress on every card (backlog + needs-you)
  • Localize account usage-window labels
  • Localize settings copy, user menu, greeting + compact board-view settings
  • Migrate final 71 surfaces via workflow (Tier 2 batch 3)
  • Migrate 54 more surfaces via workflow (Tier 2 batch 2)
  • Migrate 28 high-traffic surfaces via workflow (Tier 2 batch 1)
  • Migrate first-contact surfaces — auth + errors (Tier 1)
  • App-UI i18n engine — next-intl cookie-only (Phase B)
  • Per-project artifact output language (Phase A)
  • Settings clarity for non-technical users
  • Image-generation install card + CLI-auth save fix
  • Component-library-aware implement across frameworks
  • Split task-card progress — phase steps inline, overall on the bottom border

Виправлено

  • Log tool COMPLETION on the API path so calls don't look stuck/duplicated
  • Accept `cmd` alias for run_command + give repair the exact schema
  • Discovered custom models use an obvious dropdown, not a datalist
  • Don't mislabel every 404 as a missing /v1 (surface the real cause)
  • Don't double-count one account under Ollama AND Custom / Local
  • Default tool taskId to the current task (stops get_task_info({}) crash)
  • Repair malformed tool calls instead of crashing the run (helps Ollama)
  • Real health check + clearer setup for custom/local (Ollama) endpoints
  • Raise max-images-per-design cap to 12 so saving 7 no longer 400s
  • Scroll the add/edit-provider dialog body so the footer stays reachable
  • No "Checking AI" flash when toggling Simple/Pro
  • Show the real filename for deleted files (not /dev/null)
  • Phase-count progress, hide 0%, show phase name when paused
  • Match the diff button to the copy button (small, muted, left of branch)
  • Three-dot diff — show only the task's own changes
  • Omit only individually-huge files; smaller, lighter diff
  • Show all files, readable diff colors, icon-only trigger
  • Review pass — wrong-file comments, shell injection, gate misrouting
  • Recover from a dead refresh token instead of retrying forever
  • Keep "QA" verbatim + compact eye-icon board settings in full board
  • Lock checkout on unverified accounts + honest expired-session error
  • Indeterminate phase bar slides instead of filling full-width
  • Guard avg cycle time against corrupt timestamps (389026.4d)
  • Tapping a "Needs you" row opens the task
  • Phase-steps bar shows only the OPEN attempt, never a stale prior one
v0.1.262026-08-06

Нове

  • Platform-aware provider install instructions
  • Liveness pill, provisioning milestones, ready toast (Spec 302r4)
  • Version indicator + 'Update now' in the app (Spec 302r3)
  • Loopback drain probe GET /api/internal/busy
  • Membership-wide sandbox discovery in the app (Spec 302r2)
  • Company sandbox, morning side
  • Wire worker-mode boot + docs cross-links
  • Remote execution concept + worker boot profile + auto-mode collision guard

Виправлено

  • Drop /login from history after sign-in (Back no longer returns to signin)
  • Restore last project synchronously (no empty-state flash on load / screen switch)
  • Theme-adaptive splash + window background (no dark-on-light flash)
  • Review fixes — AC-6 tarball verification + no double-shipped migrations
v0.1.222026-08-06

Нове

  • Neurons brand backdrop on the first-run splash
  • Instant branded splash on first run (no more blank window)

Швидше

  • Defer non-critical boot work so the server serves sooner
v0.1.192026-08-06

Виправлено

  • Migrate provider-install tilde-expand to homeDir() (Windows EPERM)
v0.1.182026-08-06

Нове

  • Real provider brand icons (@lobehub/icons) + card fixes
  • Provider & integration marketplace

Виправлено

  • "signed in" for cloud actions = a linked account, not a live token
v0.1.172026-08-05

Виправлено

  • Tolerant markdown-block extraction (unclosed / wrapped fences)
  • Resilient memory harvest — don't fail the whole init on one verbose memory
v0.1.162026-08-05

Нове

  • Remove the status widget — the tray menu is the one shell surface

Виправлено

  • Gate on a linked cloud account, not a live access token
v0.1.152026-08-05

Виправлено

  • Visible tray icon + honest macOS update path
v0.1.142026-08-05

Виправлено

  • No Brain FAB on auth pages; external links never steal the app window
  • Device-flow approve link never rendered — verificationUri field mismatch
v0.1.132026-08-05

Нове

  • Cloud-only sign-in for desktop + cloud-linked web instances

Виправлено

  • Status banners are session-gated (no realtime/limit noise on the login page)
v0.1.122026-08-05

Виправлено

  • Real Claude auth check + clear "sign in" errors (not cryptic parse failures)
v0.1.102026-08-05

Нове

  • Compiled-node-child MCP so Codex/Copilot get morning tools in the packaged app

Виправлено

  • MORNING_BUILD env is the reliable build-phase marker
  • Build-phase DB connections go to a throwaway temp file
  • Stop @vercel/nft globbing the whole home dir on Windows
  • Strip runtime pollution from the standalone before packing (4GB → normal dmg)
  • Run chat MCP servers in-process (type:'sdk') in the packaged app
v0.1.92026-08-05

Нове

  • Single-device reaction + fix MCP server address
  • Durable auto-update + Spec 298 widget remake
  • 3 — remove the local@morning.app auto-admin everywhere; desktop uses normal cookie sessions from the cloud-first shadow identity
  • Cloud-first desktop identity: first-run cloud sign-in (device flow + EULA), shadow local admin, token-expiry relogin gate with 14-day offline grace
  • Branded auth frame (bg_neurons + wordmark), EULA-at-registration in /setup (server-enforced, audited), modal suppressed on auth pages, beta-aware trial banner

Виправлено

  • Clear the init lock live on project_init events
  • Bundle skills/ into the standalone
  • Run the morning MCP as an in-process SDK server
  • No dead tools in an unbound floating chat
  • SignedIn preview uses the refresh-capable token path
  • Pipeline % measured across WORK columns
  • Desktop WS client connects to the runtime port
  • First-run cloud routes — malformed body cannot bypass consent; admin-exists race recovers with a session (review catches)
  • /api/eula GET is public + middleware-allow-listed — the pre-auth /setup page needs it; a true first run was stuck otherwise (review catch)
v0.1.32026-08-04

Нове

  • Declared platform targets as authoritative scope
  • In-app "Report a bug" (cloud-proxied)
  • Device registry in the account card (list sessions, sign out, this-device flag) via admin proxies
  • MorningDEV rebrand (MD identity) + runtime/error hardening
  • BETA badge + free-beta banner; beta flag through the sync (trial banners suppressed while beta)
  • Desktop surfaces: cloudAiEnabled through sync, credits UI hidden while dormant, desktop-trial copy, banded Team label
  • Desktop EULA gate (first-run modal, packaged builds only) + cloud-reported acceptance
  • Email-verification state in the account card + send-verification button; human checkout-gate error (Spec 260r2)
  • Mid-task AI decisions pause the task + answer in global chat
  • Allow authors to select backtracking targets for approval gates
  • Phase-aware "Needs you" titles and design-mode glyph in Simple View
  • Gate the New Project wizard Documentation option behind docs Labs gate
  • Gate experimental features behind Labs + settings/brand cleanups
  • Redesign Simple View for clarity and scannability
  • Higgsfield CLI image backend
  • Labs tab with progressive disclosure
  • Design scan sees the code on API + product scan verifies
  • Studio first-draft grounding (provenance tool-gate + pre-draft quiz)
  • Finish the run→launch domain rename
  • Burn-rate coloring — amber/red when spending ahead of pace
  • Harness_ensure_metro: per-flow Metro liveness re-check
  • Deployment-topology visibility for generation + the Brain
  • Add Codex account limits via the app-server JSON-RPC
  • Surface reset time on the top-bar usage
  • Keychain grant-access hint when the usage read is blocked
  • Top-bar usage bars, all-provider fetchers, settings ui-kit, docs
  • REAL Claude account meter (5h/weekly), the way Orca does it
  • Explicit enable/disable Switch per provider
  • Live provider usage under the provider (top bar + Capabilities)
  • Idempotent mutation ledger (L1)
  • Per-project scope + auto-import scheduler
  • Candy UI-kit (feedback primitives + fast-win polish)
  • Provider usage meter (F2) + budget threshold meter (F6)
  • Capabilities matrix, Labs pane, scope badges
  • M5 — settings UI + board import dialog
  • Ingest tasks from GitHub/GitLab/Jira/Linear/Redmine
  • One research scan (init) shown live in the wizard
  • Promote/design-disabled deadlock + global rename directive
  • Surface key project settings in the New Project wizard
  • Direct-edit a plan iteration (deterministic escape from LLM refine)
  • Shared "Add to batch" refine queue (Studio + approval)
  • Init-aware new-project wizard + governed-doc codebase scans
  • Doc-first Design library (+ in-flight Spec 253 wizard)
  • The durable automation loop (journal, visibility, verification, escalation)
  • /247 — phantom deferral, chat ownership, destructive gate
  • Run config materializes into served worktrees
  • Destructive-fix approval lives in the Brain's chat proposal
  • Worktree-run state isolation (per-task DB + test data)
  • Investigations get working tools; build-cache clears unbanned
  • Diagnose classifies the fix LAYER before fixing
  • One-click approval for destructive fixes + migration-collision knowledge
  • Worktree envFile falls back to the project root; .next-run types; chooser back nav
  • Task-card serving indicator + flow-run blocking
  • Console-signal cold start replaces the 4-probe ladder
  • Direct fixes on task-worktree runs — no intermediary
  • Cold-start probe retry ladder + Brain handoff on real failures
  • Structured Delivery section — branch, PR/MR, Submodules list
  • V2 — paid Desktop ($10/mo, 14-day trial), team-only cloud, ribbon retired
  • Transcript-driven diagnose fixes (env field, honest strips)
  • Recovery quality: gated inputs, honest outputs, one owner
  • Scan an existing repo into the greenfield review
  • Per-task base branch (stacked tasks)
  • Local base fast-forwards to origin at task start
  • Morning.run.yml — the run config becomes a repo-resident file
  • Git-hosting tokens move to the project Delivery section
  • Settings → Git hosting — custom host mapping + UI-managed tokens
  • Auto-create remote repos for NEW service submodules
  • UI-first Design chooser — full-screen try-on + full redesigns
  • The Design library — generate, store, select, and tune designs
  • Onboarding guidance (tips, provider guard, signals)
  • Per-iteration time breakdown (AI work vs approval wait)
  • AC ids, Decisions table, testable negative scope
  • Run a project instance from a task's worktree
  • Stop button to cancel a live headless investigation
  • One collapsed attachment strip for every chat surface
  • Coverage catalog — living e2e/README.md matrix across tasks
  • Teams inbound message relay (Spec 220) + remote-execution concept
  • Reorder subtabs Timeline·Progress·Graph + per-phase durations on Timeline
  • Live "investigating…" placeholder for background triage
  • Cold-start the design system from the codebase during init
  • Web folder picker for the Path field
  • Merge Execution+Flow tab, rename Tokens→Cost, tab icons; messenger "Preview" button
  • Per-project policy for pre-existing (drift) failures
  • Harness_should_rebuild + gate warning so wrappers stop rebuilding every run
  • Auto-commit the Brain's direct edits to a project checkout
  • Render-check verdict chip on the message bubble
  • Wire render-check into all refine surfaces
  • Render-check diagnose+verify in the shared core
  • Let the Brain edit small localized fixes directly (incl. visual)
  • Prefix downloaded artifact filenames with the task title (length-capped)
  • Route pre-existing e2e drift failures to Brain bugfix tasks
  • Register new screens from the per-task plan (Spec 209 #2)
  • Propose_task — one-click "Create task" button for new work (not prose, not a quiz)
  • Copy-paste command hints in the channel dialog
  • Command menu + per-messenger formatter + native buttons
  • Universal render probe (harness_verify_app_renders)
  • Branded Brain avatar on AI messages
  • Broadcast user messages; gate logs typed as tools
  • Message attribution — every human message names its author
  • Visible loops — stopped is never silent; approval attests "I fixed it"
  • Gitlink rescue — the machine's bytes are Morning's to publish
  • Tested table + signature purity + visible base integration (Spec 198–200)
  • Tested table — every testing artifact says what actually ran
  • Delay the supporter ribbon to the end of the first week
  • Sub-tabs inside the project Settings tab
  • Root-failure fail-fast + entry canary — N identical failures are ONE defect
  • Design pipeline as a positive switch; stop gating the rest of the tab
  • Auto-apply is the default — flip existing 'review' projects to 'auto'
  • Input-integrity rule — fail at the keystroke, not three steps later
  • In-app skill editor (admin, edit .md on disk) — Spec 193
  • Canonical iOS sim resolver + one test-visibility setting (Spec 191 + 192)
  • Global rate-limit banner in the app shell
  • Per-phase default capacities + drop the "WIP" qualifier
  • Generic permission-fault detection — detect by error class, confirm by stat
  • A real Stop for chat turns (Spec 186 follow-up)
  • Read the SVG, don't inline it (Spec 186 T6+T9)
  • Apply-as-a-tool on both transports + routes (Spec 186 T4-5)
  • Apply-tool infrastructure — seam, endpoint, MCP server (Spec 186 T1-3)
  • Extract shared apply seam (Spec 186 Task 1)
  • 1-hour prompt cache for durable warm-start
  • Declutter generation UI + delete sessions + relocate screens
  • Auto-continue on quiz completion + Back button to revise answers
  • Pin the live quiz on every chat surface
  • Pin the live quiz above the composer + add a custom answer option
  • Daily multi-project Brain ops chat
  • Collapse Design document history + move it to the bottom of the tab
  • Stoppable capture runs, issues split, Brain fix loop
  • Stoppable runs, honest verdicts, Brain fix loop
  • Weekly promo cooldown + discoverable lifetime purchase in settings
  • Channel-aware inbound chat — the bot can act on what it pinged
  • Free-tier supporter promo + lifetime unlock
  • Product-defect routing, in-chat quizzes, external MCP servers (Specs 170 + 172 + 175)
  • Scoped rejection routing + accumulated per-artifact review (Specs 168+169)
  • Screenshots group in task artifacts tab (Spec 164 follow-up)
  • Add existing screens mid-session
  • Resizable + collapsible sidebar panels in review modals and Design Studio
  • Read-only codebase access in chat + refine
  • Visual tuning editor (Spec 160) + start from existing screens
  • Sync app changes into registered screen designs
  • Readability contract — word budgets, revision log, style gate
  • Vertical-slice task sizing + per-run coarse granularity knob
  • Orphaned-record debug count when nothing matches the phase (Task 13)
  • Surface partial-stale approve outcomes (Spec 153 Task 14/15)
  • Runner/QA/docs acquire the device lock for a pinned device (Task 4)
  • Persist last mobile-launch target/device across restarts (Task 10)
  • Native-toolchain remediation + clean escalation
  • Surface FTS relevance-recall health in the tab (Spec 153 Task 20)
  • Idempotent materialise + crash-recovery to the approval gate (Task 7)
  • In-phase provider failover before blocking (Spec 153 Task 8)
  • Expire stale design proposals + prune resolved ones (Task 9)
  • Age-prune tombstones so deleted-id lists don't grow forever
  • Pause on 401/403 with a re-auth banner (Spec 153 Task 5)
  • Persistent admin alert on provider sticky-disable (Task 18 §17)
  • Show run age + force-finalize a stuck run (Spec 153 Task 18 §10)
  • Surface executed-flow-count on a mobile gate PASS
  • Global realtime-offline banner on WS drop (Spec 153 Task 18 §20)
  • Surface per-channel delivery health in the channel manager
  • Persist per-channel delivery health (Spec 153 Task 18/19)
  • Per-channel outbound rate cap (notify-storm guard)
  • Unify thinking / tool-call UI across every chat surface
  • Create tasks with enforced "blocked by" dependencies
  • Thinking indicator on every chat surface
  • Attach office documents and let the model read them
  • Process-audit — systemic flow-by-flow gap + durability review
  • Self-service display name + reorder phase-control cycle
  • Multiuser completion — membership sync scope, attribution, audit-or-exempt
  • Visible task-id chip + ?task= deep-link (worktree correlation)
  • Design EDIT paths carry the knowledge fragments (Spec 148 follow-up)
  • Behavioral principles fragment wired into plan, design, and review
  • 'Run configuration' shortcut in the board run dropdown
  • Stale dev-client automation + reserved e2e AVD + sim name disambiguation
  • Interactive live build — scroll, device frames, liveness note
  • Live generation progress (phase, KB streamed, elapsed)
  • Parse, gate, and surface the plan TL;DR
  • TL;DR contract — the whole concept in one reviewable paragraph
  • Grouped settings surfaces + merged Automation tab
  • Per-project device affinity + parallel mobile testing
  • Owned-only gate scope + the task-ownership contract
  • Left-rail assistant chat + hover-overlay refine visuals + theming
  • Architecture onboarding + canonical ARCHITECTURE.md
  • Brain-first background QA
  • Living user docs (per-task updates + localized capture runs)
  • Mid-task AI↔user decision channel + task steering
  • Tasks 4-10 — distiller, consolidation, recall tool, staleness, user prefs, tests, docs
  • Task 3 (+8 store) — memoryPolicy enum, proposals queue, source-gated writes
  • Tasks 1-2 — FTS5 recall index + task-relevant injection
  • Per-skill live web-research opt-in via frontmatter
  • Web search in all chats, task-chat write parity, plan-chat direct edits
  • Icon-only Simple/PRO toggle + theme icon in the top panel
  • One chat stack, one tool display, one design-refine engine
  • Tasks 13-15 — Design Studio (design-first) + cross-cutting tests + docs
  • Tasks 11-12 — real-screen previews + Constructor full-doc apply
  • Tasks 8-10 — Design Constructor directions + scenes
  • Tasks 5-7 — design_doc_policy + Design-tab history/revert/queue
  • Tasks 1-4 — flag hygiene + DESIGN.md as single source of truth
  • Design badge is icon-only on the card — label moves to hover
  • Native provider web search as the default mechanism
  • Domain-research as a parallel Planning skill
  • Common web research + grounded critique
  • Self-clean committed build artifacts on run start (not just fresh worktrees)
  • Run-start integration v2 + worktree lifecycle hardening
  • Unified per-attempt context contract for every phase entry
  • Drive the burning sparks from REAL token spend
  • Flame emits rising "token" embers while LIVE
  • Per-task auto-resume ceiling (bounds runaway idle-stall loops)
  • "Complete" task menu item for last-column tasks (force → done)
  • Auto -wipe-data cold boot when the Android emulator is out of storage
  • Phase 3 — provider-form tier inputs + per-project tier overrides
  • Phase 2 model tiers — per-provider tier_models + per-skill Settings UI
  • Per-skill model tiers (economy/standard/premium), provider-agnostic
  • Inject a gate-enforcement directive so the skill validates EVERY target OS
  • Task Flow tab — per-task execution graph + timeline
  • Skip-unchanged-phase caching (#6) + unified interrupt registry (#3)
  • Replay-from-checkpoint (#2) + scoped reducers (#4) + fan-out primitive (#5)
  • Erase iOS sims on teardown to reclaim disk (not just shut down)
  • Surface a bell alert when the macOS Automation/TCC permission is missing
  • Auto-apply dependency/product fixes (raised autonomy)
  • Replace equalizer with a calm ember-glow live indicator
  • Burn-up curve, runtime-health light, rate-limit cooldown
  • Cockpit instruments — live "burning" indicator, pipeline, velocity, ETA
  • Show the real phase on queued cards (Clock icon marks queued)
  • Dashboard redesign — project card + stat cards + zones
  • Exhaustion advances to the NEXT phase (universal) — supersedes replan-to-Planning
  • Exhaustion moves forward to replan→Approval instead of hard-blocking
  • On a build-gate failure, order the fix phase to RUN the real build
  • Phase-advance waits in the queue (like a manual run) when the next phase is at capacity
  • Show which task the Brain is actively working on
  • Surface Brain messages — unread dot on the Brain button + bell
  • Boot+hourly sweep to recover dropped blocker triage
  • Use the shared floating Brain button (like PRO), drop the rail
  • Auto-launch the mobile app preview on Metro-ready
  • Simctl fallback when Expo's Simulator-focus osascript fails (TCC)
  • Animate + resize lifted side panels, persist width per-user
  • Rename "AI Execution Log" → "System logs"; drop stop button + AI icon
  • Per-project Metro port so mobile previews run concurrently
  • Detect silent port failures → Brain-visible signal
  • Autonomy ON by default + triage ALL error classes (not just product)
  • Make the Needs you section collapsible too
  • Dynamically detect a FREE Metro port (was a fixed hash)
  • Rebrand the chat as "Brain"; hide it behind a side button
  • Make the Now and Up next sections collapsible
  • Platform icons on feature titles + distinct queued state
  • Persist per-project + read the durable truth
  • Sort actively-running features above paused ones in NOW
  • Open the chat on a fresh empty conversation each time
  • Redesign — cockpit layout + chat rail, richer cards
  • Embed full chat instead of brain-recents; swap the two lanes
  • Simple Mode as the default screen, PRO board behind a toggle
  • Per-project Metro port — let native e2e runs run concurrently
  • Unify the brain + make autonomy durable
  • Run the FULL native suite (smoke + comprehensive), like the web gate
  • Force the e2e skill to fix EVERY failing flow, not just its own
  • Post-escalation fresh in-place round — full self-heal ladder
  • Failure-class escalation ladder — Testing×N → Implementing×1 → block
  • Remove the per-task "Human-step skipping" feature
  • Gather full prompts — capture the assembled system+user per run
  • Layer 2 — board-level token analytics + outcome correlation
  • Prompt-token analytics — section manifest + cache metrics per run
  • Version documents instead of overwriting; browse history on review
  • Surface triage in task log + project chat + bell badge
  • Inline cycling icon on the Execution-tab phase list (drop the separate section)
  • Per-task phase controls — skip or pause any phase
  • Glab/gh setup hint + PR-auth health check under "Merge changes without PR"
  • Send the 'done' notification on task completion (it was never fired)
  • Per-subagent log division for ensemble candidates
  • Canonical e2e-layer structure as the single source of truth (no manifest, no guessing)
  • Surface fan-out in the Logs tab (visibility for N subagents)
  • Per-column WIP capacity (option B) — serialise Testing via a phase-entry semaphore
  • Default the `plan` skill to 2 subagents
  • Make Brain config UI-settable (Settings → Morning Brain), not env-only
  • Phase 4 — earned autonomy + anti-thrash closure + loop-trigger + channel push
  • Phase 4 (part) — tool-equipped READ-ONLY autonomous triage
  • Phase 4 (part) — config-override reach via update_task
  • Phase 3 — conversational + actionable (the propose→act bridge)
  • Phase 2 — runtime-exception fold-in (the second silent runner)
  • Phase 1 — blocker triage (propose-mode, chat-surfaced)
  • Move the subagent count to the column inspector panel
  • Health-check + recycle a wedged device before reuse
  • Headless android emulator + iOS sim by default (mobile_emulator_headless)
  • Per-skill ensemble count control + API passthrough
  • Ensemble skills (best-of-N + auto-synthesizer)
  • Envelope the roadmap critique (third debate unified)
  • Unify the debates' response-envelope reading
  • Unify convergence across in-phase + cross-phase loops
  • Surface sandbox denials + warn when the model lacks vision
  • Vivid light-theme primary (14 88% 43%)
  • Generic evidence manifest + investigate-first loop
  • Make the failure CLASSIFIER screen-aware (feed it the screenshot)
  • Surface the Maestro failure SCREENSHOT into the fail artifact
  • Desktop local-single-user, folder picker, shared apiFetch, in-place New Project, R2 auto-update
  • Reflect the cloud trial in the app (banner + Upgrade)
  • Event-triggered instant sync push + tombstone derivation test
  • Sync tombstones — propagate deletions across the team
  • Automatic shared-project sync sweep + "Share to team" UI
  • Sync engine (local) — board snapshot serialize/merge + reconcile
  • Plan-upgrade checkout from the app (Stripe per-seat)
  • Cloud account loop — device-code sign-in, entitlements, routes, UI
  • Cloud-as-provider seam + local-only-by-default cloud session
  • Warm the light-theme primary toward salmon
  • Recolor primary from blue to Dawn coral (icon-matched)
  • Add Morning sun app icon
  • Package the app as native installers + build them in CI
  • Autonomous emulator provisioning in harness lib (v2)
  • Shared version-pinned Maestro harness lib (Option A)
  • Open PR/MR via gh/glab CLI first, REST as fallback
  • Open PR/MR via gh/glab CLI first, REST as fallback
  • Move close + download actions to the header (match approval dialog)
  • Move close + download actions to the header (match approval dialog)
  • Log deployed build version at server startup
  • Log deployed build version at server startup
  • Stamp deployed code version into the run-start log
  • Stamp deployed code version into the run-start log
  • Open one MR per touched submodule, not just the parent
  • Open one MR per touched submodule, not just the parent
  • Persist delivered branch + PR/MR URL so it survives Done
  • Persist delivered branch + PR/MR URL so it survives Done
  • Autonomous environment remediation + env-class budget split
  • Autonomous environment remediation + env-class budget split
  • Feed cumulative replan history to the implementer (REPEATED-issue awareness)
  • Feed cumulative replan history to the implementer (REPEATED-issue awareness)
  • Open every artifact full-screen, like plan/design
  • Open every artifact full-screen, like plan/design
  • Event ("task") autopilots NOTIFY on a board event — never create a task
  • Event ("task") autopilots NOTIFY on a board event — never create a task
  • Live runtime-error pipeline — detect, classify, surface, (gated) auto-fix
  • Live runtime-error pipeline — detect, classify, surface, (gated) auto-fix
  • Human-step skipping on the create + edit forms (not just the detail panel)
  • Human-step skipping on the create + edit forms (not just the detail panel)
  • Channel selector for task-event autopilots
  • Channel selector for task-event autopilots
  • "Any column" for Target too + default both column fields to Any
  • "Any column" for Target too + default both column fields to Any
  • Optional source-column filter for event tasks ("Only when in column")
  • Optional source-column filter for event tasks ("Only when in column")
  • Auto-detect Telegram Chat ID (no hand-running getUpdates)
  • Auto-detect Telegram Chat ID (no hand-running getUpdates)
  • Collapse plan + design to one row each (opens the latest)
  • Collapse plan + design to one row each (opens the latest)
  • Inline "where do I get these" setup steps in the channel form
  • Inline "where do I get these" setup steps in the channel form
  • Trigger derives from kind (report=schedule, task=event) + "Any" event; fix UUID in notifications
  • Trigger derives from kind (report=schedule, task=event) + "Any" event; fix UUID in notifications
  • Headless android build primary (symmetric to iOS)
  • Headless android build primary (symmetric to iOS)
  • Headless iOS build as the PRIMARY path (drop expo run:ios)
  • Headless iOS build as the PRIMARY path (drop expo run:ios)
  • Read-only design viewer + click-a-design-artifact opens it
  • Read-only design viewer + click-a-design-artifact opens it
  • Clicking a plan artifact opens the read-only plan viewer
  • Clicking a plan artifact opens the read-only plan viewer
  • Read-only plan-review viewer (version history, no approve/reject)
  • Read-only plan-review viewer (version history, no approve/reject)
  • Plan version strip shows kind + "what was required" (2/2)
  • Snapshot rejected plan as a version + plan-version-history lib (1/2)
  • Plan version strip shows kind + "what was required" (2/2)
  • Snapshot rejected plan as a version + plan-version-history lib (1/2)
  • Signing-proof iOS fallback ends the code-signing loop
  • Signing-proof iOS fallback ends the code-signing loop
  • Surface pushed branch + PR/MR (or skip reason) in logs AND summary
  • Surface pushed branch + PR/MR (or skip reason) in logs AND summary
  • Push-only ALWAYS opens the PR/MR; source token from local authorities
  • Push-only ALWAYS opens the PR/MR; source token from local authorities
  • A gate-build failure tells the AI to FIX THE BUILD
  • A gate-build failure tells the AI to FIX THE BUILD
  • Delegate the native build to the project's own maestro script
  • Delegate the native build to the project's own maestro script
  • Surface the optional account token field for anthropic-sdk
  • Surface the optional account token field for anthropic-sdk
  • Per-account auth via CLAUDE_CODE_OAUTH_TOKEN (multi-account groundwork)
  • Per-account auth via CLAUDE_CODE_OAUTH_TOKEN (multi-account groundwork)
  • Stick-to-bottom auto-scroll on chats + task Logs tab
  • Stick-to-bottom auto-scroll on chats + task Logs tab
  • Per-step human-approval skipping — board list + per-task overrides
  • Per-step human-approval skipping — board list + per-task overrides
  • Configurable approval reject-target + always-require-human; plan data contracts
  • Configurable approval reject-target + always-require-human; plan data contracts
  • Bare-Xcode iOS support in the pre-maestro rebuild
  • Bare-Xcode iOS support in the pre-maestro rebuild
  • Rebuild + reinstall from current source before maestro
  • Rebuild + reinstall from current source before maestro
  • Label debate-loop evaluator groups as "Debate loop (…)"
  • Label debate-loop evaluator groups as "Debate loop (…)"
  • Explicit reviser selector for the debate loop + test/e2e evaluators
  • Explicit reviser selector for the debate loop + test/e2e evaluators
  • Move Export into the tab strip; remove Comments filter
  • Move Export into the tab strip; remove Comments filter
  • Group phase checkpoints by skill with friendly labels
  • Group phase checkpoints by skill with friendly labels
  • Run unit/integration in Implementing as a debate loop; Testing = e2e only
  • Run unit/integration in Implementing as a debate loop; Testing = e2e only
  • Export task execution logs as JSON
  • Export task execution logs as JSON
  • Universal up.sh provisioning at Testing entry + drift-aware failed-flows-first
  • Universal up.sh provisioning at Testing entry + drift-aware failed-flows-first
  • Mobile ownership scoping + orchestrator-run up.sh provisioning
  • Scope web verdict to task-owned specs + known-red baseline
  • Mobile ownership scoping + orchestrator-run up.sh provisioning
  • Scope web verdict to task-owned specs + known-red baseline
  • Wire Google Gemini as a provider (API adapter)
  • Wire Google Gemini as a provider (API adapter)
  • Per-autopilot channel — route a report to one channel (not all)
  • Per-autopilot channel — route a report to one channel (not all)
  • Note inbound/public-URL support under the channel type select
  • Note inbound/public-URL support under the channel type select
  • Slack (Socket Mode) + Discord (Gateway) inbound chat — no public URL
  • Slack (Socket Mode) + Discord (Gateway) inbound chat — no public URL
  • Telegram inbound via long-polling — chat WITHOUT a public URL
  • Telegram inbound via long-polling — chat WITHOUT a public URL
  • Inbound chat — reply to the bot in Telegram (epic phase 4, Telegram-first)
  • Inbound chat — reply to the bot in Telegram (epic phase 4, Telegram-first)
  • Event-driven triggers (epic phase 3)
  • Event-driven triggers (epic phase 3)
  • Report kind — scheduled stats digests to channels (epic phase 2)
  • Report kind — scheduled stats digests to channels (epic phase 2)
  • UI-configurable channels (epic phase 1 — foundation for report autopilots + inbound chat)
  • UI-configurable channels (epic phase 1 — foundation for report autopilots + inbound chat)
  • Settings UI — manage scheduled recurring tasks
  • Settings UI — manage scheduled recurring tasks
  • Scheduled recurring agent work (multica-inspired)
  • Scheduled recurring agent work (multica-inspired)
  • Agent-CLI auto-detection — scan the host for known runtimes (multica-inspired)
  • Agent-CLI auto-detection — scan the host for known runtimes (multica-inspired)
  • Multi-channel "come look" pings — Slack/Discord/Telegram/MS Teams (comparison-#10)
  • Auto-open a PR/MR when a task reaches Done in push-only mode (comparison-#9, opt-in)
  • Visual-regression gate — coarse design-vs-build drift (comparison-#6, opt-in)
  • Multi-channel "come look" pings — Slack/Discord/Telegram/MS Teams (comparison-#10)
  • Auto-open a PR/MR when a task reaches Done in push-only mode (comparison-#9, opt-in)
  • Visual-regression gate — coarse design-vs-build drift (comparison-#6, opt-in)
  • Per-project token & cost budgets with auto-pause/resume
  • Apply the Anthropic prompt-cache breakpoint on the api path (was a no-op)
  • Per-project token & cost budgets with auto-pause/resume
  • Apply the Anthropic prompt-cache breakpoint on the api path (was a no-op)
  • Exact rate-limit resets from the SDK's rate_limit_event (aif-handoff idea)
  • Exact rate-limit resets from the SDK's rate_limit_event (aif-handoff idea)
  • Convergence-aware backtrack — stop early when not converging (comparison-#A)
  • Authenticated OUTWARD MCP surface for external clients (comparison-#B, opt-in)
  • Convergence-aware backtrack — stop early when not converging (comparison-#A)
  • Wire the HTTP MCP server behind KANBAN_MCP_HTTP (#1, stage 4 — cutover)
  • Long-lived HTTP kanban MCP server (#1, stage 3, opt-in)
  • Session-context registry — keystone for the long-lived HTTP MCP server (#1, stage 1)
  • Wire the HTTP MCP server behind KANBAN_MCP_HTTP (#1, stage 4 — cutover)
  • Long-lived HTTP kanban MCP server (#1, stage 3, opt-in)
  • Session-context registry — keystone for the long-lived HTTP MCP server (#1, stage 1)
  • Salvage an evaluator verdict from output when none was recorded (#3)
  • Salvage an evaluator verdict from output when none was recorded (#3)
  • Per-stage model override (KANBAN_STAGE_MODELS) — first cut of per-stage profiles
  • Per-stage model override (KANBAN_STAGE_MODELS) — first cut of per-stage profiles
  • Light/dark theme switcher + full color-token migration
  • Capture device screen for the summary when Maestro emits none
  • Capture device screen for the summary when Maestro emits none
  • Persist unsent refinements + pre-fill them into the reject message
  • Image card backgrounds + WYSIWYG preview (card matches the picker)
  • Customizable project card background + settings entry + layout polish
  • Back-to-projects icon + delete task in card overflow menu
  • Completion forecast on project cards — est. days to finish all uncompleted tasks
  • Post-login projects landing with per-project stat cards + quick switch
  • Harvest e2e screenshots into the Implementation Summary + portable export
  • Harvest e2e screenshots into the Implementation Summary + portable export
  • Class-aware Testing gates — hybrid failure classifier
  • Class-aware Testing gates — hybrid failure classifier
  • Failure-class routing for the Testing↔Implementing loop (Spec 121 a+b)
  • Failure-class routing for the Testing↔Implementing loop (Spec 121 a+b)
  • Collapse topbar account cluster into one avatar menu
  • WS auth + membership gating + presence (Spec 120 T15)
  • Scope notification reads to assigned projects (Spec 120 T16)
  • Audit log + attribution (Spec 120 T13)
  • Optimistic concurrency on task edits (Spec 120 T17)
  • Account security — pw-change, lockout, sessions, forced rotation (Spec 120 T14)
  • Session-aware UI + user management (Spec 120 T9-10)
  • Guard all API routes — capability + scope (Spec 120 T6-7)
  • Login + setup UI; fix Edge build for middleware (Spec 120 T8)
  • Auth routes + coarse middleware (Spec 120 T4-5)
  • Foundation — schema, auth service, guards (Spec 120 T1-3)
  • Upgrade to zod 4 + claude-agent-sdk 0.3.161 (matches CLI 2.1.161)
  • Accumulate planner envelopes across tool calls under per-turn cap
  • Show tool-call details in task logs
  • Auto-generate downloadable "What Was Built + User Flows" artifact on Done
  • Gate owns the authoritative Testing verdict (conclusion + run-tests)
  • Detect app-didn't-render (build/bundle) failures, surface root cause
  • Per-flow fixes, authoring carry-forward, visible Fix stages, android auto-boot
  • Tag-scoped auto mode + TagEditor component
  • Stalled-task watchdog catches Docker/sim/zombie hangs
  • Emit per-platform task log entries so UI shows gate activity
  • Per-skill carry-forward continue + retry-from-scratch
  • Auto-scaffold i18n language-switch helpers + negative-assertion guidance
  • Native-mobile testing track (Maestro) + engine-routing safety net
  • Surface patch-apply failures + audit-pass for plan refines
  • Plan review surface with cross-phase feedback routing
  • Fold design/UI/UX review into review-plan and add faithfulness check in review
  • Make feature-research cap configurable from the dialog
  • Two-layer memory schema + internal-architecture capture
  • Support submodule monorepos in worktrees
  • Emit Tool complete events so UI shows tool-call duration badges
  • File-based contentPath to bypass Copilot 16k per-turn cap
  • Reasoning-effort plumbing across all three SDK adapters
  • Render AI Output logs as markdown
  • Forward images through all SDK adapters instead of stripping
  • WEB/MOBILE/IOS/ANDROID/DESKTOP platform model + bundle fix
  • Cross-platform framework awareness + mobile e2e foundation
  • Roadmap feature-approval gate
  • Design refine UX overhaul + roadmap/plan-run/infra specs WIP
  • Full-screen review surface; compact approval dialog
  • Chat-applied design patches (phase 3)
  • Bidirectional design chat (phase 2)
  • Figma-style in-iframe comment bubbles
  • Refine batches, in-iframe pulse, side chat, history
  • UX overhaul (Spec 099) — picker, kill switch, AI fallback, direction merge
  • DependsOn + waitForPorts for service ordering
  • Reconcile port from runtime when service binds elsewhere
  • Maven/gradle stack addendums with Spring profile hint
  • Detect nested frontends + per-service envFile
  • Per-service enable/disable toggle
  • UX in plan + native design tracks + multi-screen carousel
  • Per-scene carousel in live preview surface
  • Manual-trigger jobs run before older auto-queued FIFO
  • Snapshot projectRoot WIP into a tagged commit before worktree
  • Configurable concurrency cap + parallel-skill toggles
  • Stop button to abort in-flight AI responses
  • Preserve done checkpoints + add Fix tasks on backtrack
  • Untrack already-committed files when adding gitignore baseline
  • Warn when SDK chat hallucinates kanban actions
  • Regroup Project Settings tab into headed sections
  • Image attachments, copy button, drop stale-scope threadId
  • Require homepage smoke test, fail on scaffolding stubs
  • Pair tool logs + per-task implement checkpoints
  • Floating AI chat with full app + bash access
  • Write stack-aware .gitignore baseline on first worktree
  • Fold Attachments into Details, reorder tabs
  • Add tailwind-utility-clobbered rule
  • Computed-style render-verifier catches cross-file rot
  • Close implementation pipeline + make planner design-aware
  • Add tailwind-default-suffix fix-pattern
  • Add tailwind-v4-opacity-syntax fix-pattern
  • Add vite-process-undefined fix-pattern
  • Runtime render analyzer + pattern-matched auto-fix
  • Refine UX — autoscroll, disclosure, selection bridge
  • Flow-driven design positioning
  • Surface design stages in planning when designMode=on
  • Phase 5 + 6 — drop designSystemId load-bearing paths, docs
  • Phase 4 — composer drawer surfaces brand layers
  • Phase 3 — prompt-builder + verifier read brand_layers
  • Phase 2 — preview route reads brand_layers (?projectId + ?layers)
  • Phase 1 — pristine flag + brand_layers backfill
  • Per-product-type multi-scene live preview
  • Editable productType + platforms in Settings
  • Layer-aware composer with preset picker (Spec 077 Phase 8)
  • Design as first-class Planning step (Spec 077 Phase 7)
  • Project-context awareness (Spec 077 Phase 6)
  • Unified design skill + ios/android/desktop platforms (Spec 077 Phase 5)
  • Platform targets + multi-platform design reference (Spec 077 Phase 4)
  • Scan existing codebases for layers (Spec 077 Phase 3)
  • Product type + platforms + per-platform styles (Spec 077 Phase 2)
  • Composable layers + presets API (Spec 077 Phase 1)
  • Bash audit + end-of-run stray recovery
  • No-code authoring + user catalog (Spec 076 Phase 7)
  • Catalog distinctness gate + picker UX (Spec 076 Phase 6)
  • App→project→task scope chain (Spec 076 Phase 5)
  • Post-generation verifier + alignment panel (Spec 076 Phase 4)
  • Emit System contract block in prompts (Spec 076 Phase 3)
  • Structured DesignSystemSpec parser (Spec 076 Phase 2)
  • System primary, composition secondary (Spec 076 Phase 1)
  • Phase 4 — visual polish on picker tiles
  • Phase 3 — adopt drawer in NewTaskForm + ProjectDesignTab
  • Phase 2 — DesignComposerDrawer foundation
  • Phase 1 — tokenize thumbnails + route ?tokensFrom
  • Teach NN to set designMode on UI tasks
  • Retire dead surfaces + docs (Spec 073 Phase 6)
  • Inject design + components into implement skills (Spec 073 Phase 5)
  • Multi-platform design support (Spec 073 Phase 4)
  • Visual template picker + skill thumbnails (Spec 073 Phase 3)
  • Per-task toggle + visual system picker (Spec 073 Phase 1+2)
  • Manual vs auto trigger; relax pre-merge gate for manual reruns
  • Integrated kanban UX
  • DesignOnly flag, runbook, seed script (Spec 071 Phase 4)
  • Design→implement skill + apply-to-repo (Spec 071 Phase 3)
  • Edit-in-place (Spec 071 Phase 2)
  • Iteration strip + Refine button
  • Project-level direction pin
  • Add /skills catalog browser
  • Export tokens as CSS / JSON from the catalog
  • Phase 3 — catalog browser + comprehensive E2E
  • Phase 2 — discovery form, flow override, device frames
  • Adopt open-design engine into ai-kanban
  • Add skills
  • Model dropdown sourced from /api/ai/models
  • Multi-provider chain with per-project pin + automatic failover
  • Human-wait count chip alongside inFlightCount
  • Coordinate task-Done merges + fix board freeze
  • Multiple backtrack rules per column (one per evaluator skill)
  • Stop recovery — terminate the loop without skipping through
  • Opt-in Bash for the diagnose AI
  • Copy-able shell commands inside diagnosis cards
  • See polyglot monorepo children, not just Node
  • Type-aware icons + mobile simulator/emulator launch
  • Persist logs, observable+interruptible recovery, hardened lifecycle
  • Server-side detection + recovery state survives navigation
  • Visible multi-attempt AI recovery loop
  • Pattern library + stack-aware AI diagnose
  • SDK transport now applies the fix, not just describes it
  • Zero-config UX — press Run, project starts, URL opens
  • Post-test build gate runs only affected projects
  • Post-test build gate — universal compile check after Testing skill
  • Add universal run/restart button for any project type
  • Retry inherits prior phase time so the timeline stays continuous
  • Surface reviewer verdicts + separate dialog into labeled sections
  • Preserve foundation, accumulate review feedback, stop shipping rejected plans
  • Show in-flight task indicator per project
  • Observability + Write tool in inline conflict resolver
  • Redirect to Testing after AI conflict resolution to revalidate
  • Inline AI conflict resolver between integration and block
  • Integrate base into worktree at Done — under the hood, no skill, no reroute
  • Universal task-progress contract + project-init blocking workflow
  • Edit page replaces modal + new projects ship with default board
  • Blocking init bg-process + slim project list + header cleanup
  • Rename Approval column model + add humanStepKind variants
  • Visual blueprint editor with xyflow + column CRUD/merge backend
  • Per-skill telemetry, in-loop typecheck, diff-aware review, pre-review gate
  • Ground decomposition in real project shape (digest + read-only tools)
  • Fix kanban state and background workers on project selection
  • Adoption + coverage + UX + quality overhaul (v2)
  • Skills json output
  • Move blockers and execution progress to dedicated tab
  • Make task description expandable
  • Add attachments to creation form and fix dialog layout overflow
  • Add full-page settings and statistics view
  • Consolidate dual plan/roadmap UI into single roadmap mode
  • Add inline phase indicators and comprehensive tests
  • Implement backtrack tracking - phases, time accumulation, and API routes
  • Wire upload and preview into task detail panel
  • Roadmap review
  • Add ability to unqueue tasks from execution queue
  • Merge conflicts resolution manager
  • Git clean behaviour
  • Markdown view
  • Add markdown viewer with proper spacing and table support
  • Implement task attachments with upload, validation, and storage
  • Retest on failed test result
  • Enable parallel skill execution within phases
  • Add comprehensive project statistics
  • Copilot sdk + openai fix
  • Add task blocker tracking system
  • Add manual review for tasks in approval columns
  • Persist execution logs across page refreshes
  • Add project editing and improve dropdown layout
  • Autoexecute phase on task drag-and-drop
  • Auto-expand active phase in progress view
  • Auto-expand active phase in progress view
  • Add branch visibility to task detail panel
  • Add branch visibility to task detail panel
  • Show pause button directly on running task cards
  • Display durations in digital clock format
  • Add drag-and-drop task reordering within columns
  • Add autostart on move and approval
  • Display artifacts in approval dialog for review
  • Redesign with spent time display and improved controls
  • Recover stuck tasks on startup and resume from completed phases
  • Unify artifact viewing with modal dialog
  • Add total task time display in detail panel
  • Make description textarea expandable with 10 rows
  • Show only current phase progress on task cards
  • Add phase duration display in task details
  • Add interactive AI chat for task Q&A
  • Add task editing functionality
  • Add filter buttons for log types
  • Add multi-provider adapter architecture
  • Drive tasks through flow on Run AI, simplify auto-mode
  • Add delete task button with confirmation dialog
  • Add project path display, persist last selected project
  • Initial implementation of AI Kanban app

Покращено

  • Session selector header, background-generation glow + notification, layout polish
  • Rail hierarchy, preview padding, New design action
  • Design / Plan / Flows become icon-only with hover tooltips
  • Widen task + chat side panels
  • Widen the artifact dialog for HTML designs
  • Move 'AI shell access' into the AI Diagnosis panel as a Switch

Виправлено

  • Stamp canonical verdicts on single-flow runs; nudge harness_ensure_metro adoption
  • Render the server-reported cap, never a hardcoded 5 (review catch)
  • 10s timeout on the acceptance report — never hang sign-in (review catch)
  • Unclassified orchestrator errors park blocked with a blocker row, never idle
  • Batch refine leaves a chat trail (was silent)
  • Based-on-task worktrees keep the parent's submodule gitlink
  • Board Palette glows for the pending-quiz state too
  • A redesign brief reads the current implementation
  • Live chat completion + don't resurface the quiz
  • Reconcile brandLayers before studio generation reads it
  • Self-heal the brandLayers cache when DESIGN.md drifts
  • Headingless §2 palette parses; preview accent picks the brand
  • Scanned shadcn palette shows its real colors, not a near-white strip
  • Scanned "Current" card renders its palette swatches
  • Don't deliver base-inherited submodule advances as the task's MR
  • Refresh the studio "Current" system when DESIGN.md changes
  • Preview loads fonts + the "Current" card shows swatches
  • The preview scene renders colors — normalize HSL channels in token CSS
  • Parse plain (no-backtick) DESIGN.md palette tables — the "no colors" bug
  • Rename the Design card's "Scan codebase" → "Redraft…"
  • Render Tailwind HSL-channel colors as swatches (Style Lab + palette)
  • Pin the pre-draft quiz above the composer, not at the top
  • Pre-draft quiz saves progress mid-quiz (survives navigation)
  • Cool down until the account window actually resets
  • Pre-draft quiz reuses the shared QuizCard (one quiz UI)
  • A running app's button says "Restart", not "Launch"
  • Follow-up — rename leftover user-facing Run/Runner strings
  • The pre-draft quiz survives navigation (was strandable)
  • Surface the real cause of a GET /screens failure
  • Per-account usage — each provider row uses its OWN credential
  • Brighter bar fills so meters aren't muddy on the light theme
  • Recover usage bars fast on a fresh run
  • 2 — scaffold lint for unscoped kills of shared test-infra process families
  • Port-in-use on a compose stack routes to the Brain
  • Recovery-loop coherence (pending-approval gate, two-tier consent, health-is-truth)
  • Scaffold sabotage fails the leg pre-flow; render probe targets the resolved sim
  • 2 — guard also denies inline Metro starts on the shared 8081/8082 family
  • BashGuard denies inline cross-project device sabotage from skill sessions
  • Run-tab config save targets the active run's worktree
  • Sticky account-usage cache — stop the meter flickering off
  • Hold "Stopping…" until the refresh actually ends
  • Stoppable context refresh + cancelled ≠ failed
  • Keep the top-bar reset time in the tooltip, not inline
  • Project-scoped provider for chats + visible blocked-provider notice
  • Carry the precise ALGORITHM, not just the structure
  • Reconcile ACs against the shipped app (AC is intent, not proof)
  • Reconcile plan concepts against the diff (code is truth)
  • Show the re-planned version + reject label after a rejection
  • Concept-faithful, plan-complete implementation summaries
  • A4 — heal promoted sessions orphaned before the delete-hook
  • 2 — pin/residue logic uses the pbxproj+app.json bundle-id union; pin the installed id
  • Render tables that lack a blank line before them
  • Reject a patch that unbalances code fences
  • Version refines by the group key so they supersede the base
  • Jump to the refined iteration + hide composer while refining
  • Move projectForSet out of the route module (Next route-export rule)
  • Tolerate smart-punctuation drift + auto-retry a failed plan patch
  • Silent auto-continue on quiz complete — no "please continue" bubble
  • Move the refine-batch action onto the preview toolbar
  • Grounded codebase re-scan from the Design tab
  • New EVIDENCE re-arms one fresh investigation
  • Exit-0 before first-ready is a failure; dead ≠ stalled
  • Cheap runtime digests fixed at all three layers
  • Serving affordance follows card conventions
  • The handoff line reports what the Brain actually DID
  • Stale log-file discipline — kills the same-fix recovery loop
  • TaskCard drops its QueryClient dependency — refresh rides the context
  • Cold-start retry no longer clobbered by the drift timer
  • Last page diagnosis stays visible after the service stops/fails
  • Probe verdict is NEVER suppressed; ladder is additive
  • Self-run copy gets its own Next dist dir (.next-run)
  • Dev script port is env-driven — ${PORT:-4000}
  • Run menu (incl. Run configuration) available in every phase
  • Port bump refuses when provably useless — escalates to the Brain
  • Port bump rewrites the COMMAND's hard-coded port, not just the field
  • Port-in-use-self auto-bumps the runConfig port
  • Fatal patterns without an auto-fix reach the Brain diagnosis
  • Global chat opens at the tail + auto-selects the newest conversation; drop single-platform hint card
  • Review opens the CLICKED artifact, not the stage's first
  • Undeclared CSS vars: verifier rule + Style Lab token block
  • Follow-up turns re-attach the newest prior image
  • Placeholder-marker gate stops flagging legitimate UI placeholder idioms
  • Approved actions confirm visibly — ops-chat + task-log line
  • Drop the redundant Progress heading inside the Progress execution mode
  • 5 — a late "fixed" verifier never silences live work
  • 3/r4 — cascades aren't errors; limits reach the banner
  • 2 — diagnose fix survives restart; ONE banner mechanism
  • Investigation lights the pinned banner; Stop reaches the loop
  • Review — manual Done path honors override push+MR routing
  • No-progress stops are final; activity rides the banner
  • Coherent run-recovery narrative, in-flight owns the story
  • Diverged submodule gitlinks advance to the submodule's own base
  • Headless probe classifies default-port emulator boots
  • Spec docs stay TRACKED on self-runs; exact-path redirect elsewhere
  • Port-block isolation for concurrent instances
  • Submodule auto-merge targets the SUBMODULE's own base branch
  • Keep pipeline paperwork + ALL scratch dirs out of the user's repo
  • Evict sibling-project apps from the pinned sim; forbid the skill from borrowing foreign devices
  • Shared-Metro-port squats are lint-flagged; harness gains the canonical iOS bundler pin
  • Task duration total no longer banks sleep dead-time on completed phases
  • Worktree-targeted runs investigate and diagnose the tree they execute from
  • Specs 231+232 — pin the iOS bundle URL per run; lint wrappers that ignore the iOS session pin
  • Plural runtime errors become ONE consolidated incident
  • Cross-project parallelism (web port affinity, probe TTL, lock owners)
  • Visibility setting can no longer lie in either direction
  • Total time counts AI work only, even after live WS updates
  • Recovery/comms wedge fixes (resolution resets the guard)
  • Generate-from-context works on SDK/CLI providers, not just API
  • Approval gate surfaces ALL of a selected stage's artifacts, not just the newest
  • Stop no longer duplicates the last reply (skip full save after abort)
  • Brain reply no longer disappears on tab switch (non-destructive refetch)
  • Generate Roadmap dialog footer stays inside the dialog
  • Total time matches the Progress tab (canonical, sleep-bounded)
  • Ops-thread replies answer WITH the project's context, not morning's repo
  • Render inline markdown in setup-dialog candidate previews
  • Render ARCHITECTURE.md as markdown, not raw <pre>
  • Total time excludes human-gate waits inside cycle groups
  • "needs you" recovery chat carries the PROPOSED FIX, not just the cause
  • Recovery chat never sticks on "investigating" — resolve on every terminal state
  • Diverged local base no longer over-owns sibling specs
  • Auto-gitignore the e2e scratch so it stops polluting the repo
  • Give the runtime-error triage the crashed backend's own logs
  • Collapse per-endpoint network errors + surface recovery in chat
  • One coherent story — runtime-error triage defers to active recovery
  • Schedule crons in local machine time, not UTC
  • Don't bank a slept phase's idle wall-clock across retries
  • Task-logs download uses the same task-title prefix as artifacts
  • Tune color pickers no longer clipped/hidden
  • Copy-message works over non-localhost http (insecure context)
  • Show a chat-style working banner, not a Tool-call stack
  • AVD provisioning must produce consistent, installed-image AVDs
  • Pin-less projects get a per-project AVD, not the shared morning_e2e
  • Brain task proposals show without a manual reload
  • Surface the reason a blocked task won't run (Spec 149 follow-up)
  • Mobile designs bucket into the iOS track, not Web (Spec 090/117)
  • Carousel per-screen render fills the frame, not center-bleed
  • Lock the plan on a design-scoped rejection
  • Reconcile screenIds BEFORE the fan-out/screen-count gate
  • Reconcile task.screenIds from the plan at design fan-out entry
  • Reject data-screen on a non-<section> element
  • Reject invented screen attributes at the plan gate (Spec 209 #1)
  • Hide empty streaming bubble until first token; global chat routes new work to tasks
  • Reject screen-attribute lookalikes (one-column stack)
  • Pass visibility intent through to the affinity boot (recycle-windowed)
  • Collapse the setup-hang killed message to the stable family too
  • Killed-run message gives facts + investigate tools, not a flow-blaming guess
  • Stable identity + environment class for 0-owned-executed coverage fail
  • Min-h-0 on task + floating chat scroll areas so autoscroll works
  • Pre-merge snapshot of dirty base — stop merges blocking on uncommitted tracked files
  • Exclude human-step gate time from task work duration
  • Idempotent manual Run — a repeat press is never weaker
  • Re-pump the board when a mobile task leaves the device phase
  • Whitespace-tolerant fallback for rendered-DOM SEARCH drift
  • Count thinking as activity in the task refine chat
  • Scroll the Edit channel dialog body
  • Reachable run config + honest label during recovery
  • One-way Android visibility recycle — stale headless emulators re-boot windowed
  • Proposals remember they were acted on
  • Don't mistake emulator -list-avds warnings for AVD names
  • Morning-prefixed AVD name in the bootstrap (create + boot)
  • Narrow android categorical block — respect AVD creation
  • Blocked-task sweep idempotence per blocker, not per task
  • Block fast on categorical android absence, don't loop the budget
  • Audit-cover the skill editor PUT; pin keepMessageOnAbort semantics
  • Nudge for a missing entry canary on app-not-rendering
  • Route app-not-rendering to Development, not Testing-in-place
  • Stable identity for app-not-rendering gate loop
  • The gitlink guard verifies the task's delta, not the repo's standing debt
  • One blocked message — the triage IS the notification
  • Done-push failures create a git_error blocker
  • Dedup identical ⚠ git: warnings at the log choke point
  • Drop the wrong legend on the Types pie
  • Dangling-gitlink guard fetches before refusing
  • Content-aware submodule delivery — housekeeping merges never become MRs
  • Scope newline preservation to paragraphs (kill the big gaps)
  • Auto-scroll every chat to the bottom on open
  • False "no flows found" on all-green runs — digit-bound the count probe
  • Move model-tiers note, fix ?tab deep link, chart colors, drop design note
  • Preserve newlines in chat messages
  • Unique click selector for siblings sharing a class
  • Profile avatar matches the task-card avatar
  • Collapse the task-details Screenshots section by default
  • Direction-aware drag reorder + no misleading drop animation
  • Fit the lightbox image to the dialog, don't overflow
  • Fallback never steals a foreign-pinned device
  • Flip to 'running' on any non-running status at run start
  • Fix test-surfaced follow-up defects in-task, never defer
  • Unwritable-tree blocking + evidence freshness
  • No queued-status flash on Run when a slot is free
  • Rate-limit banner counts only limit blockers, not any retryAt
  • AI status reads "Not available" instead of "none — not connected"
  • Pin approval footer + add 'one per feature' granularity
  • Surface ask_user_quiz so the Brain asks batches as a quiz, not prose
  • Composer textarea auto-grows with its content
  • Stop no longer removes the sent question
  • Flaky-gate loop defenses — honest rebuilds, stable signatures, honest verdicts
  • Thread project device pins into skill/wrapper runs
  • Setup-abort false positive + verdict-parser hardening
  • App-shell flex column so top banners don't break scrollable screens
  • Show the thinking banner on switch-back (Spec 186 follow-up)
  • Restore switched-away chat message + live "writing" bar
  • Cache stable prefix + ride SVG as source, not vision
  • Ceiling is a sanity backstop, not a budget — inactivity governs
  • Restore generous ceiling — don't cut off a producing run
  • Cap reasoning effort — design is generative, not a thinking puzzle
  • SVG attachments ride as a reference, not inlined into the brief
  • Stop agentic repo-crawl hangs — generate from injected context
  • Accept SVG attachments (route as text source, not a vision image)
  • Watchdog fires only on true INACTIVITY (thinking counts as active)
  • No-PROGRESS watchdog + honest phase/banner (studio generation)
  • Vacuous-green diagnosis says fix-the-RUNNER when owned flows exist
  • Idle-based generation watchdog + live tool/thinking banner in studio
  • Tool-call crawl re-arms the first-output watchdog
  • Phase-aware watchdog + cancel — stop 30-min "reading your project" runaways
  • Morning heals the retired global Maestro lock itself
  • Quiz/side-channel broadcasts must append, not hijack the temp bubble
  • Manual restart cancels the in-flight blocker triage
  • Instance-scope the mobile gate boot pre-flight
  • Count model thinking as activity + always clear the chat spinner
  • Extract the LAST complete HTML document from model output (blank preview)
  • Bare 'budget' regex made not-converging blockers invisible to triage
  • Flow attribution on the wrapper path + in-attempt suite verify
  • Auto-create per-project Android emulator on first run
  • Render pasted images as small zoomable thumbnails
  • Render data:image attachments in messages (were showing as filename text)
  • Enforce feature coverage per declared platform — close vacuous-green gates
  • Address Spec 175 code-review findings
  • Dynamic base-branch resolution — follow the checkout, no env, no hardcodes
  • Approval-dialog design chat sees the full design — unify on the studio core
  • Platform picker preselects the project default regardless of the design switch
  • E2e gate integrity — pin-aware scoping, mobile QA baseline, serial-guarded adb
  • Default platformTargets to the project platform so tasks aren't shipped without e2e
  • Promote a refined design as the screen head (refines no longer leave heads pinned to the pre-refine design)
  • Post-test build gate writes a superseding PASS so a resolved failure stops looping the task
  • Task chat can reach every artifact — full content via temp files + relevance order
  • Design refines collapse to one latest version (implement no longer anchors on stale design)
  • Verification claim gate supersedes its prior FAIL on recovery (Spec 169 r10)
  • Stream tool activity to the studio chat banner (Spec 166 follow-up)
  • Chat sees the full document + liveness-based turn guard
  • Review suggestions — approval resets debate seed history
  • Never truncate consumed artifacts + planning-loop guards
  • Resolve screen heads across mixed platform keys
  • Gate refresh-from-app on SDK transport (Spec 161 review #2)
  • Surface SDK tool activity on task chat + unify the thinking banner
  • Guard against dangling submodule gitlinks on delivery
  • Atomic cross-process run claim (Spec 153 Task 16 review)
  • Heartbeat lease so a live run isn't reclaimed cross-process (Spec 153 Task 16)
  • Register launch timers/siblings for stop + sync first-track PID flush (Task 10)
  • Don't cross-swap concurrent asks on WS broadcast (Spec 153 Task 11)
  • Retry decomposition on an unparseable response (Spec 153 Task 7)
  • Route native-toolchain build failures as environment (Spec 155 Phase 1)
  • Hydrate FloatingChat unread badge on mount + WS reconnect (Task 3)
  • Resync plan-run state on WS reconnect (Spec 153 Task 7)
  • Supersede pending questions on abort/error, not just finalize
  • CAS approve/cancel so a race can't clobber a terminal state (Task 7)
  • Verify app still installed before native build-skip
  • Rowid watermark eliminates same-second boundary loss
  • Boot-reconcile orphaned 'generating' sessions to error
  • Guard constructor apply against lost updates (base-hash precondition)
  • Make promoteDesignSession race-safe (one task per session)
  • Make applySnapshot atomic — one transaction, no torn board
  • Default to no-patch banner on a change-framed ask
  • Record collapsed cron ticks after downtime instead of silent skip
  • Distinct user-facing warning when a configured backend is broken
  • Completion gate trusts emit-time taskDone, not a post-hoc re-read
  • Explicit disabled channel skips, never broadcasts to all
  • Surface reconcile failure as a distinct needs-review notification
  • Surface an unhonored model-tier request on the task (Spec 153 Task 20)
  • Quarantine a poisoned project after repeated apply failures (Spec 153 Task 5)
  • Reset everyN counter only on a real fire (Spec 153 Task 16)
  • Boot-prune SIGKILL-orphaned QA/docs run worktrees (Spec 153 Task 16)
  • Prune merged docs-refresh branches (Spec 153 Task 16)
  • Synchronous FTS index write closes the crash-drift window (Spec 153 Task 14)
  • Atomic interrupt claim prevents double-apply — Task 17 complete
  • Sweep skips in-flight triage to prevent double-triage (Spec 153 Task 17)
  • Expire open brain-action interrupts on task finalize (Spec 153 Task 9)
  • Label degraded-classification fix tasks (Spec 153 Task 17)
  • Surface a note when triage investigation fails (Spec 153 Task 17)
  • Flag savedPartial after the real save, not before (Spec 153 Task 11)
  • Persist inbound offset per-update to stop replay double-replies (Spec 153 Task 11)
  • Preserve screen gates on blockedBy replace; drop redundant strip
  • Guard blockedBy against dependency cycles
  • Inbound routing always replies, even on total failure (Spec 153 Task 11)
  • Explicit budget-exhaustion signal on propose (Spec 153 Task 17)
  • Null worktreeInfo on teardown so leaked plan-run worktrees sweep (Spec 153 Task 7, partial)
  • TOCTOU run-launch guard + budget-gate auto fix-tasks (Spec 153 Task 16, partial)
  • Distiller in-flight guard prevents double-distill (Spec 153 Task 14, partial)
  • Wall-clock safety timeout on both /ask routes (Spec 153 Task 11, partial)
  • Reconnect resync + wildcard replay RBAC + backoff (Spec 153 Task 3, mostly)
  • Durability cluster — recovery, re-entrancy, rebuild-cancel, sibling kill (Spec 153 Task 10)
  • Clean up sync state + tags on delete/sign-out (Spec 153 Task 6, mostly)
  • Bounded retry on outbound sends (Spec 153 Task 19, partial)
  • Per-project in-flight latch coalesces concurrent syncs (Spec 153 Task 5, partial)
  • Deterministic same-second log ordering via rowid (Spec 153 Task 13, partial)
  • Resolve incidents when a task's blockers clear (Spec 153 Task 17, partial)
  • Atomic + serialized DOMAIN.md writes (Spec 153 Task 20, partial)
  • Expired cloud token no longer sticky-disables the provider (Spec 153 Task 8, partial)
  • Supersede pending questions above the project guard (Spec 153 Task 9, partial)
  • Suspend-tolerant watchdog deadlines (Spec 153 Task 12)
  • Device lock on the direct Maestro path — closes the audit P0 (Spec 153 Task 4)
  • Ephemeral-table prune sweep + fault-isolated boot recovery (Spec 153 Task 1)
  • Atomic read-modify-write hardening (Spec 153 Task 2)
  • Declutter the header — meta line + separate labels row
  • Task-card actor avatar leads the footer on the left
  • Render markdown in the TL;DR card (was showing literal * / **)
  • Verify a stale build-gate verdict before escalating
  • Self-healing base integration
  • RCT_METRO_PORT is compile-time — bare-RN launches use RCT_jsLocation (device-verified)
  • Bare-RN apps launch with SIMCTL_CHILD_RCT_METRO_PORT — deep links can't carry a port
  • End expo at install-complete — its stray :8081 deep link can hit ANOTHER project
  • Expo rejects --port with --no-bundler — heal the deep-link race by detection instead
  • Kill the 'No script URL provided' race — expo deep-links to the right Metro
  • Backlog-aware dependency blocking
  • Make the expected osascript/TCC note actionable
  • Stop Chrome autofill from ghosting the settings page
  • The rejecting evaluator must re-judge — never carry its checkpoints
  • Plan-debate feedback must not repaint a studio-approved design
  • Show the TL;DR once — strip the markdown copy under the hero card
  • Never stream raw patch code into the chat bubble
  • Repeated components fan out to all instances instead of failing
  • Selector-aware HTML windowing — the model could not see end-of-body elements
  • Make the stream real — the idle watchdog starved on a silent SDK
  • Stop killing healthy generations at the wall-clock (the 'aborted by user' error)
  • Sleep-aware stall handling — keep-awake assertion + loop-guard exemption
  • Apply ?tab= deep link post-hydration (review finding)
  • Narrate the instant iOS launch path
  • Verify iOS launches against the NATIVE project's bundle id
  • Annotate expo's expected osascript failure in the run log
  • Heal the "No script URL provided" cold dev-client launch
  • Self-finishing expo run:ios — survive the osascript step, target the runner's Metro
  • Reverse ALL service ports on android launch + Brain owns diagnose bash
  • Expo run:android device naming + late adb reverse + iOS launch narration
  • Visible pinned-emulator boots + honest picker + sticky iOS pin
  • Spirit-guide launch fixes — verified iOS deep-links + per-project AVD creation
  • Review of 6aff5de — unblock the event loop on sim boot + idempotent tests
  • Durable multi-emulator mobile runs (spirit-guide Metro conflicts)
  • Stop Done↔Testing livelock — ignore merged-in base commits in the unvalidated-changes check
  • Honor 'skip' phase-control at backtrack re-entry too (parity with pause)
  • Honor a 'pause' phase-control at backtrack re-entry, not only fresh forward entry
  • Build the app from base before mobile docs capture
  • Mobile designs fill the viewport — stop self-drawing a phone shell (phone-in-a-phone)
  • Manual drag-to-Done runs the Done column skills (commit + summarize) before merging
  • Structured Maestro verdicts, device leases, per-platform locks, build skip
  • Remove env knobs — same-error cap hardcoded at 3, lifetime backstop deleted
  • Signature-scoped loop guard + Brain-first blocker triage
  • Visible selection on click + pending sweep through background refines
  • Model runs survive client disconnects in all four review-chat routes
  • Auto-resume the latest session per platform on load
  • Tabs mirror the project's declared platforms; route renamed to /design-studio
  • Project-scoped, background generation, attachments, per-platform sessions, full project context
  • Honor designDisabled in the planner's design-context builders
  • Auto-resolve native/config churn to base — mobile Done merges stop blocking on the same 9 files
  • Make the build-artifact untrack async so it doesn't freeze the UI
  • Make the untrack-on-add step work on large repos (85k tracked build files)
  • Recover from a timed-out base merge instead of blocking Done
  • Post-delivery race guard + RN/Expo build-output gitignore baseline
  • Log merge success on the manual move-to-Done path
  • Never force-sync a DIRTY submodule (preserve mid-phase work)
  • Honor the e2e skill's failureClass verdict (stop the Testing loop)
  • Don't block backend-diagnostic curl/docker (URL & API routes aren't file paths)
  • Route a failed server-address setup flow as environment
  • Don't claim "Patch applied — re-queued" when the patch wasn't applied
  • Don't run the generic JVM `classes` task against Android/RN projects
  • Don't freeze the UI while merging the default branch (async git fetch/merge)
  • Stop duplicate "Skill stalled" blockers + pause orphaned runs
  • Match pipeline legend colors to segments; liven the equalizer
  • Publish task_updated on every status change (instant board updates)
  • End the "Brain working" indicator when the Brain produces its answer
  • Also delete the empty WIP-pushed remote branch on no-changes
  • Don't push + open a PR when the branch has no real changes vs base
  • Unqueue clears a stranded queued task; revert the stranding hybrid
  • Resilient migrate — record + skip a drifted migration instead of stopping
  • Free Android storage harder — clear staged APKs + logcat before evicting apps
  • Capacity-waiting tasks bypass the stalled-skill detector
  • Clear message when a mobile port can't be bumped (was "no free port")
  • Scope the floating chat to the project on screen (URL ?project=)
  • Open installed dev client via deep link instead of rebuilding
  • Reflect Brain autonomy ON-by-default in the UI
  • Reap orphaned worktree Metro/dev-servers at startup
  • Never port-bump a mobile/Metro service (breaks the device app)
  • Give the e2e SKILL the dynamic Metro port too (stop 8081 squat)
  • Reap stale worktree Metro before provisioning (no 8081 squat)
  • Actually kill running Android emulators in cleanup (emu kill)
  • Clean up stranded mobile devices on boot + shutdown
  • A full column no longer head-of-line-blocks the queue
  • Inject RCT_METRO_PORT for Expo/Metro services (not just PORT)
  • Manual runs bypass per-column capacity — run separately, not queued
  • Idle-stalled skill auto-resumes instead of freezing the board
  • Requeue in-flight tasks on shutdown so auto-mode resumes them
  • Overwrite the stale FAIL with a PASS so a fixed task recovers
  • Retry RESETS the backtrack budget so a fixed task can recover
  • Surface a NEW thread (Brain triage) live, not only after reload
  • Don't let a passing gate mask a failing sibling gate
  • Distinguish paused from running in Happening now
  • Kill a task's e2e daemons (Metro / dev-servers) before teardown
  • Sort platform icons by a fixed canonical order
  • Surface the e2e-skip cause + show platform icons on cards
  • Scope the escalation to Implementing as PRODUCT-ONLY (no test edits)
  • Name the off-screen/scroll cause of an assertVisible failure
  • A phase reset must clear carry-forward so skills actually re-run
  • Scan the WORKING TREE, not stale committed HEAD
  • DnD into a column (and Retry-from-scratch) restarts the phase
  • A phase-control pause runs through backtrack loops, not re-pause
  • Manual resume of a blocked task resets the backtrack budget
  • HEAD-independent hard loop cap — stop infinite retry on a recurring blocker
  • Durable per-phase WIP snapshot — stop losing worktree (esp. submodule) work
  • Route a real app-compile failure to Implementing, not Testing
  • Group the synthesized plan into Planning, not OTHER
  • Dedup the live artifact list + hide ensemble candidates
  • A candidate's set_phase_conclusion must not abort its siblings
  • Target the repo's real default branch + integrate submodule base
  • Make the anti-loop guard worktree-state-aware
  • Run the production build in Testing, not just the test suite
  • Force-end the turn after set_phase_conclusion even when busy
  • Resolve task flowId from type label on create/edit/run
  • Manual resume clears provider limit-cooldown
  • Detect touched submodules by committed gitlink, not drifted clone HEAD
  • Drop the skip/pause badge from the task card
  • Two loops on the same task — phantom tsconfig claim + e2e re-scaffold
  • Manual move-to-Done now opens the PR/MR (parent + submodules), like the auto flow
  • Enforce per-column capacity at DISPATCH (incl. manual resume)
  • Handle a vanished worktree — restore from branch, else block clearly
  • Cooldown pause must be 'paused', not 'blocked', or it never resumes
  • Give the chat each task's WORKTREE path so it stops inspecting `main`
  • Classify prepare/expo INSTALL failures as 'install' (env), not 'build'
  • Move 🧩 subagent filter to its own sub-row under the main filters
  • "Task run complete" fires only at genuine task-done, not every phase
  • "Task run complete" no longer fires on blocked tasks
  • Race-free stick-to-bottom (scrollbar-drag up no longer yanks)
  • Stick-to-bottom no longer yanks the view when you scroll up
  • Per-column mode relaxes the global cap; show count/max in column header
  • Fan out on resume when the skill hasn't produced its artifact yet
  • Re-run the producer on a backtrack — Fix items were skipped + rubber-stamped
  • Persist subagent count — patch schema dropped flow.ensembleConfig
  • Fail-fast + environment-route on a setup/backend abort (API not healthy)
  • Auto-resumable blocker when all providers are in limit-cooldown
  • Patch-id-aware unvalidated-commit check + clear stale gate conclusion
  • Signature fingerprint for issue-less failures (silent-loop hardening)
  • Prebuild native dirs in the worktree (Expo CNG gitignores ios/)
  • Expo prebuild before iOS build — fixes "xcworkspace does not exist" loop
  • Remove CI=1 from the gate env — it broke native expo builds
  • Scope the tag picker to NOT-done tasks only
  • Show the LATEST phase row's conclusion, not a stale early attempt
  • Don't salvage a verdict for the gate-evaluated e2e skill
  • Tell the agent the evidence/toolchain dirs ARE readable on a read-deny
  • Drop non-null assertion (unknown eslint rule broke build)
  • Confine outputFileTracingRoot (fixes Windows EPERM Application Data)
  • Create-project silently failing + dashboard New Project card
  • Reliably skip migrations during desktop build + retry on lock
  • Ad-hoc re-sign macOS bundle after afterPack (fixes 'damaged')
  • Skip DB migrations + backfills during next build (SQLITE_BUSY race)
  • App icon + empty-window (better-sqlite3 ABI) + free ports
  • Use Morning sun mark on the dashboard header
  • Replace Bot header icon with Morning sun mark
  • Apply Windows .cmd/shell fix to after-pack hook too
  • Shell:true for Windows .cmd spawns (Node 20 EINVAL)
  • Unsigned mac build, Linux homepage, Windows rebuild bin
  • Harness lib v3 — clean the DRIVER, not the whole emulator
  • Allow mobile/web test toolchain paths outside the worktree (cross-OS)
  • Allow mobile/web test toolchain paths outside the worktree (cross-OS)
  • Route server/runtime infra failures to environment, not product
  • Close budget-leak under interruption + add maxBacktracks floor
  • Route server/runtime infra failures to environment, not product
  • Close budget-leak under interruption + add maxBacktracks floor
  • Branch new tasks from origin/<base>, not the drifting local base
  • Branch new tasks from origin/<base>, not the drifting local base
  • Exclude desktop/ from root tsconfig type-checking
  • Exclude desktop/ from root tsconfig type-checking
  • Logs autoscroll no longer fights scroll-up under a fast feed
  • Logs autoscroll no longer fights scroll-up under a fast feed
  • Keep e2e harness/connection failures in Testing, not Implementing
  • Keep e2e harness/connection failures in Testing, not Implementing
  • Settle on process exit, not stdio close (orphaned-daemon root fix)
  • Settle on process exit, not stdio close (orphaned-daemon root fix)
  • Name the orphaned-daemon-FD cause so the e2e skill can fix it
  • Name the orphaned-daemon-FD cause so the e2e skill can fix it
  • Show the live Done-phase progress on the card (was a blank Done card)
  • Show the live Done-phase progress on the card (was a blank Done card)
  • Don't silently complete a broken delivery — block on PR auth-fail + un-pushable submodule
  • Don't silently complete a broken delivery — block on PR auth-fail + un-pushable submodule
  • Resolve planRun scope by run_id + scope asset upload by board
  • Resolve planRun scope by run_id + scope asset upload by board
  • Defer to PRODUCT-class skill FAIL only — don't loop the finished feature on unrelated drift
  • Defer to PRODUCT-class skill FAIL only — don't loop the finished feature on unrelated drift
  • Gate fails when the e2e skill fails — defer to ANY skill FAIL, not just product
  • Gate fails when the e2e skill fails — defer to ANY skill FAIL, not just product
  • Don't override a PRODUCT-class skill FAIL with an owned-spec pass
  • Don't override a PRODUCT-class skill FAIL with an owned-spec pass
  • Don't flag/recover intentional project-root writes (DESIGN.md, .gitignore)
  • Don't flag/recover intentional project-root writes (DESIGN.md, .gitignore)
  • KeyFailureLine ignores optional-step WARNED noise, prefers the hard assertion
  • KeyFailureLine ignores optional-step WARNED noise, prefers the hard assertion
  • Lead the failure reason with the REAL engine error, not Spec-115 boilerplate
  • Lead the failure reason with the REAL engine error, not Spec-115 boilerplate
  • A build killed for silence is a timeout, not a compile error
  • A build killed for silence is a timeout, not a compile error
  • Drive single-flow maestro-run.sh wrappers per-flow
  • Drive single-flow maestro-run.sh wrappers per-flow
  • Re-wiring an edge moves the column's board position too
  • Re-wiring an edge moves the column's board position too
  • Make scroll-up actually stick — gate follow on a ref, not racy state
  • Make scroll-up actually stick — gate follow on a ref, not racy state
  • A column inserted mid-pipeline renders at that spot on the board, not last
  • A column inserted mid-pipeline renders at that spot on the board, not last
  • Stick-to-bottom autoscroll instead of always force-scrolling
  • Stick-to-bottom autoscroll instead of always force-scrolling
  • Block on non-convergence instead of advancing to the (already-passed) Approval gate
  • Block on non-convergence instead of advancing to the (already-passed) Approval gate
  • Delegate native build to maestro-prepare (correct binary) + aggressive android storage self-heal
  • Delegate native build to maestro-prepare (correct binary) + aggressive android storage self-heal
  • Freeform plan reject snapshots a version too (history/diff after any reject)
  • Freeform plan reject snapshots a version too (history/diff after any reject)
  • Provision the runtime (Metro + seed) via maestro-prepare before native flows
  • Provision the runtime (Metro + seed) via maestro-prepare before native flows
  • Dedup event fires per source task — stop the per-event task flood
  • Dedup event fires per source task — stop the per-event task flood
  • Keep raw markdown in acceptance criteria so bold/code render
  • Keep raw markdown in acceptance criteria so bold/code render
  • Scope the Statistics route as a board, not a project (RBAC 404)
  • Scope the Statistics route as a board, not a project (RBAC 404)
  • Universal install-failure self-heal + classify by step, not error string
  • Universal install-failure self-heal + classify by step, not error string
  • One column field (filter = destination) + actually RUN the created task
  • One column field (filter = destination) + actually RUN the created task
  • Trim task card title right padding (pr-16 → pr-14)
  • GenerateId works in non-secure contexts (LAN HTTP)
  • Trim task card title right padding (pr-16 → pr-14)
  • GenerateId works in non-secure contexts (LAN HTTP)
  • Signing-proof iOS fallback must build the APP scheme, not a pod
  • Signing-proof iOS fallback must build the APP scheme, not a pod
  • Caller's MAESTRO_DEVICE must win; flag wrong-platform builds
  • Caller's MAESTRO_DEVICE must win; flag wrong-platform builds
  • Integrate latest base into the task branch before push
  • Integrate latest base into the task branch before push
  • Seconds-free compact duration that doesn't overlap the task title
  • Seconds-free compact duration that doesn't overlap the task title
  • A post-conclusion hang COMPLETES the phase, not a timeout-fail
  • A post-conclusion hang COMPLETES the phase, not a timeout-fail
  • Expo build must use --no-bundler (+ pin sim) so it terminates
  • Expo build must use --no-bundler (+ pin sim) so it terminates
  • Recoverable blocked tasks; iOS signing is environment not product
  • Recoverable blocked tasks; iOS signing is environment not product
  • A skill may only complete checkpoints it OWNS (no cross-skill ticking)
  • A skill may only complete checkpoints it OWNS (no cross-skill ticking)
  • Treat set_phase_conclusion as authoritative done — short grace then force wrap-up
  • Treat set_phase_conclusion as authoritative done — short grace then force wrap-up
  • Break the stream at the terminal `result` (root cause of stuck-on-conclusion)
  • Break the stream at the terminal `result` (root cause of stuck-on-conclusion)
  • Tool-aware idle watchdog — catch the SDK turn that never ends
  • Tool-aware idle watchdog — catch the SDK turn that never ends
  • On resume, scope the implement prompt to its OWN checkpoints
  • On resume, scope the implement prompt to its OWN checkpoints
  • On resume, skip worker skills whose checkpoints are already done
  • On resume, skip worker skills whose checkpoints are already done
  • MCP emit can't hang a tool; honest stall labels + low-disk fast-fail
  • MCP emit can't hang a tool; honest stall labels + low-disk fast-fail
  • Don't re-execute an already-finished phase on resume
  • Don't re-execute an already-finished phase on resume
  • Stop run events redirecting to dashboard-picked project + unclickable dialog X
  • Stop run events redirecting to dashboard-picked project + unclickable dialog X
  • Harvest mobile screenshots from the worktree + require flows to test to the result
  • Harvest mobile screenshots from the worktree + require flows to test to the result
  • A gate PASS must not override the skill's explicit FAIL
  • A gate PASS must not override the skill's explicit FAIL
  • Don't block a "no device booted" skip as a creds failure
  • Don't block a "no device booted" skip as a creds failure
  • Reject marks Approval phase failed, not completed (no 100%-green)
  • Reject marks Approval phase failed, not completed (no 100%-green)
  • Durable backtrack budget + a failed fix can't reach Done
  • Durable backtrack budget + a failed fix can't reach Done
  • Self-seed evaluator checkpoints so the loop is never invisible
  • Self-seed evaluator checkpoints so the loop is never invisible
  • Web gate PASS overrides the e2e skill's self-fail (stop the drift backtrack loop)
  • Web gate PASS overrides the e2e skill's self-fail (stop the drift backtrack loop)
  • Fold backtrack Fix checkpoints into the worker group (not a "Steps" group)
  • Fold backtrack Fix checkpoints into the worker group (not a "Steps" group)
  • Place Export in the Logs sub-filter row, not the main tab strip
  • Place Export in the Logs sub-filter row, not the main tab strip
  • Re-run the reviser's DOWNSTREAM worker skills too, not just the reviser
  • Re-run the reviser's DOWNSTREAM worker skills too, not just the reviser
  • Catch Maestro false-green + stop embedding failure-frame screenshots
  • Catch Maestro false-green + stop embedding failure-frame screenshots
  • Treat a transient unhealthy stack as environment-retry, not a block
  • Treat a transient unhealthy stack as environment-retry, not a block
  • Apply ownership scoping to the forced-reporter fallback too
  • Apply ownership scoping to the forced-reporter fallback too
  • MobileLaunchButtons — drop redundant target !== 'web' that broke the build
  • MobileLaunchButtons — drop redundant target !== 'web' that broke the build
  • Soften user chat bubble + float mobile device picker as overlay
  • Soften user chat bubble + float mobile device picker as overlay
  • Teams — support Power Automate Workflows webhooks (MessageCard was rejected)
  • Teams — support Power Automate Workflows webhooks (MessageCard was rejected)
  • Hide Target column for event-driven tasks (event fires regardless of column)
  • Hide Target column for event-driven tasks (event fires regardless of column)
  • Friendly schedule, derived report period, drop Flow, scrollable dialog
  • Friendly schedule, derived report period, drop Flow, scrollable dialog
  • Require screenshots on MOBILE + for any UI task (was web/design-only) — empty summaries
  • Require screenshots on MOBILE + for any UI task (was web/design-only) — empty summaries
  • Block on alwaysLoad + fast-boot the kanban MCP child to stop status='pending'
  • Block on alwaysLoad + fast-boot the kanban MCP child to stop status='pending'
  • Legible dark log console in both themes + eye-comfort palette pass
  • Make ThemeToggle segments share width so they fit the account menu
  • Widen the MCP-connect retry (startupTimeout is inert) to span the post-gate load spike
  • Widen the MCP-connect retry (startupTimeout is inert) to span the post-gate load spike
  • Clear stale FAIL artifact on pass; drop misleading final-state device screenshot
  • Clear stale FAIL artifact on pass; drop misleading final-state device screenshot
  • Stop re-running e2e authoring on backtrack — sync prompt skip-markers with the row
  • Stop re-running e2e authoring on backtrack — sync prompt skip-markers with the row
  • Give the kanban MCP server a generous startup timeout (fragile-timeout root cause)
  • Give the kanban MCP server a generous startup timeout (fragile-timeout root cause)
  • Re-running tests must also reset the downstream results checkpoints
  • Re-running tests must also reset the downstream results checkpoints
  • Retry the SDK session on intermittent kanban-MCP connect failure
  • Retry the SDK session on intermittent kanban-MCP connect failure
  • Hide harvested e2e screenshots from attachments + export only referenced
  • Hide harvested e2e screenshots from attachments + export only referenced
  • Force JSON reporter when no report found, instead of hard-block
  • Force JSON reporter when no report found, instead of hard-block
  • Deterministically rebuild native app on missing-module crash
  • Deterministically rebuild native app on missing-module crash
  • Launch tsx MCP servers from local bin, declare tsx as dependency
  • Launch tsx MCP servers from local bin, declare tsx as dependency
  • Startup Claude CLI↔SDK version-skew check + skip wrong-platform pinned CLI
  • Block the task when the kanban MCP server never connects (don't silently stall)
  • Block the task when the kanban MCP server never connects (don't silently stall)
  • Clean cover-band card background (drop the muddy scrim)
  • Project page "Back" returns to wherever you came from (router.back)
  • Project page "back" goes to the dashboard, not a hardcoded board
  • Back-to-projects is icon-only with a tooltip (no inline text in the topbar)
  • See test files inside git submodules (stop the false "claimed-but-missing" loop)
  • See test files inside git submodules (stop the false "claimed-but-missing" loop)
  • Bound stalled/hung phases in project statistics duration (no more "duration stack")
  • Bound stalled/hung phases in project statistics duration (no more "duration stack")
  • App sign-in 401 / E2E_PASSWORD is the e2e skill's to fix (retryable), not a human block
  • App sign-in 401 / E2E_PASSWORD is the e2e skill's to fix (retryable), not a human block
  • Never carry the "Run tests" checkpoint forward — re-run + re-validate every entry
  • Never carry the "Run tests" checkpoint forward — re-run + re-validate every entry
  • Mobile gate resolves Android SDK env itself (adb/emulator/maestro on PATH)
  • Mobile gate resolves Android SDK env itself (adb/emulator/maestro on PATH)
  • Mobile gate blocks-for-human only on USER-OWNED failures; device/toolchain stays retryable
  • Mobile gate blocks-for-human only on USER-OWNED failures; device/toolchain stays retryable
  • Drop single-skill idle timeout (it killed long e2e); rely on a generous wall-clock cap
  • Drop single-skill idle timeout (it killed long e2e); rely on a generous wall-clock cap
  • Clamp idle tails on terminal phase rows closed long after work stopped
  • Clamp idle tails on terminal phase rows closed long after work stopped
  • Auto-boot an iOS simulator in the mobile gate + fuller iOS setup in e2e skill
  • Auto-boot an iOS simulator in the mobile gate + fuller iOS setup in e2e skill
  • Mobile coverage gate blocks (non-retryable) when nothing ran
  • Mobile coverage gate blocks (non-retryable) when nothing ran
  • Stop counting pause/idle tails in per-task Total Time
  • Stop counting pause/idle tails in per-task Total Time
  • Integrate origin/<base> too + make run-start base refresh visible
  • Integrate origin/<base> too + make run-start base refresh visible
  • Refresh task worktree from base at run start (stale-infra fix)
  • Cap single-skill execution with an absolute wall-clock ceiling
  • Refresh task worktree from base at run start (stale-infra fix)
  • Cap single-skill execution with an absolute wall-clock ceiling
  • Web e2e gate catches "pre-feature frontend image" feature-UI skips
  • Web e2e gate catches "pre-feature frontend image" feature-UI skips
  • Block non-retryable infra/credential e2e failures immediately instead of looping
  • Durable web e2e gate — never ship a web task whose browser suite didn't run
  • Block non-retryable infra/credential e2e failures immediately instead of looping
  • Durable web e2e gate — never ship a web task whose browser suite didn't run
  • Block task when backtrack budget exhausted instead of advancing
  • Block task when backtrack budget exhausted instead of advancing
  • Setup/login form feedback + Secure-cookie over HTTP
  • Make e2e tests required and block if was not executed
  • Mcp server calls update
  • Don't count pause→resume idle time as phase duration
  • Pin the Claude CLI to the SDK's version so MCP works
  • Claude path resolution fails loudly + health check matches runner
  • Extract resume hints from provider limit errors for auto-resume
  • Debate-loop evaluator dropdown can show/select non-column critics
  • Repair stale Planning debate evaluator ('plan' → 'review-plan')
  • Relabel pre-merge WIP commits into proper conventional commits
  • Make mobile-singleton barrier symmetric + device-phase-only
  • Scope mobile-singleton barrier to the device phase, not task start
  • Guard the APP-facing backend URL + enforce app==harness isolation
  • Reset a partially-run skill's checkpoints on resume of a paused phase
  • Deterministic backend-isolation guard + hardened discovery
  • Enforce isolated backend + speed up Android Maestro input
  • Stop false 'missing artifacts' on '|' separators, design, prose plans
  • Scope authoring carry-forward to intent='auto' only
  • Mobile-coverage gate owns the run-tests checkpoint
  • Durable Maestro/Playwright runner — stream, time-out, decide
  • Un-block event loop during mobile-coverage Maestro runs
  • Break continue-loop + unblock Maestro test reads
  • Continue short-circuit on 100% carry + move overflow to top-right
  • Filter test-tooling noise from Implementation Fix: items
  • Maestro-run.sh auto-recovers from iOS driver-session flakiness
  • Test-plan review on re-entry + bound stalled-phase idle in durations
  • Make maestro-run.sh a UDID-resolving translator; align gate args
  • Use --platform not --device for Maestro + skip unavailable platforms
  • Drop invalid --format=json from Maestro gate invocation
  • Stop Maestro orphan/watchdog leak + bound the hang vectors
  • Serialize mobile-native tasks (simulator is a singleton)
  • Serialize + timeout-guard Maestro runs (sim-singleton + hang prevention)
  • Mobile target runs BOTH iOS and Android (drop Spec-117 collapse)
  • Close brandLayers race + reject duplicate screen ids
  • Preserve submodule commits across Done-stage merge
  • Include .kanban-artifacts/ in managed gitignore entries
  • Emit per-tool task_log rows (not a bulk \"Tool calls: a, b, c\")
  • Force contentPath in user-prompt + tail-anchor (system-prompt update wasn't reaching the model)
  • Carry over plan prep checkpoints when a prior plan exists (iteration mode)
  • Mandate contentPath for design save (refine + fresh modes)
  • Restrict project-init reads to user workspace
  • Pre-complete design prep checkpoints when refine mode applies
  • Harvest memorySuggestions only when task is accepted
  • Tolerate bulleted \`- **Screens:**\` marker so uxFingerprint isn't empty
  • Stop re-running design on prose-only plan edits + preserve original checkpoint timestamps
  • Structured tool-call output replaces text-JSON parsing (research phase)
  • Strip per-screen scaffolding so previous-frame label doesn't bleed in fluid viewport
  • Broaden fan-out gate + model-driven screen discovery
  • Orchestrator-level per-screen fan-out, drop chunked-save
  • Actually populate execInput.reasoningEffort from skill defaults
  • Jsonrepair fallback rescues AI JSON with trailing commas + unescaped newlines
  • Neutral diagnostic when save_artifact never fired
  • RFC 6266 Content-Disposition for non-ASCII filenames
  • Land paused status synchronously, don't overwrite
  • Per-provider maxSteps ceiling for streamText
  • Run scripts in carousel + scope refine to active screen
  • Trim irrelevant artifacts, fix silent SDK hangs
  • Suppress legacy refine side panel in lifted mode
  • Tighten compact card; raise surface above the dialog
  • Unblock production build for refine-state guard + design-chat helpers
  • Plan + design were running in the same parallel group
  • Render image thumbnails inline + dark-mode contrast
  • Remove direction list from catalog page
  • Reset recovery budget on manual re-diagnose
  • Cancel stale queued jobs on server restart
  • Show configured provider label in top-bar AI status
  • Keep task.status=running across phase boundaries
  • Correct bypass flag, terminal-row mutation, retry re-entry
  • Honor Stop button on the Done phase
  • Refuse SIGKILL when child.pid is stale or recycled
  • Break paragraphs between AI step text and tool calls
  • Rely solely on .gitignore + surface gate events
  • Auto-take base for ignored / build-output paths
  • Never paint stale 100% over a bypassed audit row
  • Translate Claude tool names so model isn't stranded with zero tools
  • Chat MCP — auto-resolve board/column + workspace overview tool
  • Retry pass 1 without digest when agent calls zero tools
  • Floating chat no longer creates a thread on every open
  • Commit our .gitignore writes so the next worktree passes assertBaseClean
  • Attribute review-plan to Planning, not Other
  • SDK chat gets MCP kanban + artifacts grouped by phase
  • Refuse global chat under SDK transport instead of lying
  • Cancel in-flight run on manual move so new column gets fresh execution
  • Real checkpoints + update_progress nudge
  • Pause source phase during backtrack detour
  • Clear stale gate artifact, self-heal task_moved cache
  • Normalize Next.js → 'web', seed e2e in Testing
  • Detect sibling frontend when root has package.json
  • Pre-review gate filters warnings + keeps row open on FAIL
  • Smaller FAB, lift above log dock
  • Stream tool-call events + strip system_notification leaks
  • Floating chat — left FAB, thread naming, real tool calls
  • Dedup floating-chat race between WS broadcast and SSE stream
  • Collapse per-card 1Hz timers + drop /progress refetch storm
  • Unref poll timer + WS-driven UI to stop hang and fix Ctrl+C
  • Block set_phase_conclusion when canonical artifact missing
  • Auto-complete "Save X" checkpoint after save_artifact succeeds
  • Force canonical name/type in save_artifact to keep upserts stable
  • Always inject stack profile into plan-skill prompts
  • Stop NODE_ENV=production leak into spawned dev servers
  • Set type="button" so toggling never submits the parent form
  • Exempt .kanban-worktrees/ from base-clean check
  • Sync save_artifact enum with schema artifactType
  • Use existing design as spec; never produce design artifacts
  • Make brand-layers contract directive on radii + border
  • Pristine projects auto-refresh brand_layers on boot
  • Strip post-</html> trailer; parse markdown-bold radii + border
  • Render HTML artifacts in iframe, not raw source
  • Render HTML artifacts in iframe even when type='other'
  • -muted is a surface, not the chroma `muted` token
  • Canonical swatches + colon-label normalization
  • Live preview thumbnail for unified design skill
  • Description-update regression + parity with NewTaskForm
  • Escape JSX entities to satisfy react/no-unescaped-entities
  • ResolveDesignChain — read task fields through unknown bag
  • Recover from "untracked working tree files would be overwritten"
  • Modernize seed + runbook for Spec 073 per-task model
  • Paste + drop file capture
  • Plug auto-mode leaks that hung the page and blocked Ctrl+C
  • Escape apostrophe in skill-folder hint
  • Align dropdown items with trigger text
  • Align dropdown items with trigger text
  • No-creds SDKs + per-provider setup hints + readable errors
  • Break blocked-by retry loop, rework prerequisite UX, unstick recovery panel after Stop
  • Trim replan-context to current round + chunked log flush with backpressure
  • Static-site shape + test-script annotation so AI doesn't propose `npm run e2e` as the run target
  • Cancel orphan poll loops, drop stale auto-mode entries, debounce PID flush
  • Render every backtrack rule, not just the last one
  • Normalize backtrackConfig in getBoardFullState too (was bypassing the service-layer normaliser)
  • Reset reviser+evaluator checkpoints between iterations
  • Drop '|' delimiter, carry over preserved-artifact skills, add evaluator checkpoints
  • Debate-non-convergence advances to next column for human decision
  • Show 'needs revision' phases as amber, not solid green
  • Detect kLSApplicationNotFoundErr + show full err message
  • Allow enable_diagnose_bash through PATCH /api/settings
  • Kill orphan children on fresh Start + surface real xcrun/adb errors
  • Pre-flight resolves ./mvnw against service cwd, not kanban-app cwd
  • Reflect server-side detection + recovery state on the header button
  • Unstick the 'Restarting' phase + emit exhausted at limit
  • Help AI return valid updatedRunConfig + recover when it doesn't
  • Launch mobile via xcrun/adb deep link, not stdin keystroke
  • Infer mobileStack from command when AI omits it
  • Validate AI-proposed runConfig before applying
  • Unstick on interactive prompts + auto-apply fixes from quick-death
  • Logs no longer flash + lines no longer cut off
  • Config gen sandbox + sub-dir manifest detection + UI gates
  • Pre-flight failures defer to post-loop, always fire recovery
  • Pre-flight + quick-death failures route through recovery loop
  • Config edits stick — auto-save on remove, dirty-flag inputs
  • Keep recovery panel visible across mid-cycle restart
  • Trigger AI diagnose on readiness timeout + include stdout
  • Readiness probe waits as long as logs are flowing
  • "Running" now waits for the port to actually answer
  • Give header its own stacking context so Run dropdown wins
  • Pass configured port through PORT env var to spawn
  • Resolve ESLint and Next.js build warnings
  • Pre-flight port check + self-run detection
  • Suppress auto-recover on quick-death + show stderr
  • SIGTERM the whole process group, not just the shell
  • Handle agent transcripts + leaked tool-call markup
  • Strip markdown fences before parsing AI diagnosis
  • Actually invoke SDK executor (was awaiting handle)
  • Tolerate fenced/prose-wrapped/empty AI output
  • Also swallow ADD-COLUMN race on multi-worker migration startup
  • Collapse shared ScrollArea on Chat tab to remove the empty bottom strip
  • Show actual progress on cancelled/paused phase rows + prefer active over completed
  • Resolve conflict markers in mcp-kanban.ts + boardId-fix test that shipped via 3e074b1
  • Refuse to auto-commit a worktree that contains conflict markers or has MERGE_HEAD
  • Redirect to Testing when worktree has unvalidated commits since Testing completed
  • Discard local generated-artifact mods in projectRoot before mergeAndCleanup checkout
  • JSON-output fallback when both tool calls and markdown bash blocks fail
  • Pre-merge gate also runs on advanceAfterResume's terminal-column path
  • Wildcard subscribers receive per-board broadcasts
  • Auto-commit dirty worktree before pre-merge integration
  • Support SDK transport (Copilot SDK / Claude Code) — branch executeChat by transport
  • Pin prose elements to --foreground so headings/strong/code stay readable
  • Execute markdown bash blocks as fallback when SDK didn't fire tool calls
  • Conflict resolver via Bash heredoc + flip queued→running at run start
  • Pre-feed file contents + Write-only directive prompt
  • Integrate against LOCAL base, not origin/<base>, in worktree integration
  • On-demand artifact tools + surface empty-response and real errors
  • Feed merge-conflict context to the implement skill via rejection-feedback channel
  • Retire phase rows on merge-conflict reroute so they actually re-execute
  • Defer to debate verdict instead of fighting it with the artifact gate
  • Retire terminal rows on superseded close so reject re-executes
  • Pick the configured evaluator's artifact, not newest of type
  • Self-heal projects without a board on first GET (kanban switch was a no-op)
  • Drop hardcoded HIGHLIGHTS allowlist for universal deps
  • Bias output toward implement-feature tasks (no research verbs)
  • Wire allowedTools so planner text-only contract applies on Copilot
  • Whitelist tsconfig.tsbuildinfo + specs/** intentional writes
  • Pass boardId through completeCheckpoint/failCheckpoint/setPhaseConclusion
  • Cap merge-conflict recovery to stop infinite reroute loop
  • Pass boardId to progress service functions for real-time SSE events
  • Forbid AI from asking clarifying questions; better parse error
  • Run roadmap inside the worktree + forbid AI from writing files
  • Cap vitest forks at 4 + per-worker DB to prevent memory blowup
  • Make git lifecycle fail-loud instead of silent wipe
  • Worktrees sandbox
  • Enable image paste from clipboard in task creation
  • Enable image paste via clipboard in upload component
  • Filter E2E test projects from list
  • Missed plan added
  • Prevent roadmap artifacts from being merged into main branch
  • Resolve checkpoint name mismatch in phase init
  • Handle 'need revision' routing and prevent infinite replan loop
  • Replace per-hook EventSource with shared WebSocket subscriptions
  • Fix tool call formatting in execution logs
  • E2e tests port
  • Abort stale board fetch on project change
  • Project clear on tests
  • Build issue
  • Task performing issues
  • Git clean
  • Inherit theme foreground color in prose
  • Pass KANBAN_API_URL to child process for event emission
  • Correct statistics endpoint board validation
  • Task dialog reset
  • Solve conflicts on merging branch
  • Copilot integration
  • Add missing SSE event types for blocker events
  • Resolve type issues in chat implementation
  • Eliminate message duplication, empty responses, and add AI greeting
  • Build issues
  • Build issues
  • Sync EditTaskDialog form state when dialog reopens
  • Prevent test files from being created in project root
  • Tasks flow and worktrees
  • Worktree
  • Revive debate + backtrack loops for existing flows
  • Pin MCP child DATABASE_URL so artifacts reach the main DB
  • Resolve unknown tool names in execution log
  • Updating ui issue
  • Handle unknown tool calls in execution log
  • Claude path recognition
  • Add INTERNAL_SECRET to styles webServer env to fix TS build error
  • Assign task flow from planned type for branch lifecycle
  • Fix phase progress stale closure and add diagnostic logging
  • Prevent paused tasks from auto-advancing to next phase
  • Prevent position collisions when tasks complete concurrently
  • Prevent card jump animation during drag-and-drop reorder
  • Preserve task progress when stopping or resuming execution
  • Add artifact gate to single-column (no-flow) execution path
  • Show duration in common M:SS / H:MM:SS format
  • Reduce noise from status checks, model resolution, and SDK output
  • Load historical logs on page refresh
  • Retry phases with missing artifacts + externalize ws from bundle
  • Fix layout by moving chat tab outside ScrollArea
  • Ensure progress bar updates reliably during AI execution
  • Ensure tasks reach 'done' status and emit SSE events
  • Prevent AI from calling move_task during phase execution
  • Resume rejected/approved tasks in auto-mode and clean up phases
  • Prevent date serialization error in phase duration display
  • Correct message cleanup on error
  • Bridge SSE events from MCP child process to parent via HTTP
  • Handle stuck running tasks after server restart
  • Persist activeExecutions map across HMR re-imports
  • SSE disconnect, phase checkpoints & log verbosity
  • Resolve skill folder from project path instead of process.cwd()
  • Add status indicator, enable Run AI without flow, wire auto-mode execution
  • Auto-mode toggle, status endpoint, backlog task query
  • Refresh board instantly after task deletion
  • Add cross-browser scrollbar consistency + e2e tests
  • Prevent main view scrollbars when tasks overflow columns
  • Align ExecutionPanel SSE parsing with server protocol
  • Portal dialog and register select options when closed
  • Project creation dialog and select display name
  • Wire Tailwind v4 for production builds
  • Resolve 5 failing comprehensive tests

Швидше

  • Warm once per gate leg — harness_once memoizes idempotent setup
  • Skip the rebuild + maestro run when the skill already failed
  • Skip the rebuild + maestro run when the skill already failed
  • Defer kanban MCP server's heavy module graph until first tool call
  • Defer kanban MCP server's heavy module graph until first tool call
  • Scoped in-place re-run — re-run only the failing skill, not the whole phase (Spec 121 d)
  • Scoped in-place re-run — re-run only the failing skill, not the whole phase (Spec 121 d)
  • Canonical single-flow invocation + deterministic RESULT block (cut output-capture re-runs)
  • Canonical single-flow invocation + deterministic RESULT block (cut output-capture re-runs)
  • Stop the mobile suite running 2-3× (skill over-run + authoritative gate re-run)
  • Stop the mobile suite running 2-3× (skill over-run + authoritative gate re-run)
  • Pre-flight device skip + failed-first re-run (both engines)
v0.1.22026-06-20

Нове

  • Desktop local-single-user, folder picker, shared apiFetch, in-place New Project, R2 auto-update
  • Reflect the cloud trial in the app (banner + Upgrade)
  • Event-triggered instant sync push + tombstone derivation test
  • Sync tombstones — propagate deletions across the team
  • Automatic shared-project sync sweep + "Share to team" UI
  • Sync engine (local) — board snapshot serialize/merge + reconcile
  • Plan-upgrade checkout from the app (Stripe per-seat)
  • Cloud account loop — device-code sign-in, entitlements, routes, UI
  • Cloud-as-provider seam + local-only-by-default cloud session

Виправлено

  • Confine outputFileTracingRoot (fixes Windows EPERM Application Data)
  • Create-project silently failing + dashboard New Project card
v0.1.12026-06-20

Нове

  • Warm the light-theme primary toward salmon
  • Recolor primary from blue to Dawn coral (icon-matched)
  • Add Morning sun app icon
  • Package the app as native installers + build them in CI

Виправлено

  • Reliably skip migrations during desktop build + retry on lock
  • Ad-hoc re-sign macOS bundle after afterPack (fixes 'damaged')
  • Skip DB migrations + backfills during next build (SQLITE_BUSY race)
  • App icon + empty-window (better-sqlite3 ABI) + free ports
  • Use Morning sun mark on the dashboard header
  • Replace Bot header icon with Morning sun mark
  • Apply Windows .cmd/shell fix to after-pack hook too
  • Shell:true for Windows .cmd spawns (Node 20 EINVAL)
  • Unsigned mac build, Linux homepage, Windows rebuild bin