feat(mera/b2c): новый дизайн становится корнем meraocenka.ru, функционал старого перенесён #3236
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3236
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/b2c-v3-becomes-root"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Главный разрыв, найденный разведкой: макет Макса реализован полностью, но включён не был — корень домена до сих пор отдавал старый лэндинг, а новый дизайн жил на
/v3под noindex как превью. Этот PR его включает, ничего не потеряв.Что перенесено из старого лэндинга
Разведка нашла шесть потерь, все подтверждены по коду и закрыты:
DataSources— реестр источниковSourcesV3изSOURCE_GROUPS, заголовок и лид дословноWhatYouGet+ дисклеймер 135-ФЗWhatYouGetV3, дисклеймер прямо под спискомHeroV3, города из реестраHeroV3FreeCheckCard: селект, автодетект, отдельный ответ для города вне покрытияObjectionsV3черезFAQ.findпо id, ни одна строка не скопированаПлюс починено по дороге: обязательное поле «состояние» не клалось в черновик — данные пользователя выбрасывались.
Три ревьюера, три линзы
Все три — minor, майоров нет. Что нашли и что исправлено:
Четыре из шести вопросов FAQ рендерились только в старой версии. Среди потерянного — единственное место, где сказано «имя, паспорт и документы на квартиру мы не спрашиваем» со ссылкой на страницу о персональных данных, и формулировка «показываем диапазон, а не одно число». Возвращены все шесть, ссылка на ПДн — живая
PublicLink, текст ссылки берётся изcontent.tsпо имени константы, а не пишется в разметке.Длинный адрес превью
/trade-in/mera-public/v3уходил в 404. Короткий/v3редиректил, длинный — нет. Добавлены все четыре формы в один матчер.Редирект терял query-строку.
/v3?utm=...приходил на голый/. Приведено к образцу@meraLongPages, чей комментарий прямо требует сохранять UTM.Комментарий описывал опасность, которой нет. Строка
V3_SOURCESменяла путьv3/page.tsx→page.tsxс обоснованием «иначе гейт перестал бы сканировать». Ревьюер проверил: имён плейсхолдеров нет ни в старом, ни в новом файле — строка не давала покрытия ни до, ни после. Автор перепроверил сам и снял строку.Периметр
/v3убран из@meraPages,@meraShortSlash,@meraLongPages; добавлен постоянный редирект на корень для всех четырёх форм адреса.PREVIEW_ONLYв тесте периметра стал пустым, а не удалён — он держит проверку «наружу не открыто ничего сверх известного» двусторонней и задаёт формат, в котором следующее превью придётся назвать вслух./v3убран изPUBLIC_SHORT_PATHSгварда с объяснением: редирект отрабатывает в Caddy, до приложения запрос не доходит, а недостижимая строка в списке публичных путей автоматически открыла бы будущую страницу с тем же адресом.Юридические страницы (
/oferta,/privacy,/refund) переведены наInnerHeader+FooterV3— они были единственными держателями удалённыхSiteHeader/SiteFooter.Проверка
Гейты фальсифицированы: удаление вопроса из FAQ, переименование id, изменение формулировки про ПДн — каждое красит тест. Две независимые мутации конфига Caddy (откат путей, откат сохранения query) красят проверку периметра.
Конфиг проверен на живом Caddy 2.11 против настоящего site-блока
meraocenka.ruс заглушенными апстримами: все четыре формы/v3→ 301 на/с сохранением query;/oferta,/estimate, длинные адреса — без изменений; проба открытого редиректа%5Cпо-прежнему 404.Страница проверена сборкой и рендером, а не только юнит-тестами: в HTML присутствуют все шесть вопросов, оба восстановленных утверждения и живая ссылка на политику; трёх макетных перефразировок и дублирующего абзаца нет; basePath не протёк.
tsc·next lint·vitest 85/85·check:mera-public-isolation— чисто.noindex НЕ снят
Индексация остаётся выключенной: снятие — решение владельца и отдельный шаг, который требует, чтобы на витрине не осталось неподтверждённых чисел. Это делает соседняя ветка.
Отмечено, но не сделано
@meraLongRootтеряет query-строку тем же образом (/trade-in/mera-public?utm=x→Location: /). Тот же класс, тот же трёхстрочный фикс, но это за пределами названного объёма — вынесено отдельно, а не сделано молча.Правки по трём ревью ветки «v3 становится корнем». FAQ. Из шести вопросов `content.ts` возражения v3 брали два, остальные четыре (`how-accurate`, `vs-marketplace`, `personal-data`, `bank-report`) не рендерились нигде: `Faq.tsx`, который выводил все шесть, удалён вместе с лэндингом v1. Макетные возражения их тематически закрывали, но пересказом — а оригиналы проходили юр-ревью. Содержательно пропали два утверждения: «Имя, паспорт и документы на квартиру мы не спрашиваем» с отсылкой к странице ПДн (152-ФЗ) и «показываем диапазон, а не одно число» как прямой ответ про точность (рамка диапазона осталась только в `AccuracyV3`, рядом с плейсхолдерными числами). Теперь в секции один порядок чтения: все шесть вопросов из `FAQ` по id плюс три макетных возражения, которым в `FAQ` пары нет («факт сделки», «почему так дёшево», «подписка»). Три макетных пересказа удалены в пользу оригиналов; у «почему так дёшево» убран второй абзац — почти дословный повтор второго абзаца `how-accurate`, который теперь стоит следующим. Новых формулировок не добавлено. Отсылка к странице ПДн стала живой ссылкой через `PublicLink` (обычный `<a>`, basePath не течёт); текст ссылки — слова самого `content.ts`, найденные по вхождению. Гейт стал двусторонним: тест перебирает `FAQ` и требует, чтобы КАЖДЫЙ id был отрисован. Прежняя версия перечисляла два id руками и потому молчала ровно в тот момент, когда четыре ответа исчезли со страницы. Проверено мутацией: снятие вопроса, переименование id и переформулировка фразы про ПДн красят тест по отдельности. CADDY. `/trade-in/mera-public/v3` выбыл из @meraLongPages вместе со страницей и никуда не попал — длинный адрес превью падал в catch-all 404, хотя раньше вёл на страницу. Обе его формы добавлены в @meraV3Gone. Там же редирект перестал терять query: было `redir * /`, стало `redir * {uri}` со срезанием пути — как у @meraLongPages, где перенос UTM и обоснован. Проверено на живом Caddy 2.11 по настоящему site-блоку: все четыре формы дают 301 на `/` с сохранённой query, без параметров — чистый `/` без хвоста `?`, соседние матчеры не задеты, лишний сегмент по-прежнему 404. КОММЕНТАРИИ, ОПИСЫВАЮЩИЕ НЕСУЩЕСТВУЮЩЕЕ. Строка `page.tsx` в гейте плейсхолдеров убрана: комментарий над ней утверждал, что устаревший путь «перестал бы что-либо сканировать», но ни в корневом `page.tsx`, ни в прежнем `v3/page.tsx` нет ни одного имени из `PLACEHOLDER_EXPORTS` — страница только собирает секции. Замер подтверждает: множество найденных плейсхолдеров со строкой и без неё совпадает, а сама по себе она не даёт ничего. Держать её значило держать ложное ощущение охвата. Дескриптор «Оценка вторичного жилья по рыночным данным · <регион>» на внутренние страницы не возвращается — причина записана в докстринге `InnerHeader`: эту шапку носят и `/estimate`, `/articles`, `/docs`, где дескриптора не было никогда; требование юриста было про первый экран лэндинга и там выполняется `HeroV3`; на самих юр-страницах то же сказано сильнее — в тексте оферты (п. 1.3, 6.2) и в `FooterV3` на каждой странице.