Mommy RefuelТрохи більше простору для тебе.
UK
ОНОВЛЕННЯ ПРОДУКТУ

День, коли застосуноксправді став гідним довіри з вашими даними

Оновлення продукту · 4 хв читання

5 вересня — найменш яскравий, але один з найважливіших днів проєкту: я знайшов і закрив три реальні прогалини в приватності, переніс DNS сайту на AWS і чесно записав, що ще блокує публічний запуск.

Екран налаштувань з розділом «Приватність і акаунт»: «Приватність і дані», «Експортувати дані» та «Видалити акаунт і дані».
Налаштування приватності й акаунту — поточний дизайн застосунку.

Головне

  • Я перевірив і закрив реальні прогалини в приватності: «Видалити все» тепер справді стирає всі локальні архіви акаунтів на пристрої, а не лише активний. Видалення акаунта тепер прибирає й файли вкладень, які раніше залишалися «сирітками».
  • Закрив бекенд-подання, яке дозволяло будь-якому користувачу, що увійшов у застосунок, технічно запитувати агреговані дані Control Center іншого акаунта.
  • Домен сайту перенесено на AWS (Route 53 + Amplify), того ж дня полагоджено вхід для внутрішньої команди.
  • Написав повний реліз-запис готовності до GA (публічного запуску): аудит, чекліст, відповіді для App Store щодо приватності, витягнуті просто з коду, а не вгадані.
  • Публічний запуск усе ще заблокований на одному пункті поза моїм контролем: незалежному клінічному огляді безпекового контенту. Все, що міг виправити сам, — виправив.
01

Чому цей день був важливіший за будь-яку нову функцію

Більшість оновлень — про те, що з'явилося нового. Це — про те, що я закрив. Непомітна, але необхідна робота перед тим, як застосунок, що торкається здоров'я й настрою, може чесно назвати себе готовим для справжньої аудиторії. Я присвятив день повній перевірці готовності до GA (публічного запуску) на гілці release/1.0: без нових функцій, з заморозкою фіч, лише приватність, безпека й документація.

02

Полагодив «Видалити все», щоб воно справді видаляло все

Застосунок може зберігати локальні знімки для більш ніж одного акаунта на одному пристрої — наприклад, якщо хтось вийшов і зайшов під іншим Apple ID під час тестування. «Видалити все» мало стирати всі локальні дані, але насправді стирало архів на диску лише для активного на той момент акаунта. Старіші, неактивні знімки акаунтів переживали видалення. Я полагодив LocalStore.clearAll(), щоб він тепер стирав архів кожного власника на диску, а не лише той, що перед вами, і додав тести, які це підтверджують.

03

Закрив прогалину з файлами-сиротами при видаленні акаунта

На бекенді видалення акаунта прибирало рядки в базі даних, але не самі файли вкладень (наприклад, завантажені медичні документи) у файловому сховищі, бо ці файли не були зв'язані зовнішнім ключем, за яким процес видалення міг би пройти. Вони залишалися «сиротами». Я полагодив функцію видалення акаунта так, щоб вона явно прибирала файли вкладень зі сховища й таблиці Life Timeline, а також оновив функцію експорту даних, щоб вона включала ті самі таблиці — тепер експорт теж справді повний.

Екран сну в чек-іні з повзунком на 6.5 години й полем для нотатки, а також рядком «Приватно за замовчуванням — нічого не ділиться без вашого вибору».
Екран нотатки в чек-іні — дизайн застосунку станом на середину вересня 2026.
04

Бекенд-подання, яке було занадто відкритим

Внутрішній Control Center (панель агрегованої статистики нашої команди) мав подання бази даних, які технічно міг запитати будь-який користувач, що увійшов у застосунок, — не лише команда, — обходячи захист на рівні рядків, який охороняє базові таблиці. Я відкликав цей дозвіл у міграції. Це була прогалина у внутрішньому інструменті, а не шлях, яким дані мами колись показувалися в застосунку, але це не мало бути доступним для звичайного акаунта, і тепер не є.

Вкладка «Тренди» «Стрічки життя» з графіком балу за кілька тижнів, 9 записаними днями й 20 днями без даних.
Графік трендів «Стрічки життя» — поточний дизайн застосунку.
05

Переніс вхідні двері сайту й полагодив знак на них

Перемикання DNS, основу для якого я заклав 4 вересня, відбулося сьогодні: Terraform тепер створює прив'язки домену в Amplify і всі потрібні записи DNS у Route 53 (валідація ACM, псевдоніми для apex/www/control/survey), спрямовані на новий сайт на AWS замість попереднього хостингу. Пошту й піддомен API не чіпали. Паралельно полагодив баг, через який сторінка входу для команди перекидала саму на себе замість того, щоб показати кнопку входу через Apple (анонімний захист помилково огортав саму сторінку входу), і написав docs/BRAND.md як єдине джерело правди про бренд-знак — справжню іконку застосунку, а не намальоване сердечко, — яке відтепер послідовно використовується і на сайті, і у внутрішньому Control Center.

06

Записав чесну правду про стан застосунку

Решта дня пішла на сам реліз-запис готовності до GA: нотатку про заморозку функцій, документ App Privacy з усіма відповідями, звіреними безпосередньо з коду (Sign in with Apple запитує лише ім'я, ніколи не пошту; це ім'я ніколи не покидає пристрій; сповіщення ніколи не використовують push-токен — тож ці поля чесно позначені як «Не збирається»), чекліст GA-1.0 з доказами для кожного пункту, а не просто галочкою, яку хтось поставив, і супровідний лист для клінічного огляду. Пізніше того ж дня я ще раз перепрогнав чекліст, зафіксувавши точний коміт для клінічного огляду, щоб переконатися, що нічого не «розповзлося». Наприкінці дня: 246 тестів iOS і 16 тестів бекенду проходять, сайт чисто збирається на 61 сторінку, а план Terraform чистий і безпечний.

07

Де і коли

  • 5 вересня, ~12:10 — багатосторінкове розширення сайту: сторінки /why та /roadmap, справжня іконка застосунку як бренд-знак по всьому сайту (1caee7d).
  • 5 вересня, ~12:25 — виправлення збірки SSR в Amplify (баг, через який внутрішня панель віддавала порожню 500-ку) і прив'язка акаунтів команди за поштою (faa5e71).
  • 5 вересня, ~12:41 — полагоджено зациклення на сторінці входу для команди (3a573de).
  • 5 вересня, ~12:44 — написано docs/BRAND.md; бренд-знак Control Center перемкнуто на справжню іконку застосунку (f9d28bf).
  • 5 вересня, ~12:49 — перемикання DNS на AWS: прив'язки доменів Amplify і записи Route 53 через Terraform (a52d5e1).
  • 5 вересня, ~15:55 — готовність v1.8 до GA: виправлення «Видалити все», виправлення видалення вкладень, закриття подання Control Center, реліз-документи (7032229, бекенд + iOS).
  • 5 вересня, ~16:16–16:48 — відповіді App Privacy звірені з кодом, зафіксовано докази чекліста GA-1.0, закріплено коміт для клінічного огляду (7a90c97, f2349c1, 28bc853).
  • 5 вересня, ~16:49 — гілку release/1.0 змержено (PR #18) разом із виправленням входу (PR #16) і перемиканням DNS (PR #17).
08

Що все ще блокує публічний запуск

Все, що можна було виправити інженерно, — виправлено: понад 145 тестів проходять по всьому застосунку, доведено, що безпековий рушій завжди спрацьовує до будь-якого запиту до ШІ, відповіді про приватність перевірені за реальним кодом, а не за припущеннями, зберігання даних зроблене стійким до пошкоджень. Що все ще заблоковано, і може бути розблоковано лише кимось поза цим кодом, — це незалежний клінічний огляд безпекового контенту і огляд української безпекової мови носієм мови. Я не вмикаю цей перемикач сам, а конфігурація релізу зафіксована за версією так, щоб випадково не вийти «перевіреною», поки вона справді нею не стане.

09

Що це означає для вас, якщо ви користуєтесь застосунком

Якщо ви колись скористаєтесь «Видалити все», воно тепер справді прибирає кожен знімок акаунта на вашому пристрої, а не лише той, під яким ви заходили востаннє. Якщо експортуєте дані — тепер туди входять і Life Timeline, і вкладення, а не часткова копія. А якщо читаєте наші відповіді про приватність в App Store — вони написані після перевірки того, що код справді робить, а не вгадуванням.

Екран «Ви» у поточному застосунку Mommy Refuel, з етапом життя, Care Circle і рядками акаунту.
Екран «Ви» у поточному застосунку, вересень 2026.

Питання, які ставлять мами

Чи були якісь реальні дані користувачів відкриті через ці баги?

Це виправлення жорсткішання перед запуском, знайдені під час нашого власного аудиту готовності до GA на гілці release/1.0 — застосунок ще не мав публічного загального запуску. Вони виправлені до будь-якого широкого релізу, а не знайдені вже у продакшні.

Що таке Control Center, згаданий у цьому дописі?

Це внутрішня панель, якою користується наша команда, щоб бачити агреговану, знеособлену статистику продукту. Це не сторінка, яка показує особисті записи якоїсь конкретної мами, і вона не є частиною клієнтського застосунку.

Чи змінився домен застосунку для користувачів?

Сайт (mommyrefuel.com) тепер вказує на хостинг AWS замість попереднього, через перемикання DNS цього дня. Сам домен не змінився — лише те, куди він вказує.

Що саме зараз блокує публічний запуск?

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

Доступність може залежати від встановленої версії застосунку. Статуси підтверджені засновником на момент публікації.

ЩЕ З БЛОГУУсі статті ↗︎
Екран онбордингу з питанням «Де ви зараз?» і варіантами: вагітність, післяпологовий період, планування або підтримка когось.

Чому я запускаю цей блог від першого дня Mommy Refuel

Я запускаю блог на mommyrefuel.com — справжні статті про материнство і добробут, і цей щоденник змін від мого імені, англійською і українською, а ще цього тижня ми розповідаємо про Mommy Refuel ширше.

Сергій Рогачов
Екран Refuel AI з підказками на кшталт «Чому мій бал сьогодні нижчий?» та «Допоможи підготуватися до лікаря».

Just talk: скажи або напиши, а Mommy Refuel розкладе по місцях

Без форм і меню — просто скажіть або напишіть про свій день, а Mommy Refuel запропонує, куди це віднести. Що саме зберегти, вирішуєте ви. Ось як це працює і чому я зробив саме так.

Сергій Рогачов
Екран підтвердження «Ви зробили чек-ін сьогодні» із зеленою галочкою і кнопкою «Зробити чек-ін знову».

20 вересня: виправляю реальний баг із мовою, білди 23-24

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

Сергій Рогачов
ДЛЯ ЛЮДИНИ ВСЕРЕДИНІ МАТЕРИНСТВА

Зроби місце
для себе.

Отримати безкоштовний застосунок