fix(site-finder): remount analysis-дерева при смене cad (#2445-B4) #2454
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
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#2454
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/analysis-remount-on-cad-change"
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?
Summary
Аудит-находка B4 (epic #2445).
AnalysisPageContentрендерился безkey, привязанного кcad. Клиентская навигация между двумя участками под тем же[cad]-роут-шаблоном (RecentParcels/CompareTable →next/link) переиспользовала инстанс компонента, оставляя instance-local state от старого участка под новым.Агент нашёл, что баг шире одного §7: утекали также §7
useCreateConceptрезультат, §3 выбранный конкурент/фильтры, ChatPanel thread — все instance-local, не keyed.Fix
key={cad}на<AnalysisPageContent>(whole-tree remount) — форсит чистый remount всех детей разом.cad-keyed TanStack Query данные не затронуты (перечитываются из кэша, без refetch-водопада — verified: staleTime 5мин, нет useEffect-HTTP). Тот же идиом уже вcompare/page.tsx:230.Test plan
rerender()с изменённым key пиннит сам механизм (прежнийunmount()+render()сбрасывал бы безусловно) — verified проходит под arm64Refs #2445
AnalysisPageContent не имел key, привязанного к cad, поэтому клиентская навигация между участками под тем же [cad]-роутом переиспользовала инстанс — результат useCreateConcept §7, выбранный конкурент/фильтры §3 и thread ChatPanel утекали от предыдущего участка. key={cad} форсит чистый remount; cad-keyed TanStack-данные не затронуты (перечитываются из кэша, без refetch- водопада). Паттерн уже используется в compare/page.tsx. Усилен regression-тест 2: rerender() с изменённым key (пиннит сам механизм) вместо unmount()+render() (сбрасывал бы state безусловно). Refs #2445