гора.
i. хроника · обновляется по воскресеньям

Что делаю сейчас.

Лог разработки моих проектов. Что переписал, что починил, что вынес наружу. Кодовые имена вместо имён клиентских репо. Без счётчиков строк, без коммитов как таковых — только реальные изменения, которые увидел пользователь или которые внутри что-то поменяли.

rss.xml →

фильтр

  1. XXXII неделя

    · 3—9 августа 2026
    Atlas
    • Живая геопозиция водителя доходит до расчёта ETA. Три баги: канал молчал в aiogram, точка исчезала раньше срока, гейт спрашивал не ту систему.
    • Трансляция геолокации просит бессрочный режим вместо 8 часов. Смены часто длиннее, и обрыв посреди доставки убивал живое время прибытия.
    • SMS о подъезде и страница трекинга теперь показывают одно число. Было: случайный текст из 98 заготовок обещал 4–7 минут независимо от реальности.
  2. XXXI неделя

    · 27 июля — 2 августа 2026
    Atlas
    • Display Order перестал откатывать перетаскивание. applySorting ставил sortBoost DESC перед cdo_sort.
    • Driver Report разделил наличные на две колонки: To wallet и Owner's cash вместо общей суммы.
    • Себестоимость лота теперь доходит до карточки товара. products.cost_price писал только оператор, склад не трогал.
  3. XXX неделя

    · 20—26 июля 2026
    Atlas
    • Корзина теперь снимает снимок товаров внутри очереди синка, а не до неё. Гостевой→аккаунт мёрж работает без потерь данных при повторах и разрывах сети.
    • Warehouse: рецепт привязал произведённое количество к потреблённому. Раньше оператор мог создать неограниченный готовый товар вручную.
    • Badges: REORDER теперь видна (порог 5/0.4), JUST IN перестала зависать на старых товарах. Delivery slots: убрал off-by-one при сдвиге часовых поясов.
  4. XXIX неделя

    · 13—19 июля 2026
    Atlas
    • Twilio в checkout-OTP как primary, WAHA fallback. SMS-верификация обязательна перед доставкой.
    • Крипто-платежи: durable ledger для shared ETH/TRON адресов, chain-check перед expiry, блокировка смены метода при partial payment.
    • Signup: CAPTCHA + geo-allowlist вместо blocklist префиксов, grandfather для существующих номеров.
  5. XXVIII неделя

    · 6—12 июля 2026
    Atlas
    • Автозаполнение граммов сырья в производстве из веса товара. Оператор больше не вводит вручную.
    • Блокировка OTP для мошеннических номеров (KZ, UA, JM пулы) + глобальный circuit breaker на send-otp.
    • Nominatim fallback для автодополнения адресов при недоступности Google Maps.
  6. XXVII неделя

    · 29 июня — 5 июля 2026
    Atlas
    • Крипто-платежи: привязал TRON и native-ETH к конкретной транзакции, закрыл double-credit на обоих.
    • Отменённый заказ больше не помечается оплаченным, инвойс истекает при отмене.
    • Чат customer↔driver в Telegram mini-app и на страницах checkout/tracking, без миграций БД.
    • Возрастная верификация теперь на всех маршрутах, не только на homepage.
    • Cashback и рефералы кредитятся при доставке, не при создании заказа — закрыл exploit на отмену.
    • Live Ops панель: real-time ошибки checkout/login/registration, заказы, посещения и health системы.
    • Флорида: mail/USPS доставка без курьера, платёжный цикл, snapshot реквизитов, гейт по store.settings.
    • Driver Report теперь показывает крипто-платежи в breakdown, не только в Sales.
  7. XXVI неделя

    · 22—28 июня 2026
    Atlas
    • Диспетчер видит дату доставки рядом с временем слота. Запланированные заказы теперь показывают YYYY-MM-DD, а не только 10:00-11:00.
    • Deals категория теперь автоматическая: товар появляется при скидке, исчезает при её отмене. Вместо ручного флага is_current_deals.
    • Checkout: сохранённые адреса можно редактировать и удалять. PATCH/DELETE уже были на бэке, добавили в UI.
    • Скрытые варианты товаров на витрине. OOS фильтруются, не серятся. availableVariants / minAvailablePrice в variant-utils.ts.
    • Адрес доставки привязан к store-TZ как ключ. Убрали пересчёты из UTC и browser-local при каждом чтении.
    • Уведомление о пикапе показывает выбранный водителем транспорт, а не текущий глобальный.
  8. XXIV неделя

    · 8—14 июня 2026
    Atlas
    • Gift variant ID validation в freeze. Бэкенд требует giftVariantId для вариантных товаров, фронт теперь проверяет перед отправкой.
    • Wallet debit-gate: добавил store_id в scope-guard для legacy-данных. 52 клиента с несогласованным балансом теперь не падают.
    • Driver Report: shift-based cash view (3AM→3AM). Zebra striping, табличные цифры, три колонки платежей вместо одной.
  9. XXIII неделя

    · 1—7 июня 2026
    Atlas
    • Express checkout без регистрации. Per-store флаг (по умолчанию OFF), E.164 phone input с валидацией по странам.
    • Sign in with Apple. RS256 верификация id_token против Apple JWKS, зеркало Google flow.
    • Ночной минимум заказа по зонам. effectiveMinOrder теперь учитывает deliveryType и scheduledDate, не применяется к next-day ордерам.
  10. XXII неделя

    · 25—31 мая 2026
    Atlas
    • Blog и product pages на ISR вместо no-store. Cache-control теперь работает на динамических сегментах.
    • Auth pages исключены из индекса Google, delivery-areas/[area] возвращает 404 вместо 500 на неизвестных slug.
    • Storefront конфиг перенесён на типизированный слой: 50+ файлов теперь читают getStoreConfig() вместо raw env.
    • /llms.txt для AI-агентов, sitemap на ISR (revalidate=300), FAQ/blog/legal переведены на ru/es.
    • Inactive products доступны на detail endpoint (как out-of-stock), sitemap консолидирует ранжирование по canonical.
  11. XXI неделя

    · 18—24 мая 2026
    Atlas
    • Унифицировал контакт поддержки WhatsApp в уведомлениях. Единый источник номера для SMS, Telegram, WhatsApp, Email.
    • Закрыл Stage 2A: store_id на checkout_logs, otp_logs, session_recordings + JWT верификация на /events, tenant hardening на 7 админ-маршрутах.
    • Добавил contactPhone с маркером (unverified) в checkout auto-save и админ-панель для email-only клиентов.
  12. XX неделя

    · 11—17 мая 2026
    Atlas
    • Fulfillment duration в Daily Orders с красной подсветкой при >60 мин для видимости SLA breaches.
    • Unified Places autocomplete + zone-check на 5 формах с Redis кешем и 6 структурированными колонками доставки в заказах.
    • WhatsApp sticky routing перенесён в Postgres, Redis теперь только read-through cache.
  13. XIX неделя

    · 4—10 мая 2026
    Atlas
    • При редактировании товаров в заказе сохраняется order_id. TypeORM перезагружал связанные товары и терял новые.
    • Featured Products на homepage подтягивает бестселлеры, если слотов не хватает. Было 4/8, теперь всегда 8/8.
    • OG-image переделан под 1200×630. Десатурированный крой hero-slide вместо статичной картинки.
  14. XVIII неделя

    · 27 апреля — 3 мая 2026
    Atlas
    • SEO recovery: канибализация ключевиков убрана, 10 категорий потеряли "Miami" в title, homepage теперь money-keyword pillar.
    • Per-store risk scoring вместо single-IP detector. Новая таблица user_store_risk, multi-signal threshold=50, флаг не протекает между стором.
    • Delivery zone tracking на заказах. Добавлена delivery_zone_id FK, backfill исторических, новые отчёты в админ-панели.
  15. XVII неделя

    · 20—26 апреля 2026
    Atlas
    • Homepage: SEO-блоки переделаны на editorial trust stream с Google Reviews, CountUp рейтинга и TestimonialsSection.
    • Referral links теперь приземляются на homepage /?ref=X вместо /register, код сохраняется в localStorage на 30 дней.
    • 12 geo-landing pages для Miami neighborhoods с LocalBusiness schema, GeoCoordinates и BreadcrumbList для каждого района.
  16. XVI неделя

    · 13—19 апреля 2026
    Atlas
    • Психоделики перенесены под Edibles с сохранением SEO-слага. Убрали из топ-навбара, оставили в гридах с фильтром по parent_id.
    • COG Report переделан: таблица по продуктам, поиск, инвентарь по себестоимости. Фикс dateFilter (показывал вчера).
    • Крипто-платежи: допуск увеличен с 2% до 5% для покрытия комиссий обменников.
    • Снимок себестоимости сохраняется в order_items.cost_price при создании заказа для COGS-отчётов.
    • Аудит-логи продуктов: все изменения из админки (create/update/delete) с JSONB-диффами в product_audit_logs.
    • Dispatch-карта: realtime-трекинг водителей с фоллбеком на driver_locations таблицу при потере Redis-сессии.
    • OOS-товары скрыты из каталога по умолчанию. inStock-фильтр на уровне БД с EXISTS-сабквери.
  17. XV неделя

    · 6—12 апреля 2026
    Atlas
    • Адреса заказов можно редактировать до назначения водителя. Добавлена геокодирование, синхронизация в админке и диспетчерском приложении.
    • Мобильная геолокация для заполнения адреса. GPS + Nominatim обратное геокодирование, автозаполнение улицы, города, ZIP.
    • Google OAuth вход/регистрация с верификацией через userinfo API. Авто-линковка существующих аккаунтов по авторитетным email.
  18. XIV неделя

    · 30 марта — 5 апреля 2026
    Atlas
    • Водители теперь выбирают машину при первом пикапе, не при go-online. Авто-релиз при доставке последнего заказа.
    • Админ может назначать водителей на машины через AssignDriverModal. В уведомлениях клиентам — только марка/цвет авто, без имени водителя.
    • Планы теперь ограничивают express-доставку по времени и зонам. Black Diamond и VIP Platinum могут обходить ограничения через bypass-флаги.
Хроника — лог разработки · hiregora.com