feat(recommend): horizon-aware recommend_mix opt-in overlay (#982, 953-A) #1014
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#1014
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/953a-horizon-aware-recommend"
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?
Site Finder v2 / EPIC 9 — таск #982 (953-A): horizon-aware recommend_mix. Additive opt-in, live-endpoint-safe, ADVISORY.
При
horizon_months— advisory forecast-overlay подscope["forecast"]через новыйforecasting/recommendation.py:rank_segments.Default-путь байт-в-байт не тронут (guarded try/except, overlay никогда не роняет живой микс). Bridges room/class drift-guarded vs
_BUCKET_PRETTY; локальные §9.x импорты обходят cycle. RecommendMixOutput 4 поля целы; новые input-поля Optional.55 тестов (invariance + crash-isolation + bridges + оба режима). opus code-review ✅ (7 live-endpoint gate'ов). NOTE: живой endpoint получил ДОРМАНТНЫЙ путь в advisory-движок (фронт не шлёт horizon_months) — точка врезки когда #951-бэктест пройдёт. Closes #982. Refs #953
Recreate the recommendation.py bridge module + RecommendMixInput horizon_months/cad_num fields + RecommendForecast{Segment,Overlay} models + endpoint passthrough + test_recommendation.py — completing the #982 opt-in whose analytics_queries.recommend_mix wire-in landed in the prior commit. build_forecast_overlay(db,*,district,cad_num,horizon_months,target_class, market_buckets) matches the committed call. demand_supply via rank_segments (cad_num) / demand_only pace-proxy (no cad_num, no fabricated supply, warning). Pure room/class bridges drift-guarded vs _BUCKET_PRETTY; local §9.x imports avoid the analytics_queries↔forecasting cycle. 55 tests green.