Огляд
Перевірено 2 жовтня 2026 для цього сайту документації · продукт не має інфраструктури: нічого з нього не розгорнуто
Сьогодні розгорнуто лише цей сайт документації, і його публікує кожен пуш в основну гілку: проміжного середовища немає, інфраструктури продукту теж поки немає.
Пуш в основну гілку — це публікація. Усе, що до нього, відбувається в окремій гілці.
Що є сьогодні
| Що | Стан на 2 жовтня 2026 |
|---|---|
| Вихідний код | Один закритий репозиторій на GitHub, у якому лежать цей сайт та інструменти навколо нього |
| Сайт документації | Статичний сайт на DigitalOcean App Platform, зібраний за допомогою VitePress |
| Публікація | Автоматично за кожного пушу в основну гілку |
| Мови | Англійська, російська та українська, збираються й публікуються разом |
| Застосунок і API | Вхід, ролі, магазини, людей і запрошення створено (6 і 11 жовтня 2026), не розгорнуто; див. Що створено |
| Мобільний застосунок | Не створено, не розгорнуто |
| Адмін-застосунок | Налаштування для адміністраторів платформи, окремий застосунок (18 жовтня 2026), не розгорнуто; його адресу в продакшені підготовлено, не застосовано |
Як зміна потрапляє на сайт
- Робота йде в окремій гілці, у власній робочій копії.
- Перевірка. Сайт збирається, потім перевіряється те, чого успішне збирання не ловить: сторінка, якої немає однією з трьох мов, мертве посилання чи якір, сторінка, на яку ніщо не посилається. Потім зібраний сайт запускається, і кожна сторінка має відповісти.
- Рев'ю робить власник. Агента-рев'юера немає: зміну читає і запущений сайт дивиться людина, якій належить проєкт.
- Злиття в основну гілку публікує.
- Хтось відкриває змінену сторінку на публічному сайті. Успішне розгортання — ще не видима сторінка.
Так процес було налаштовано 2 жовтня 2026. Через усі п'ять кроків ще не пройшла жодна зміна: коміти, зроблені до цієї дати, пушилися прямо в основну гілку.
Робочі копії та агенти
Одне завдання отримує одну робочу копію, одну гілку й одного агента; цим керує Orca. Кожна копія має власні порти, тож кілька копій можуть працювати поруч, не зачіпаючи ні одна одну, ні основну копію. Агент доводить завдання до стану «готово до рев'ю» і на цьому зупиняється; сам він змін не зливає.
Скрипти, на яких це тримається, — підготовка, запуск, перевірка, прибирання — 2 жовтня 2026 було пройдено від початку до кінця в справжній робочій копії. Створювати копію через саму Orca ще не пробували.
Локальний запуск
З кореня репозиторію make dev запускає сайт у режимі відстеження змін і відкриває невелику локальну панель: посилання на локальний та опублікований сайт кожною мовою, робочі копії й те, що в них запущено, та живі логи. make check запускає перевірку. І те, і те описано в README-файлах репозиторію.
Відстеження помилок (GlitchTip)
Зроблено й перевірено локально 8 листопада 2026 року, ніде в розгорнутому не ввімкнено (SHIF-42, SHIF-43, приведено до спільного стандарту в SHIF-44). API, застосунок, застосунок адміністратора й сайт уміють надсилати свої помилки до нашого власного збирача помилок — GlitchTip на errors.dreamvention.com (він розуміє протокол Sentry; організація dreamvention, по проєкту на кожного: shiffty-api, shiffty-app, shiffty-admin, shiffty-website). Нічого розгорнутого нічого не надсилає, доки власник не задасть змінні нижче. Браузерна частина докладно: Помилки в браузері.
| Змінна | Хто читає | Коли | Що |
|---|---|---|---|
SENTRY_DSN | API | запуск (App Platform: RUN_TIME, секрет) | Ключ проєкту API. |
APP_SENTRY_DSN, ADMIN_SENTRY_DSN, WEBSITE_SENTRY_DSN | застосунок, застосунок адміністратора, сайт | збірка (BUILD_TIME); застосунок і сайт читають свій ще й під час запуску | Власний ключ кожного фронтенду. |
SENTRY_ENVIRONMENT | усі чотири | збірка й запуск (RUN_AND_BUILD_TIME) | Рівно prod, dev або local. |
SENTRY_RELEASE | усі чотири | збірка й запуск | Git-коміт збірки. |
SENTRY_AUTH_TOKEN | збірки фронтендів | збірка, лише BuildKit secret | Завантажує source maps; ніколи не build argument і ніколи не в образі. З ним: SENTRY_URL (за замовчуванням https://errors.dreamvention.com), SENTRY_ORG=dreamvention і APP_/ADMIN_/WEBSITE_SENTRY_PROJECT. |
- Вимкнено за замовчуванням. Без ключа бібліотека не запускається й не робить жодного запиту: у тестах, у CI, локально. Порожнє оточення або будь-яке, крім
prod,devіlocal, теж вимикає (GlitchTip зберігає кожну назву оточення назавжди, тож нічого не вгадується). Локальний запуск (make dev,./orca/run.sh) завжди ставитьlocalі надсилає, лише якщо ключ задано в цій оболонці. - Що надсилається: відповіді 5xx, необроблені помилки й відхилення промісів, збої завантаження частини застосунку, помилки роутера й старту, фонові задачі, що впали (з тегом
job). Ніколи — відмова, яку людині вже показано (будь-який 4xx), запит без відповіді, скасований запит, мережева помилка самого браузера й помилка з розширення браузера. - Що вичищається до надсилання: тіла запитів, cookie, усі заголовки, крім user agent браузера, query string і фрагменти адрес, email, токени, ключі й паролі в будь-якому тексті, вивід консолі, введене з клавіатури, текст чатів і сторінок, локальні змінні, ім'я машини. Людина — лише її id. Немає сесій, трасування (
tracesSampleRate: 0), запису екрана й профілювання. - Реліз і source maps: реліз — git-коміт; source maps фронтендів
hidden, робляться й завантажуються, лише якщо збірка має токен, і файл.mapніколи не віддається. - Як перевірити: з оточенням
localі тегомtask=<завдання>викликати в кожному рантаймі одну необроблену помилку й одне необроблене відхилення; збирач відповідає 200, події з'являються в проєкті цього застосунку. 4xx, скасований запит і мережева помилка з'явитися не повинні, як і?token=…з адреси та рядок із консолі. Зроблено для SHIF-44 8 листопада 2026 року (події з тегомtask=SHIF-44).
Назви змінних — в api/.env.example і в .env.example кожного фронтенду; їхніх значень у репозиторії немає.
Чого немає
- Немає безперервної інтеграції. Перевірка запускається на машині розробника. На сервері ніщо не зупинить пуш, який її пропустив.
- Немає проміжного чи попереднього середовища. Публічний сайт — єдина розгорнута копія.
- Немає моніторингу. Опублікований сайт перевіряється, лише поки в когось відкрита локальна панель. Відстеження помилок є в коді з 8 листопада 2026, але ніде не ввімкнене; див. Відстеження помилок (GlitchTip).
- Трекер завдань не підключено. Завдання — це те, з чим створено робочу копію.
- Немає інфраструктури для продукту. Хостинг, база даних, секрети, резервні копії та випуск мобільного застосунку не визначено; див. Архітектуру. Єдиний висловлений намір — що пізніший сервіс розв'язувача працюватиме в Kubernetes поруч з API; див. Агент і розв'язувач.
Куди далі
- Архітектура: що доведеться розгорнути, коли це буде створено.
- Відкриті питання: що вирішено, а що ні.