FE-BE-2026-04-06-01
Refresh cookie `qadam_rt` переведена на root path для server-side refresh
Готово для frontendНет ответа
web auth stability, full page reload after access token expiry, proxy refresh behavior
Что сделать
- Никакой новой интеграции не требуется
- Перестать считать logout after reload через ~15 минут “известным ограничением backend”
- При проверке stage/prod сценариев отдельно подтвердить: full page reload после истечения access token больше не должен выбрасывать пользователя на
/login, если refresh token ещё жив
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Для уже существующих браузерных сессий, выпущенных до фикса, может понадобиться один новый login, потому что legacy refresh-cookie с
path=/api/v1/auth уже была выдана ранее - Требуется действие frontend: нет
FE-BE-2026-04-02-05
Owner-facing status-change notifications включены для seller staff flow
Готово для frontendНет ответа
seller notification settings copy, seller/staff leads UX, operational expectations around owner alerts
Что сделать
- Не считать
notifyStatusChangeTelegram purely informational toggle: на окружениях с включённым seller notifications runtime он уже управляет live owner-facing уведомлениями для staff-driven status changes - Если в seller/staff UX есть текст, будто status-change alerts "появятся позже", обновить его под фактическое поведение backend
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это изменение поведения доставки без расширения публичного API-контракта
- Требуется действие frontend: нет
FE-BE-2026-04-02-04
Seller email fallback подготовлен на backend
Готово для frontendНет ответа
seller notification settings copy, operational expectations around email channel
Что сделать
- Не считать
notifyNewLeadEmail purely forward-compatible флагом на окружениях, где backend подтвердил SMTP runtime - Если в UI есть жёсткий текст "email ещё не работает", убрать его только после подтверждения, что конкретный target runtime уже получил
SMTP_* конфиг - Показывать
sellerEmail как фактический email-адрес доставки, а не только как account email из auth-контекста
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Migration касается поведения доставки, а не формы API-ответа
- Требуется действие frontend: нет
FE-BE-2026-04-02-03
Seller Telegram onboarding bot flow подготовлен для frontend
Готово для frontendНет ответа
seller notifications UX, Telegram connect/disconnect CTA, onboarding follow-up
Что сделать
- Добавить CTA/кнопку подключения Telegram через
GET /seller/telegram/connect-link - Открывать
connectUrl как внешний переход в Telegram, а не через локальную строковую сборку bot URL - На verify/disconnect корректно обрабатывать
ALREADY_VERIFIED и NOT_CONNECTED как продуктовые состояния, а не как generic error - Синхронизировать seller notification settings screen с новым connect flow, чтобы
telegramConnected и telegramUsername обновлялись после успешной привязки
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это расширение существующего Telegram flow; старые settings endpoints не ломаются
- Frontend больше не должен считать, что seller сам знает, где взять verification code: source-of-truth теперь
GET /seller/telegram/connect-link - Требуется действие frontend: да
FE-BE-2026-04-02-02
Seller notifications baseline подготовлен для frontend
Готово для frontendНет ответа
seller settings page, lead notification preferences, seller onboarding follow-up
Что сделать
- Добавить экран или секцию seller notification settings на
GET/PATCH /seller/notification-settings - Показывать состояние Telegram binding по
telegramConnected и telegramUsername, а не по локальным эвристикам - Не обещать пользователю живой email delivery, пока backend отдельно не подтвердит SMTP/provider package
- Использовать
sellerEmail только как read-only operational hint в настройках, а не как отдельный источник истины о seller profile
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это новый settings surface; существующие seller profile и lead flows не ломаются
- Email toggle уже появляется в контракте, но не означает, что email-канал backend уже доведён до production delivery
- Требуется действие frontend: да
FE-BE-2026-04-02-01
Auth contract получил change-password из кабинета
Готово для frontendНет ответа
buyer/seller account settings, password settings form, auth security UX
Что сделать
- Добавить форму смены пароля в buyer/seller кабинете на
POST /auth/change-password - Валидировать
newPassword по тем же правилам, что и registration/reset-password - Показать отдельное UX-сообщение для неверного текущего пароля вместо generic error toast
- После успешной смены пароля корректно показать success-state и быть готовыми к тому, что старые refresh-сессии на других устройствах больше невалидны
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это новый endpoint, а не замена
forgot-password / reset-password - Сброс пароля по коду и смена пароля из авторизованного кабинета теперь должны сосуществовать как два разных UX-потока
- Требуется действие frontend: да
FE-BE-2026-03-31-03
Public seller profile начал отдавать backend-generated SEO metadata
Готово для frontendНет ответа
public seller profile SSR page и metadata layer должны перейти с ad-hoc сборки SEO на backend-generated contract
Что сделать
- Перевести public seller page metadata на backend-generated
seo block вместо локальной ad-hoc сборки - Использовать
seo.canonicalUrl, seo.openGraph и seo.jsonLd как канонический источник для SSR metadata и structured data - Не предполагать, что hidden seller addresses приходят в payload: если массив
addresses пуст, секция не должна рендериться - Обрабатывать
404 как нормальный SEO-safe сценарий для non-active / missing seller profile
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это не просто cosmetic addition: contract public seller profile стал более строгим и более пригодным для SSR/SEO
- Frontend не должен опираться на скрытые seller-only поля, если они раньше случайно приезжали в response
- Требуется действие frontend: да
FE-BE-2026-03-31-02
Seller review surface и complaint-driven moderation готовы для frontend
Готово для frontendНет ответа
seller review dashboard, seller reply/complaint UX, buyer/public/admin review screens должны учесть seller reply и complaint-driven moderation
Что сделать
- Построить seller review list/dashboard на
GET /seller/reviews - Добавить seller reply editor с state-driven блокировкой по
canReply / canEditReply - Обработать
REVIEW_NOT_PUBLISHED, REPLY_EDIT_WINDOW_EXPIRED, COMPLAINT_ALREADY_EXISTS как ожидаемые продуктовые состояния, а не generic error - Добавить seller complaint UX и после успешной жалобы переводить review-card в состояние
PENDING_MODERATION - Показывать seller reply в buyer cabinet и public review blocks там, где он приходит из backend
- В admin review detail показывать active complaint context, если отзыв попал на повторную модерацию
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это расширение review-контракта и seller dashboard surface, а не изолированный новый экран
- Frontend больше не должен считать seller review interaction "локальной заметкой": reply и complaint влияют на public/admin review state machine
- Требуется действие frontend: да
FE-BE-2026-03-31-01
Backend review status model и admin review moderation baseline
Готово для frontendНет ответа
buyer reviews cabinet, public item reviews и admin review moderation
Что сделать
- Добавить buyer-facing UI для review status badge вместо скрытого допущения "отзыв всегда сразу опубликован"
- Показывать
moderationNote, если отзыв отклонён или имеет seller-visible moderation пояснение - В public item reviews и rating widgets больше не ожидать, что новые только что отправленные отзывы появятся мгновенно
- Построить admin review moderation queue/detail на новых
/admin/moderation/reviews* endpoints - Обработать
INVALID_STATUS_TRANSITION для race-safe admin moderation UI
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это контрактное изменение поведения, а не только добавление admin endpoints
- Старое frontend-допущение "отзыв после submit сразу виден в public UI" теперь неверно
- Требуется действие frontend: да
FE-BE-2026-03-30-05
Admin seller operational surface доведён до рабочего контура
Готово для frontendНет ответа
admin seller directory, status management и seller-facing реакция на account status
Что сделать
- Построить admin seller directory/list screen на
GET /admin/sellers - Подключить фильтры
search, status, sellerType, page, limit - Показывать seller summary и item counters прямо из backend response, а не собирать их вручную из разрозненных API
- Использовать
PATCH /admin/sellers/:sellerId/status из этого списка как основной status-management action - В seller-facing UI перестать трактовать response после status change как token expiry:
ACCOUNT_UNDER_REVIEW и ACCOUNT_BLOCKED должны обрабатываться как account state
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Нового breaking route change нет
- Это operational contract package: статус account management теперь считается полноценным рабочим срезом, а не isolated action endpoint
- Требуется действие frontend: да
FE-BE-2026-03-30-04
Seller item moderation state machine доведён до рабочего вида
Готово для frontendНет ответа
seller item dashboard и admin moderation должны перейти на явный moderation lifecycle вместо старых неявных переходов
Что сделать
- Добавить явный seller badge/UX для статуса
DRAFT - Перестать считать, что create/update автоматически отправляют айтем на модерацию
- Добавить UX для
withdraw перед редактированием pending-айтема - Показывать
latestModerationRecord.reason/comment в seller item dashboard и detail screen - Обработать новые item error codes:
ITEM_PENDING, ITEM_ALREADY_PENDING, ITEM_ALREADY_ACTIVE, ITEM_MISSING_REQUIRED_FIELDS, ITEM_NOT_PENDING - Обновить admin moderation UI под новый race-safe сценарий, где non-pending item больше нельзя approve/reject
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Это контрактное изменение поведения, а не только новый endpoint
- Старое frontend-допущение “create/update автоматически отправляют item на модерацию” теперь неверно
- Требуется действие frontend: да
FE-BE-2026-03-30-03
Upload URL стал storage-agnostic
Готово для frontendНет ответа
подготовить frontend к object storage без ломки API-контракта upload endpoint
Что сделать
- Использовать
url из backend response как готовый src/asset URL без преобразований - Не завязывать upload UI на префикс
/uploads/images/ - Проверить, что seller logo/photo и item image flows не ломаются от абсолютного CDN/S3 URL
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Формально breaking route change нет
- Семантически это важное contract clarification:
url больше не должен считаться обязательно локальным path
FE-BE-2026-03-30-02
OpenAPI response schemas для seller items и admin
Готово для frontendНет ответа
убрать manual response layer на seller item dashboard и admin slices; активный backend-blocker backlog по OpenAPI coverage теперь равен `0`
Что сделать
- Перегенерировать
openapi/openapi.json и contract layer - Убрать ручные response-типы на seller item dashboard и admin slices
- Перевести item/admin queries и mutations на generated response types без локальных transport-заглушек
- Считать оставшиеся ручные response-интерфейсы в этих зонах техническим долгом, а не допустимым baseline
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Breaking route change нет
- Это финальный contract-completeness package по
CP-104: новые backend schema fixes для этих endpoint'ов больше не требуются 204 No Content delete-маршруты остаются техническим хвостом OpenAPI-оформления, но не считаются blocker'ом для frontend
FE-BE-2026-03-30-01
OpenAPI response schemas для auth auxiliary, staff и reference
Готово для frontendНет ответа
убрать manual transport layer на auth auxiliary, staff и reference slices
Что сделать
- Перегенерировать
openapi/openapi.json и contract layer - Убрать ручные response-типы на password reset auxiliary flow, seller staff и reference slices
- Использовать generated response layer для buyer-role bind flow
- Не держать custom parsers там, где shape теперь уже стабилизирован в OpenAPI
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Breaking route change нет
- Это не новый endpoint package, а contract-completeness package: старые ручные response-типы теперь считаются техническим долгом и должны вытесняться generated contract layer
FE-BE-2026-03-28-01
OpenAPI и контрактный контур
Готово для frontendНет ответа
source-of-truth контракт и базовый workflow синхронизации frontend с backend
Что сделать
- Считать OpenAPI единственным источником истины по transport-типам
- Не поддерживать вручную параллельные request/response types, если endpoint уже описан в OpenAPI
- Для каждого backend-пакета сначала обновлять
openapi/openapi.json, затем прогонять codegen
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
FE-BE-2026-03-28-02
Auth registration и password reset
Готово для frontendНет ответа
новый registration API и восстановление пароля
Что сделать
- Собрать новый registration wizard поверх
check-availability, register/buyer, register/seller - Нормально маппить
PHONE_TAKEN и EMAIL_TAKEN в field-level ошибки - Не строить отдельный frontend-only reset flow в обход backend-контракта
- Использовать новый
add-buyer-role для multi-role сценария seller → buyer
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
- Старый
POST /api/v1/auth/register сохранён только как legacy route и не должен быть опорой новой frontend-разработки
FE-BE-2026-03-28-03
Buyer profile, children, interests
Готово для frontendНет ответа
buyer cabinet и post-registration buyer flow
Что сделать
- Собрать UI-сценарий отсутствующего buyer profile
- Развести parent и student ветки кабинета
- Перевести buyer profile flow на
POST/PATCH /me/profile - Подключить children CRUD и interests update к новому контракту
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
PUT /me/profile не должен использоваться как канонический путь для новой реализации
FE-BE-2026-03-28-04
Seller profile, addresses, Telegram, uploads
Готово для frontendНет ответа
seller onboarding/profile management и asset-related flows
Что сделать
- Довести seller onboarding/profile UI до актуального backend-контракта
- Нормально обрабатывать field-level duplicate errors для contact phone/email
- Подключить address CRUD и primary switch к новому seller area
- Подключить Telegram verification/unbind без самодельного контракта
- Использовать backend upload endpoint для logo/photo/image flows
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.
Migration note
PUT /seller/profile — только legacy alias, новые UI-сценарии должны строиться на PATCH
FE-BE-2026-03-28-05
Admin / governance hooks
Готово для frontendНет ответа
backend hooks, которые понадобятся admin-поверхности и governance-сценариям
Что сделать
- Использовать этот endpoint только в admin scope
- Явно закладывать UI для
INVALID_STATUS_TRANSITION - Не предполагать, что заблокированный seller сможет жить на старой refresh-сессии
Подтверждение от frontend
После того как пакет взят в работу или закрыт на стороне frontend, команда должна отметить это здесь. Это не меняет backend changelog, а только фиксирует обратную связь по внедрению.