Scraper resume: - /admin/scrape/queue autoclean уменьшен с 60min started_at до 10min COALESCE(heartbeat_at, started_at). Не режет валидные long sweeps. - Phase A пишет heartbeat после каждого objStatus fetch (3min Phase A больше не рискует быть отмеченной как zombie при новом 10min threshold). Recommend (Уровень 1 калькулятор): - POST /api/v1/analytics/recommend/mix с velocity baseline (sale_graph), price elasticity (regr_slope/r2 на sale_graph, fallback -1.5), inverse mode (target_months → required price_factor), liquidity score 24mo, headline. - /analytics/recommend: RecommendVelocityPanel (price slider 0.85..1.15 + 4 KPI Чек/Срок/Темп/Ликвидность + методология эластичности), RecommendLiquidityChart (cumulative 0..36 mo с пунктиром на 24). - BucketsTable: +колонки Темп и Срок, цены/выручка масштабируются по priceFactor live. - Все слайдеры и target_months считаются клиентски — никаких round-trip. Fix: SQLAlchemy не парсит :cls::text — заменено на CAST(:cls AS TEXT). |
||
|---|---|---|
| .. | ||
| alembic | ||
| app | ||
| db/init | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| alembic.ini | ||
| Dockerfile | ||
| pyproject.toml | ||
| uv.lock | ||