Qadam Roadmap
проектdocs/frontend/frontend-adoption-backlog.md

Frontend backlog синхронизации `qadam-web` с backend

Обновлён 1 апр. 2026 г., 12:41 · 0 комментариев

Frontend backlog синхронизации qadam-web с backend

Паспорт документа

  • Статус документа: living document
  • Актуально на: 30 марта 2026 года
  • Владелец: backend/platform-команда, совместно с frontend-командой
  • Пересмотр: при изменении фронтового remediation backlog, contract drift или статуса CP-103
  • Область применения: рабочий backlog для frontend-команды по доведению qadam-web до текущего backend-контракта и чистого quality gate
  • Связанные документы:

Цель документа

Этот документ не дублирует backend handoff-пакеты. Его задача другая: разложить текущую красноту qadam-web на понятные фронтовые remediation-пакеты, чтобы frontend-команда видела не абстрактное CP-103 in progress, а конкретный список проблем, их приоритет и ожидаемый результат.

Как читать этот backlog

  • FE-BE-* в frontend-change-log.md отвечает на вопрос, что backend уже подготовил для frontend.
  • Этот документ отвечает на вопрос, почему qadam-web всё ещё красный и что именно надо починить на стороне frontend.
  • Приоритет P0 означает blocker для нормальной синхронизации с backend-контрактом.
  • Приоритет P1 означает внутренний type/tooling drift, который мешает сделать quality gate предсказуемым.
  • Приоритет P2 означает неблокирующий cleanup и warnings.

Текущий remediation backlog

FE-WEB-2026-03-30-01 — Registration и profile contract drift

  • Статус: planned
  • Приоритет: P0
  • Тип: backend_contract
  • Scope: перевести registration, buyer profile и seller profile на текущий buyer/seller/account contract из qadam-core

Что сломано сейчас

  • src/features/auth/ui/RegisterForm.tsx всё ещё собирает legacy payload вида { type, profile }
  • src/views/me/profile/ui/MeProfilePage.tsx всё ещё пишет name, хотя backend уже ушёл на account-centric firstName/lastName
  • src/views/seller-dashboard/profile/ui/SellerProfilePage.tsx всё ещё читает и пишет legacy name/description seller-модель

Что нужно сделать

  • перевести registration flow на check-availability, register/buyer и register/seller
  • убрать legacy profile envelope из frontend transport layer
  • buyer profile screen перевести на канонический write-contract account profile
  • seller profile screen перевести на текущий response/write-contract из OpenAPI вместо старой name/description модели

Acceptance

  • в qadam-web больше нет опоры на legacy AuthController_register
  • buyer profile и seller profile используют текущий OpenAPI contract
  • pnpm check-types не падает на RegisterForm.tsx, MeProfilePage.tsx и SellerProfilePage.tsx

Связанные backend-пакеты

  • FE-BE-2026-03-28-02
  • FE-BE-2026-03-28-03
  • FE-BE-2026-03-28-04

FE-WEB-2026-03-30-02 — Manual response aliases и response-shape drift

  • Статус: planned
  • Приоритет: P0
  • Тип: backend_contract
  • Scope: убрать устаревшие ручные response aliases и привести seller/admin/leads slices к фактическому OpenAPI response shape

Что сломано сейчас

  • src/shared/api/api-types.ts всё ещё ждёт .items там, где backend уже публикует массив напрямую
  • ручные aliases скрывают реальный response shape seller/admin/leads срезов
  • product web частично сидит на устаревшей ручной response-обвязке, хотя backend response coverage уже закрыт

Что нужно сделать

  • перегенерировать openapi/openapi.json и локальный frontend contract layer
  • вычистить устаревшие .items assumptions из src/shared/api/api-types.ts
  • снять ручные response wrappers там, где current OpenAPI уже описывает массивы и объекты точно
  • довести seller/admin/leads/current-user aliases до текущего backend response shape

Acceptance

  • seller/admin/leads slices больше не используют ложные .items wrappers
  • generated response layer используется как primary source-of-truth
  • pnpm check-types больше не падает на src/shared/api/api-types.ts

Связанные backend-пакеты

  • FE-BE-2026-03-30-01
  • FE-BE-2026-03-30-02
  • FE-BE-2026-03-30-03

FE-WEB-2026-03-30-03 — Tooling и type hygiene drift

  • Статус: planned
  • Приоритет: P1
  • Тип: tooling_quality
  • Scope: снять внутренний type/tooling drift, который не относится напрямую к backend runtime, но держит root quality gate в красном состоянии

Что сломано сейчас

  • commitlint.config.ts падает из-за type import на @commitlint/types
  • src/shared/store/__tests__/catalog-filter.types.test.ts использует устаревшие enum literals, которые больше не совпадают с текущими типами
  • root typecheck смешивает реальные contract issues и локальный frontend hygiene debt

Что нужно сделать

  • либо добавить недостающую типовую зависимость для commitlint, либо упростить конфиг без неё
  • привести catalog filter tests к текущим enum values и типам
  • убрать локальные type-only поломки, не связанные с backend handoff

Acceptance

  • root typecheck больше не падает на commitlint.config.ts
  • catalog filter tests больше не конфликтуют с текущими enum values
  • красный quality gate фронта отражает только реальные feature/contract проблемы, а не сломанный tooling baseline

FE-WEB-2026-03-30-04 — Неблокирующие lint warnings и cleanup

  • Статус: planned
  • Приоритет: P2
  • Тип: frontend_internal
  • Scope: убрать накопившиеся warnings и локальный cleanup после закрытия contract drift

Что сломано сейчас

  • в src/entities/item/ui/ItemCard.tsx остаются any
  • в src/features/seller-item-form/ui/ItemForm.tsx есть warning по useEffect dependencies
  • в src/proxy.ts висит неиспользуемый PUBLIC_PATHS

Что нужно сделать

  • снять warning'и без расширения обходных suppressions
  • не смешивать этот cleanup с P0/P1 remediation-пакетами

Acceptance

  • root lint остаётся максимум с осознанными предупреждениями, а не с техническим шумом
  • cleanup не ломает product routes и auth/proxy поведение